PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Akkuanzeige-wie funktionierts?



Schnubi
28.02.2007, 21:37
Zurzeit versuche ich eine Akkuanzeige in Assembler zu proggen, nur bin ich mir nicht so ganz im klaren wie ich das machen soll?
Im Konkreten möchte ich die noch vorhandene Spannung der Akkus( 2 12 V batterien) abfangen und auf einem LCD Display in Prozent ausgeben und wiederum auf einer LED Skala ( so wie mans kennt von roter LED-bis grüner LED ) schaffen. Das ganze soll über den Microcontroller 8051 laufen und dafür möchte/sollte ich ein Programm schreiben.
Könnte mir vllt. jemand auf die Sprünge helfen, um die Akkuanzeige zu proggen??

uwegw
28.02.2007, 21:42
Hast du schon die nötige Hardware dafür? Du brauchst einen Spannungsteiler und eine Analog-digital-Wandler, um den Spannungswert zu digitalisieren.
Die Software selber beruht quasi nur auf Dreisatz.

Oder wo liegt jetzt dein Problem?

Schnubi
28.02.2007, 21:49
also ich habe mehrer Probleme, einmal das Hauptproblem stellt für mich das Assemblerprog. dar. Ich weiß nicht wie ich diese Spannung (wenn ich sie z.b aus dem Akku in ein Register geschoben hab ) überprüfen kann bzw. wie ich den Wertebereich festlegen und überprüfen kann. Die Prozentanzeige ist dann ein Kinderspiel. Auch die Hardware habe ich bereits sowie die Progs für LCD Display und das Hauptprogramm für den Mikrocontroller an sich. Das zweite Problem ist, dass ich mir nicht sicher bin wie ich von den Werten des Mikrocontrollers die bestimmen LEDs ansteuer kann?

robocat
28.02.2007, 22:26
wenn dir 256 stufen genügen, kannst du ADLAR (left adjust) setzen, und ADCH auslesen. dieser wert ist V(in)=ADCH*V(ref)/256. bei 10bit erst ADCL einlesen, dann ADCH. dann ähhh *rätselguckx* wie verwurschtelt man diese 2 bytes? wieviele leds willst du denn verwenden?

Schnubi
28.02.2007, 22:35
Ähm also ich hatte vor 4 Stufen zu setzen :
#00000011b
#00001111b
#00111111b
#11111111b

was ist dieses ADLAR und ADCH?
was für stufen wären denn geschickt ?

robocat
28.02.2007, 22:42
vielleicht war ich etwas voreilig. was für einen controller verwendest du denn?
sind die 4 stufen 3,6,9,12V oder eher 10,5V,11V,11,5V,12V?

Schnubi
28.02.2007, 22:52
also der Controller kann ja nur 5 V höchstenst verwerten sonst geht er kaputt, also seh ich das ganze nicht in Volt unterteilt sondern,geh von einer höchstspannung über den AD Wandler mit der binär zahl 256 aus , dass wären (255) #11111111b aus ( 1 byte) deshalb wären es soweit ich weiß bei halber spannung über AD Wandler #00001111b aus dass wären nur 16 bits, aber eben ich weiß nicht wie ich das ganze nun erstmal in Stufen und Spannungen am geschicktesten unterteilen soll??
der Microcontroller ist der 8051

robocat
28.02.2007, 23:20
ich versteh nicht genau, was du meinst.
angenommen du willst die 12V auf 5V herunterteilen, das heisst, gehen wir mal von 15V aus, um zur sicherheit etwas spielraum zu haben, ausserdem isses dann einfacher zu verstehen. dann könnte man etwa einen spannungsteiler aus 2 widerständen aufbauen mit dem verhältnis 2:1. vielleicht so (V(ref)=5V):

(+)---100kOhm---(messpunkt)---50kOhm----(GND)

(weiß nicht ob die werte passen (größenordnung), vielleicht sagt jemand was dazu?)

mit 8bit AD misst du dann 255 bei 15V, 0 bei 0V. 12V entsprechen also einem wert von 204 im register. 203 wäre eine spannung von 3,98V am eingang, also 11,94V an der batterie. auflösung somit etwa 60mV/schritt.

gruesse

wkrug
01.03.2007, 09:34
@Schnubi
Du bist hier im AVR Forum gelandet, es geht also hier um die AVR Microcontroller von ATMEL.
Die haben zwar auch einen 8051 Prozessorkern aber halt auch eine menge Peripherie an Board, wozu auch meistens mehrere A/D Wandler gehören.
Für dein Projekt sollte ein ATTINY 26 oder ein ATMEGA 8 mehr als ausreichen.
Werd dir erstmal klar welchen Controller du verwenden willst, ein alter 8051 ist wirklich nicht mehr Stand der Dinge.

Deine Schaltung sollte mit so einem Controller mit einer Spannungsstabilisierung, ein paar passiven Bauteilen (Widerstände und Kondensatoren) sowie dem eigentlichen Controller herstellbar sein.

Informationen und Datenblätter zu den Chips kriegst Du auf der Homepage von atmel http://www.atmel.com
Einsteigertutorials gibts auch ein paar, soweit ich weiß auch hier im Roboternetz.

Schnubi
01.03.2007, 15:03
Ja, danke für die Antworten.