ATtiny85 två-kanals bly syra batteriladdare (10 / 14 steg)
Steg 10: programvara
Eftersom inte jag är den mest erfarna programmeraren, jag var tvungen att tänka lite innan jag sammanställde detta program. Listan jag ville programmet att göra var:
- Skapa inte en risk eller problem med 0, 1 eller 2 batterier
- Identifiera på vilka kanaler ett batteri var ansluten vid uppstart
- Hålla alla anslutna batterier ovan eller lika med 12,0 V öppen kretsspänning
- Hålla alla anslutna batterier under eller lika med 14,0 V när laddning
Jag utvecklade tre flödesscheman som jag brukade skriva mitt program. Dessa flödesscheman visas i avsnittet bild för din bekvämlighet.
Kontrollera kontakten batterier - Void inställning
Flödesdiagram 1 representerar början upp / annullera setup och körs endast en gång. Programmet som associeras med flödesschema 1 kontrollerar om eventuella batterier ansluts genom att söka efter en minsta spänning på 1,56 V ska identifieras på raden batteri känsla. Ja = ett batteri är anslutet. Nej = inget batteri är anslutet.
Beroende på vilka kanaler batterier ansluts avgör en variabel "Mode" är inställd som vilken laddning rutin kommer att genomföras.
Batt1 eller Batt2 ansluten - huvudloop = ett batteri i
Flödesdiagram 2 visar strategin för att ladda ett batteri. Samma strategi används för laddning av batteri 1 eller batteri 2. Loopen upprepas kontinuerligt. Först läses batterispänningen. Om spänningen är högre än eller lika med vissa högt värde (14.0V) laddning stoppas. Om inte det är markerad om värdet understiger eller är lika med ett visst lågt värde (12.0V). I så fall laddning har startats. En programvara efter denna flödesschema kommer att hålla ett batteri laddas mellan låga och det höga värdet.
Batt1 och Batt2 ansluten - huvudloop = två batterier
Flöde diagram 3 visar strategin för att ladda två batterier. Loopen upprepas kontinuerligt. Först läses alla batteri spänningar. Den kontrollerar sedan om batteri 1 just avslutat som tas ut. Om så är fallet (Ja), kommer det att sluta laddningen. Om svaret är nej, det kommer att kontrollera om batteri 2 just avslutat som tas ut. Om så är fallet (Ja), kommer det att sluta laddningen. Om svaret är nej, det kommer att kontrollera om batteriet 1 måste laddas snabbt. Om så är fallet (Ja), det kommer att börja ladda batteriet 1. Om svaret är nej, det kommer att kontrollera om batteriet 2 måste laddas snabbt. Om så är fallet (Ja), det börjar ladda batteri 2. Om inget av batterierna måste laddas snarast, kontrollerar programmet om batteri 1 var debiteras och återstår att tas ut. Om så är fallet (Ja) fortsätta att ladda batteriet 1. Om inte, kolla om batteriet 2 var debiteras och återstår att tas ut. Om så är fallet (Ja) fortsätta att ladda batteriet 2.