nickrvl Postat Martie 5, 2011 Partajează Postat Martie 5, 2011 Aceasta e schema: [attachment=0]sch13.jpg[/attachment] Acesta e unul din soft-uri $regfile = "attiny13.dat"'$regfile = "m8def.dat"$crystal = 1200000'$crystal = 2000000$hwstack = 16$swstack = 16$framesize = 16$noramclearDim Arata As String * 4Dim Arata2 As String * 4Dim Volt As WordDim Curent As WordConfig Adc = Single , Prescaler = Auto , Reference = Internal 'offStart AdcConfig Lcd = 16 * 2 'sau 8 X 2Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.4 , Db6 = Portb.3 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0Cursor OffClsDo Ddrb = &B110010Volt = Getadc(1)Arata = Str(volt)Arata2 = Format(arata , "00.0")Curent = Getadc(3)Curent = Curent * 10 Ddrb = &B111111UpperlineLcd ; Arata2 ; "V" ; Chr(32) ; Chr(32)LowerlineLcd ; Curent ; "mA" ; Chr(32) ; Chr(32)Waitms 500LoopEnd A fost simulat cu Proteus unde teoretic totul este in regula insa in realitate i-mi afisaza eronat. Daca reglez din semireglabil sa-mi afiseze corect 8,7V sa zicem, cind ajung la 26V pe sursa de tensiune VAmetru meu i-mi afisaza 24V, deci decalaj de volti. De unde e problema? Am mai avut problema asta si cu Atmega8 insa acolo am rezolvat din soft, la acest Attiny nu cred ca-mi ramine loc. Link spre comentariu
Vizitator DragosP Postat Martie 10, 2011 Partajează Postat Martie 10, 2011 Sincer, nu prea inteleg eu ce ai facut pe acolo, dar... De ce nu faci ceea ce e normal sa faci, adica sa scalezi corespunzator valoarea citita din ADC? Link spre comentariu
nickrvl Postat Martie 10, 2011 Autor Partajează Postat Martie 10, 2011 r... De ce nu faci ceea ce e normal sa faci, adica sa scalezi corespunzator valoarea citita din ADC?Da-mi un exemplu ca nu inteleg...La proiectul meu e prezentata varianta finala cu "modificarile" facute. Link spre comentariu
Vizitator DragosP Postat Martie 10, 2011 Partajează Postat Martie 10, 2011 Presupunand ca folosesti ADC-ul la rezolutia de 10 biti, Vmasurat = (ADC/1024)*Vref.Evident, daca mai ai vreun divizor de tensiune inaintea intrarii in ADC, scalezi cu factorul de scala al divizorului (vrei sa masori de ex pana la 30V si ai referinta interna la 5V -> FScala = 6, deci multiplici rezultatul anterior cu 6, sau, pentru a nu ameti compilatorul si/sau procesorul aplici direct formula Vmasurat = (ADC/171)*Vref).NOTA: 171 in loc de 170,(6), asumandu-ne din start o eroare de maxim 0,2% la cap de scala. Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum