www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Pomoč pri "Ohm metru"

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
bajdec
Član
Član



Pridružen-a: Čet 12 Nov 2009 19:56
Prispevkov: 287
Aktiv.: 1.64
Kraj: Zagorje ob Savi

PrispevekObjavljeno: Tor Mar 17, 2015 8:29 pm    Naslov sporočila:  Pomoč pri "Ohm metru" Odgovori s citatom

Zdravo, izdelano imam vezje, na katerem je attiny26. Na attiny je na PA7 priklopljen Pull Up upor vrednosti 1,8k Omega

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
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
mucek
Član
Član



Pridružen-a: Tor 01 Avg 2006 10:47
Prispevkov: 5327
Aktiv.: 24.78
Kraj: Domzale

PrispevekObjavljeno: Tor Mar 17, 2015 8:55 pm    Naslov sporočila:   Odgovori s citatom

Nimaš nastavljene reference za ADC. AREF pin imaš povezan na VCC?

LP, g

_________________
...lahko pa se tudi motim ...
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
bajdec
Član
Član



Pridružen-a: Čet 12 Nov 2009 19:56
Prispevkov: 287
Aktiv.: 1.64
Kraj: Zagorje ob Savi

PrispevekObjavljeno: Tor Mar 17, 2015 9:23 pm    Naslov sporočila:   Odgovori s citatom

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 Very Happy )

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


Koda:

 Vmes = Nap1 - 1


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
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
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