Étape 6: Le Code source
/*
Un testeur de cycle de vie des piles à l’aide d’un écran Lcd comme sortie
*/
inclure le code de bibliothèque :
#include < LiquidCrystal.h >
initialiser la bibliothèque avec les numéros des broches interface
Innovente lcd (2, 3, 5, 6, 7, 8) ;
const int buttonPin = 0 ;
int sensorPin = A0 ; Sélectionnez l’entrée pin pour la batterie
int sensorValue = 0 ; variable pour stocker la valeur provenant de la sonde
const int relais = 1 ;
buttonState int = 0 ;
flotteur mah = 0.0 ;
long timestart ;
void setup() {}
mis en place nombre de l’écran LCD de colonnes et de lignes :
LCD.Begin (16, 2) ;
Imprimer un message à l’écran LCD.
LCD.Print ("testeur de batterie life") ;
pinMode (sortie, relais) ;
pinMode (buttonPin, entrée) ;
}
void loop() {}
régler le curseur sur la colonne 0, ligne 1
(Remarque : la ligne 1 est la seconde ligne, puisque le décompte commence par 0) :
digitalWrite (relais, 0) ; déclencher le relais de LED
tandis que (buttonState == faible) {}
sensorValue = analogRead(sensorPin) ; lire la batterie
la tension
buttonState = digitalRead(buttonPin) ;
Si (buttonState == HIGH) {}
Si (bb > 0) {bb = 0;} else {bb = 1;}
// }
lcd.setCursor (0, 1) ;
LCD.Print((sensorValue*4.98)/1023) ;
LCD.Print (« Volts ») ;
Delay(500) ;
} //end obtenir prêt boucle
digitalWrite (relais, 1) ; Définissez le LED-relais sur
lcd.setCursor (0, 0) ;
LCD.Print ("essai") ;
lcd.setCursor (0, 1) ;
LCD.Print("") ;
Mah = 0.0 ;
timestart = millis () ;
while (((sensorValue*4.98)/1023) > 3,00) {}
lcd.setCursor (0, 1) ;
LCD.Print((sensorValue*4.98)/1023) ;
LCD.Print (« V ») ;
sensorValue = analogRead(sensorPin) ; lire la batterie
Mah = mah + (((sensorValue*4.98)/1023)/4) / 7,2 ;
LCD.Print(mAh) ;
LCD.Print ("mAh") ;
retard (500) ;
lcd.setCursor(8,0) ;
LCD.Print ((millis()-timestart) / 1000) ; temps depuis le test staarted
} / / fin de drain de batterie
digitalWrite (relais, 0) ; déclencher le relais de LED
résultats définitifs
lcd.setCursor (0, 0) ;
LCD.Print(mAh) ;
LCD.Print ("mAH") ;
LCD.Print ((millis()-timestart) / 1000) ;
LCD.Print ("S") ;
buttonState = digitalRead(buttonPin) ;
}