PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : frage adc



Tom K
27.02.2006, 16:09
Hi

Ich möchte mir einen "Treppenhausautomat" aufbauen.

Dazu will ich einen at90s2313 mit 2 Tastern (EIN,AUS,beide gleichzeitig gedrückt Zeit einstellen) verwenden (Ist ja kein Problem) nur ich hab einen Haufen LCD Panelmeter und möchte eines dazu verwenden um mir die eingestellte bzw. im eingeschaltenen Zustand rest Zeit Anzuzeigen.

Lcd ist - 4 Stellig zB.: 1922 => 19min 22s ...
- liegt an 5V
- Messbereich 0 - "5"V

Frage kann man die Zeit umrechnen und als analog wert ausgeben das dann im LCD min s einzeln ausgegeben wird. zb.: 1min 20s eingestellt =>80s=> umrechnung AVR =>port=>Lcd auswertung=> Anzeige 0120 od 120?

molleonair
27.02.2006, 17:29
hi tom

zur umrechnung müßte man erstmal wissen wie du deine ablaufzeit definiert
hast.
zb die Anzahl die sekunden in n byte oder als integer das du mit ner schleife und waitms anweisungen hochzählst
oder ob deine ablaufende Zeit bestandteil des internen counters ist
alles in allen kannst du die abzulaufende zeit ja zum verhältniss zu 50min (entspricht dann ja wohl der maximalen Zeit) setzen
dann müßtest du deine zeit noch in minuten und sekunden teilen
da es ja später nicht mehr wie xx59 als Anzeige geben darf
also entspricht wenn du den hardware pwm nimmst im idealfall
compare 0 den vollen 5V(50min) und compare 255 0V also (0sek)
den pwm ausgang wirst du wahrscheinlich solange mit filtern bearbeiten müssen bis da ne einigermaßen geglättete spannung rauskommt
der rest ist nur ne rechenaufgabe

Tom K
27.02.2006, 18:03
servus

ich hätte die Zeit in s def. und diese mit dem internen counter zählen lassen. Die max. Zeit solte bei 20min liegen also bei 1200s liegen. Ich spiel mich schon einige Zeit nur schaff ich die Sprünge von 1959(19min 59s) auf 2000 (20min 00s);1859 auf 1900;... nicht. das lcd läuft immer weiter 1959,1960,1961,...

molleonair
28.02.2006, 17:11
erstmal wird es grundsätzlich schwer eine aufösung von 2000
zu schaffen da der interne pwm ja nur mit max 10 bit arbeitet also 1024

weiterhin mußt du die zeit aufteilen in sekunden und minuten

mal angenommen 1 sekunde entspricht zb einem pwm compare von 1
und der pwm könnte bis 2000 arbeiten die dann 2,000Volt entsprechen (Anzeige 2000)
dann gilt pwmcompare=(min*100)+sek bei 10min 30 sek wäre dass
10*100=1000 plus 30 also 1030 das gibt dann 1,03 Volt also ne anzeige von 1030

da der timer das jedoch nicht macht kannst du zb bei ner Auflösung von
1024 nen Teiler einrechnen und nen spannungsteiler an ausgang hängen der dir aus 4,882V (entspricht dann compare 1000) 2V macht die dann den 1000 entsprechen also compare 1 entspricht ner anzeige von 0002 (2 Sekunden)
die neue Formel ist nun pwmcompare = (min*100)/2+(sek/2) also jetzt
10*100 =1000 /2 = 500 +30/2 = 516
wenn du den pwm nun mit comparea= 516 aktivierst erhältst du 2,52 volt
die dann durch den spannungsteiler auf 1,03 Volt und den rest geteilt werden und schon hast du als Anzeige 1030

Ich hoffe ich lieg ungefähr richtig und hab kein Denkfehler drin

Gruß Daniel