|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
bajdec Član
Pridružen-a: Čet 12 Nov 2009 19:56 Prispevkov: 287 Aktiv.: 1.64 Kraj: Zagorje ob Savi
|
Objavljeno: Tor Mar 17, 2015 8:29 pm Naslov sporočila: Pomoč pri "Ohm metru" |
|
|
Zdravo, izdelano imam vezje, na katerem je attiny26. Na attiny je na PA7 priklopljen Pull Up upor vrednosti 1,8k
Rad bi naredil, da ko je med PA7 in maso priklopljen upor, prek ADCja prebere vrednost od 0-1023, ter preračuna upornost. potem, glede na prebrano vrednost, sproži enega od izhodov PA0 - PA5.
Koda je taka:
Koda: |
$regfile = "attiny26.dat"
$crystal = 1000000
Config Adc = Single , Prescaler = Auto
Start Adc
Config Porta = Output
Dim A As Integer , R1 As Integer , R2 As Single , Nap As Single , Nap1 As Single , Vmes As Single , Vmes2 As Single
' formula:
' |\ |\ 1
' |/ = |/ x ----------------
' |\ 2 |\ 1 R2 voltage - 1
R1 = 1993 ' upornost pull up upora, merjeno z ohmmetrom
Do
A = Getadc(7)
Nap = A / 204.8
Nap1 = 5 / Nap
Vmes = Nap - 1
Vmes2 = 1 / Vmes
R2 = R1 * Vmes2
'
If R2 > 70 And R2 < 120 Then
Porta.0 = 1
Else
Porta.0 = 0
End If
If R2 > 120 And R2 < 200 Then
Porta.1 = 1
Else
Porta.1 = 0
End If
If R2 > 250 And R2 < 320 Then
Porta.2 = 1
Else
Porta.2 = 0
End If
If R2 > 400 And R2 < 560 Then
Porta.3 = 1
Else
Porta.3 = 0
End If
If R2 > 600 And R2 < 900 Then
Porta.4 = 1
Else
Porta.4 = 0
End If
If R2 > 1000 And R2 < 2000 Then
Porta.5 = 1
Else
Porta.5 = 0
End If
Loop |
Težava je ta, da proži ob napačnih vrednostih. Prosil bi, če bi kdo preletel kodo in ugotovil, kaj sem naredil narobe.
Na Arduino Nano je zgornja koda delovala brez težav. Na attiny pa noče. |
|
Nazaj na vrh |
|
|
mucek Član
Pridružen-a: Tor 01 Avg 2006 10:47 Prispevkov: 5327 Aktiv.: 24.78 Kraj: Domzale
|
Objavljeno: Tor Mar 17, 2015 8:55 pm Naslov sporočila: |
|
|
Nimaš nastavljene reference za ADC. AREF pin imaš povezan na VCC?
LP, g _________________ ...lahko pa se tudi motim ... |
|
Nazaj na vrh |
|
|
bajdec Član
Pridružen-a: Čet 12 Nov 2009 19:56 Prispevkov: 287 Aktiv.: 1.64 Kraj: Zagorje ob Savi
|
Objavljeno: Tor Mar 17, 2015 9:23 pm Naslov sporočila: |
|
|
Imam povezan na AVCC. Napako sem pa že odkril, kot vedno moje površno programiranje (ponavadi ugotovim napako potem ko se že zakadi - k sreči ma attiny26 pine tako, da ga lahko tudi obrnem brez problemov - danes preizkušeno, sem se tolkel po glavi, zakaj ne dela )
Vglavnem težava se nahaja v tej kodi:
Koda: |
Do
A = Getadc(7)
Nap = A / 204.8
Nap1 = 5 / Nap
Vmes = Nap - 1
Vmes2 = 1 / Vmes
R2 = R1 * Vmes2
|
Kjer je pravilno
Torej mi je namesto razlike napetosti upoštevalo napajalno napetost 5V. hvala vseeno za pomoč, drugič bo treba pa malo bolj pazljivo programirat. |
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 48 dni
Powered by phpBB © 2001, 2005 phpBB Group
|