Hallo, ich wollte mir ein Ladegerät basteln. Hab die Hardware soweit fertig, einen Mosfet zum Laden einen weiteren zum entladen des Akkus über Widerstände pro Ladeschacht. Eine Leitung zum messen der Spannung per interner Spannungsreferenz und Spannungsteiler. Mein Problem ist das ich vier Ladeschächte prallel überwachen möchte. Zum Laden wollte ich das Pulsladeverfahren anwenden. https://de.wikipedia.org/wiki/Ladeverfahren#Pulsladeverfahren Mir ist absolut unklar wie ich vier Vorgänge auf einmal realisieren soll. Dabei kann sich ja jeder schacht in unterschiedlichen zuständen befinden z.B. Schacht1 entladen Schacht2 laden Schacht3 leer Schacht4 entladen Für nur einen Ladeschacht ließ sich das ganze einfach realisieren. Aber für vier parallel mit unterschiedlichen zuständen. Ladeverfahren: 1: Entladen auf 0,9V 2: Laden bis -dU erreicht 3: Anzeigen das alles fertig ist Wie soll ich das nur für nier schächte gleichzeitig realisiern? Grüße Franz
Hallo Franz, Zum einen würde ich nicht die interne Referenz nehmen sie kann genau sein aber ihr wärt ist nicht genau definiert. Darüber hinaus hast du ja ein Anfang gemacht für einen Schacht, also überlege weiter und schreibe den Vorgang 3 weiteres mal untereinander. Zur hältst du dann eine Überwachung, Lade und Darstellung Version deines Programms für 4 Schächte. So mal im Groben gesprochen. Das heißt man programmiert dies natürlich nur einmal und verwendet die prozentuale Programmierung beispielsweise.
Das wurde schon einmal realisiert mit AtMega16 und Mega8535, siehe erster Link: Beitrag "Asssembleprogramm für Mega16 auf Mega8535 anpassen, Sprungweite "call" und "jmp"" MfG
:
Bearbeitet durch User
Karl M. schrieb: > Darüber hinaus hast du ja ein Anfang gemacht für einen Schacht, also > überlege weiter und schreibe den Vorgang 3 weiteres mal untereinander. Warum meinst du, dass man das insgesamt vier mal hinschreiben muss. In vielen Programmiersprachen gibt es Schleifenstrukturen, die dann über die 4 parallel ablaufenden Steuerprozesse iterieren können. Möglichkeit 1: Ein Array mit den Pin-Nummern der Steuerpins, ein Array mit den Nummern der ADC-Kanäle, ein Array mit den aktuellen Spannungen ... Möglichkeit 2: Oder man geht es objektorientiert an, so dass es vier Objekte "Ladekanal" gibt, von denen jedes seine relevanten Daten enthält und das Programm iteriert über die vier Ladekanalobjekte.
@Franz, du musst dich davon verabschieden, das während eines Vorgangs nichts anderes passieren kann. Jeder Schacht erhält eine Statusvariable die den aktuellen Zustand abbildet. Dann schaust du dir alle 5s (ist ja nicht gerade Zeitkritisch - die Aufgabe) den Status jedes Kanals an. Steht der auf: ENTLADEN - Spannung messen und auf Grenzwert prüfen, wenn <0.9 ->Status = laden LADEN - Spannung messen und mit dem Wert der letzten Messung vergleichen, wenn -dU -> Status = fertig FERTIG - Spannung messen, wenn <0.2 ->Status = leer LEER - Spannung messen, wenn >0.5 ->Status = Entladen Sascha
Da dieses Thema hier fast jede Woche hochkommt, habe ich mal einen Artikel über Zustandsautomaten geschrieben, auf den ich dann verweisen kann: http://stefanfrings.de/multitasking_arduino/index.html Lies Dir das mal durch.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.