Akkuüberwachung in einem Flugzeugmodell

zepointem

Neues Mitglied
01. Juli 2009
3
0
0
Sprachen
Hallo alle zusammen,

ich selber befinde ich mich zum ersten Mal in einem Forum und hoffe sehr das man hier viele Ideen und Vorschläge bekommen kann.

Ich betreibe seit einiger Zeit Modellbau mit meinem Schwiegervater und es haben sich auch schon viele Modelle im Keller angesammelt. Das neueste Projekt ist ein Piper mit 3,50m Spannweite.

Da ich ein Originalgetreue Beleuchtung konstruiert habe und auch einige Servos in dem Teil verbaut sind, möchte ich den Akku im Modell über 3 Leuchtdioden mit einem Mega8 überwachen. Ich habe das Programmier- und Testboard von myavr.
Die Spannung des Akkus beträgt 5V. Ab 4,5V soll eine gelbe LED leuchten und ab 4,2V eine rote.
Ich hab nur irgendwie keine Ahnung wie das geht.

Ich hoffe ihr habt ein paar Tips für mich, so dass das Problem für mich lösbar wird :)

Danke schonmal und bis bald.

Christian
 
Hallo zepointem (Christian)!

Erst einmal :
Willkommen im AVR-Praxis Forum! :ciao:

Ich bin mir sicher, dass dir hier geholfen werden kann... auch wenn ich die Idee mit dem Mega8 für etwas übertrieben halte. ;)
Aber OK, jeder fängt mal an und braucht ein kleines Projekt zum Üben.

Ich muss aber zugeben.... Beim durchlesen deiner Idee ist mir spontan das LM3914 eingefallen. :)
Lade dir doch bei Reichelt mal das Datenblatt herunter!
Bei dem Baustein kannst du ohne großen Aufwand sogar 10 LEDs ansteuern..... einzeln, oder als Bandanzeige.



Wenn du unbedingt den Mega8 nehmen möchtest, dann solltest du dir mal das Datenblatt besorgen und ab Seite 190 die Sache mit dem Analog Comparator (AIN0 + AIN1) ansehen.

Wie möchtest du denn später dem Controller überhaupt Leben einhauchen?
Mit C, BASCOM, oder gar Assembler?
Die Programmiersprache wäre nämlich nicht ganz unwichtig zu erfahren. ;)


Schöne Grüße,
Cassio
 
Ich hab schonmal was gebastelt, aber es gibt noch einige Probleme.
Erstens weiß ich nicht wie ich das mit der Referenzspannung machen soll, weil ich bestimmt die interne nehmen müsste und zweitens weiß ich nicht wie ich dem Comparator die Spannungen erklären soll, denn die 4,7 nimmt er nicht wegen dem Komma.

Hier schonmal der Code den ich schon habe:



CodeBox asm

;--------------------------------------------------------------------------
; Title : Assembler Grundger¸st f¸r myAVR-Board
;--------------------------------------------------------------------------
; Funktion : ...
; Schaltung : ...
;--------------------------------------------------------------------------
; Prozessor : ATmega8
; Takt : 3,6864 MHz
; Sprache : Assembler
; Datum : ...
; Version : ...
; Autor : ...
;--------------------------------------------------------------------------
.include "AVR.H"
;---------------------------------------------------------------------------
; Reset and Interrupt vector Beschreibung
begin: rjmp main ;POWER ON RESET
reti ;Int0-Interrupt
reti ;Int1-Interrupt
reti ;TC2 Compare Match
reti ;TC2 Overflow
reti ;TC1 Capture
reti ;TC1 Compare Match A
reti ;TC1 Compare Match B
reti ;TC1 Overflow
reti ;TC0 Overflow
reti ;SPI, STC Serial Transfer Complete
reti ;UART Rx Complete
reti ;UART Data Register Empty
reti ;UART Tx complete
reti ;ADC Conversion Complete
reti ;EEPROM Ready
reti ;Analog Comparator
reti ;TWI (I≤C) Serial Interface
reti ;Store Program Memory Redy
;---------------------------------------------------------------------------
; Start, Power ON, Reset
dim f as single
main: ldi r16, lo8(RAMEND)
out SPL, r16
ldi r16, hi8(RAMEND)
out SPH, r16
cbi ACSR,7
cbi ACSR,6
sbi DDRB,0
sbi DDRB,1
sbi DDRB,2
;---------------------------------------------------------------------------
mainloop: in r24, ACSR
ldi r25, 0b00000000
out PORTB,r25
sbrs r24,50
ldi r25, 0b00000001
out PORTB,r25
sbrs r24,47
ldi r25, 0b00000010
out PORTB,r25
sbrs r24,43
ldi r25, 0b00000100
out PORTB,r25
rjmp mainloop
;---------------------------------------------------------------------------

Danke schonmal!
 
Hallo,

damit man den Code besser lesen kann, nutze beim nächsten Beitrag bitte den Code-Einfügen-Button in der Editorleiste. Alternativ kannst du vor dem Code highlight=asm und nach dem code /highlight jeweils in eckigen Klammern schreiben, dann wird dein Code farbig und mit Zeilennummern dargestellt. Ich habe mal deinen Beitrag entsprechend geändert.

So, nun zu deinem Code...

Du verwechselst wahrscheinlich den Analog-Comparator mit dem Analog-Digital-Converter.

Der Analog-Comparator wird in deinem Code nicht initialisiert.

Du kopierst aus dem Analog-Comparator-Status-Register den Inhalt in das Register r24 und wendest bedingte Sprünge an (sbrs, skip bit in register set), als Parameter gibst du Werte an, die den Spannungen als Dezimalwert entsprechen sollen. Das funktioniert so nicht.

Mit dem Komparator kannst du erst einmal nur einen diskreten Grenzwert überprüfen, mit etwas zusätzlichem Aufwand, kannst du aus dem Analog-Comparator einen ADC machen, dies würde sicherlich auch für deine 2 Schwellwerte ausreichen.

Du kannst natürlich auch den ADC verwenden. Schau doch einfach mal in das Datenblatt des ATmega8 im Kapitel Analog-Comparator und Analog-to-Digital-Converter. Das Datenblatt findest du zum Beispiel in unserer Database.

Grüße,
Dirk
 
Hallo,

also so richtig komm ich mit der ganzen Sache nicht klar... hmmm

Könnte mir jemand nen Code schreiben, damit ich ungefähr weiß wie es funktionieren könnte? Das wäre sehr nett.

Liebe Grüße,

Christian
 
Die Anzeige mit LEDs ist doch eigentlich schwachsinnig. Da muss man dann ja immer voll tief fliegen und bei Sonne sieht man es auch nicht so gut. Genauso wie wenn das Flugzeug schnell fliegt.

Es gibt doch Fernbedienungen die Anzeigen, wieviel Volt der Akku noch hat oder?
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)