Laptop Battery Analyzer /Recycler (6 / 10 steg)
Steg 6: Källan koden
/*
Batteriets livscykel testare med en Lcd som utdata
*/
inkludera bibliotek-koden:
#include < LiquidCrystal.h >
initiera bibliotek med numrerar av gränssnittet stiften
LiquidCrystal lcd (2, 3, 5, 6, 7, 8);
CONST int buttonPin = 0;
int sensorPin = A0; Välj input PIN-koden för batteriet
int sensorValue = 0; variabel för att lagra värdet kommer från sensorn
CONST int relä = 1;
int buttonState = 0;
flyta mah = 0,0;
lång timestart;
void setup() {
Ange den LCD antal kolumner och rader:
LCD.BEGIN (16, 2);
Skriv ut ett meddelande till LCD-skärmen.
LCD.Print ("batteri liv testare");
pinMode (relä, utgång);
pinMode (buttonPin, ingång);
}
void loop() {
ställa markören till kolumn 0, linje 1
(Obs: linje 1 är den andra raden, sedan räknar börjar med 0):
digitalWrite (relä, 0); iväg för LED-relay
medan (buttonState == låg) {
sensorValue = analogRead(sensorPin); Läs batteriet
spänningen
buttonState = digitalRead(buttonPin);
om (buttonState == hög) {
om (bb > 0) {bb = 0;} annat {bb = 1;}
// }
lcd.setCursor (0, 1);
LCD.Print((sensorValue*4.98)/1023);
LCD.Print ("volt");
Delay(500);
} //end få redo ögla
digitalWrite (relä, 1); ställa in LED-reläet på
lcd.setCursor (0, 0);
LCD.Print ("Testing");
lcd.setCursor (0, 1);
LCD.Print("");
Mah = 0,0;
timestart = millis ();
medan (((sensorValue*4.98)/1023) > 3,00) {
lcd.setCursor (0, 1);
LCD.Print((sensorValue*4.98)/1023);
LCD.Print ("V");
sensorValue = analogRead(sensorPin); Läs batteriet
Mah = mah + (((sensorValue*4.98)/1023)/4) / 7.2;
LCD.Print(mAh);
LCD.Print ("mAh");
fördröjning (500).
lcd.setCursor(8,0);
LCD.Print ((millis()-timestart) / 1000); gången sedan test staarted
} / / end batteriet laddas ur
digitalWrite (relä, 0); iväg för LED-relay
slutresultat
lcd.setCursor (0, 0);
LCD.Print(mAh);
LCD.Print ("mAH");
LCD.Print ((millis()-timestart) / 1000);
LCD.Print ("S");
buttonState = digitalRead(buttonPin);
}