Hallo zusammen,
ich bastel gerade an einem LCD für die Siku Control fernsteuerung. Als
µC nutze ich einen Atmega8. Das Display ist ein 16 * 2 und wird im 4 Bit
Modus angesteuert. Ich schreibe alles in Bascom. Soweit klappt das auch
alles schon sehr gut.
Nun würde ich gerne noch die Spannung vom Akku messen. Als Akku wollte
ich Lipos verwenden. Eine Lipo hat 3,7 V ( voll geladen 4,2 V ). Da das
Display aber 5V braucht, wollte ich 2 x Lipos verwenden - 7,4 V. Nun
wollte ich gerne die Akkuspannung messen und im Display anzeigen lassen.
Wie ich den AD Wandler einstellen muss, habe ich auf dieser Seite schon
recht gut verstanden:
http://halvar.at/elektronik/kleiner_bascom_avr_kurs/adc_mit_getadc/
Da ich mit mehr als 5 V arbeite, muss ich wohl den AREF ( PIN21 am mega8
) nehmen. Soweit ist das auch ok. Ich denke das klappt auch. Mein
Problem ist, wie ich den Wert vom AD dann in die Spannung umrechnen und
auf dem Display anzeigen kann.
Vielleicht könnt ihr mir da weiter helfen.
Vielen Dank im Voraus !
Viele Grüße
Sven
> wollte ich 2 x Lipos verwenden - 7,4 V.
Das MINUS ist wohl ein Lapsus. Ich gehe mal davon aus, dass du +7,4V
meinst.
Aufpassen: Die +7,4V darfst du nicht direkt auf den ADC-Eingang geben.
Das überschreitet die elektrischen Grenzwerte und kann den AVR töten.
Man kann aber höhere Spannungen als AREF messen, im einfachsten Fall,
wenn man einen Spannungsteiler benutzt.
> Da ich mit mehr als 5 V arbeite, muss ich wohl den AREF ( PIN21 am mega8> ) nehmen.
Müssen musst du nicht. Du kannst auch mit interner AVcc arbeiten und
brauchst keine Referenzspannung an AREF anzuschliessen.
Das "-" sollte eigentlich ein Gedankenstrich sein ( 2 Lipo = 7,4 V. ;) )
Ok, vielen Dank für die Info. Ich wollte es so machen, dass ich den
mega8 und das Display dann über einen Spannungswandler ( z.B. 7805 ) mit
5 V versorge. In dem Fall ist es dann ja etwas ungeschickt, die Spannung
am AVCC zu messen, oder ?
Warum willst du die Spannung am Avcc messen, welchen Sinn soll das
haben?
Hast du ein gutes Labornetzgerät und ein gutes Multimeter? Wenn ja,
programmiere den Mikrocontroller doch mal auf interne 2,56. Messe nun
diese AVREF bei unterschiedlichen Versorgungsspannungen den Kontrollers
um zu ermitteln, wie gut AVFREF bleibt.
Da sich dein ADC-Messergebnis auf AVREF bezieht, hast du eine
Vorstellung davon wie gut deine Messung sein kann, ab wann es welche
Fehler gibt usw.
Genauigkeit ist übrigens relativ. Die betrifft nicht nur den Controller.
Wenn Du den 7805 als +5V-Referenzspannung verwenden möchtest:
Software:
' *** A/D-Wander einrichten
Config Adc = Single , Prescaler = Auto , Reference = Avcc 'Internal
Start Adc
Hardware: den Referenzspannungseingang mit 100nF nach GND abblocken,
ansonsten aber nichts am Referenzspannungseingang anschliessen.
Den ADC-Eingang über einen nicht zu hochohmigen Spannungsteiler
(Größenordnung insgesamt um die 30 bis 100kOhm) mit dem Meßpunkt
verbinden.
Gruß allu
@ Bascomfan
Ich möchte gerne die Akkuspannung des 7,4 V Akkus messen.
@ allu
Ok, vielen Dank! Werde das mal so versuchen.
Nun bleibt noch die Frage, wie ich das Ergebnis als Volt im Display
anzeigen kann ?
Sven Löffler schrieb:> Nun bleibt noch die Frage, wie ich das Ergebnis als Volt im Display> anzeigen kann ?
Prinzip:
- zu messende Spannung wird runtergeteilt; so liegen bei z.B. 7,4V am
ADC-Eingang xV an
- wenn die Eingangsspannung des ADC = Uref ist, kommt der Wert 4095
heraus (12 Bit ADC)
Der Rest ist rechnen nach Dreisatz...
Gruß Dietrich
Edit: das unter der Annahme, dass BASCOM den 12bit-Modus benutzt (ich
kenne BASCOM nicht)
Dietrich L. schrieb:> Edit: das unter der Annahme, dass BASCOM den 12bit-Modus benutzt (ich> kenne BASCOM nicht)
Welcher 12-Bit Modus?
Die AVR haben einen 10 Bit ADC.
Ändert aber nur einen Zahlenwert bei der Berechnung. Statt 4096 dann
eben 1024.
(Die Sache mit dem Dreisatz stimmt ja nach wie vor.
1024 Äpfel kosten 5.0 Euro
n Äpfel kosten daher wieviel?
Karl Heinz Buchegger schrieb:> Welcher 12-Bit Modus?> Die AVR haben einen 10 Bit ADC.
Ja, mein Fehler (man kann 10 Bit oder 8 Bit wählen).
Gruß Dietrich
Ok, vielen Dank für die Hilfen ! :)
Ich denke mal das bringt mich schon etwas näher. Es reicht vollkommen
aus, bis auf eine Stelle hinter dem Komma die Spannung anzuzeigen. Also
muss ich eine Art Tabelle erstellen, um die Werte wie 7,4, 7,3, 7,2 usw.
anzeigen zu können, richtig ?
Nö Tabelle ist nicht nötig. Der Rechenwert für die Mess-spannung verhält
sich analog zum gewählten Teilungsverhältnis des
Eingangsspannungsteilers.
Hast du dir z.B. einen Spannungsteiler so aufgebaut, dass 8 Volt am
Messeingang genau 5 Volt am ADC-Eingang werden, kannst du dir die
gemessene Spannung per Anpassung des Ref-Rechenwertes anzeigen lassen.
Liegen z.B. 7,2 Volt am Spannungsteiler an, werden daraus am ADC-Eingang
4,5 V was einen ADC-Wert von 921 ergibt.
Normalerweise wird mit folgender Formel gerechnet. ADC-Wert = Uein *
1024 / Uref. Folglich entsteht 921 aus 4,5 * 1024 / 5.
Wandelst du die Formel entsprechend um und machst rechnerisch aus den 5
V URef nun diese interpretierten 8 V ergibt sich ein Messwert von 7,2 V.
Ich habe nochmal eine adere Frage:
Es würde schon reichen, wenn ein Piezo Summer bei einer bestimmten
Spannung piept. Könnte man das vielleicht auch mit dem Analog Comparator
des Tiny2313 machen ?
Sven Löffler schrieb:> Ich habe nochmal eine adere Frage:>> Es würde schon reichen, wenn ein Piezo Summer bei einer bestimmten> Spannung piept. Könnte man das vielleicht auch mit dem Analog Comparator> des Tiny2313 machen ?
Könnte man.
Wenn du aber den ADC schon am laufen hast, ist deine Aufgabe ja nichts
anderes als 2 Werte miteinander zu vergleichen.
(Ich denke nämlich, du willst dich um den ADC drücken und suchst dir
jetzt was anderes, was möglicherweise einfacher sein könnte. Da rate ich
dir: sieh zu, dass du deinen ADC in den Griff kriegst. So schwer ist das
nicht. Du kannst dabei nur gewinnen, wenn du nicht immer den Weg des
geringsten Widerstands gehst)
Nein, das versuche ich nicht. ;) Nur so könnte ich einen Tiny2313
nutzen. Diesen hätte ich sogar in MLF Bauform hier. Daher meine Frage.
:) Es würde reichen, wenn der Sender bei einer gewissen Spannung piept
und evtl. eine Meldung im Display erscheint. Daher meine Frage. :)
Wenn ich das nun mit dem AD Wandler machen würde, wie müßte ich das denn
anschließen:
Ich habe eine Spannung von 2 x Lipo 7,4
Eine geregelte Spannung von 5 V
Der Ausgang müsste bei 6,4 Volt geschaltet werden.
Ich denke mal der Schleifer des Poti käme an AIN0 oder AIN01, oder ?