Vier Ladeschächte mit Mega48 parallel überwachen, geht das?

Gast #5839415
Lesenswert?

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
Gast #5839417
Lesenswert?

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.
Gast #5839433
Lesenswert?

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.
#5839453
Lesenswert?

@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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren