Des sketchs à ajouter à ArdPyLog (suite)


7. Ecran LCD 2
(Incrémenter un compteur – Catégorie: Divers)

 

L’objectif de cette activité est d’incrémenter un compteur en appuyant sur un bouton poussoir puis d’afficher sa valeur sur un écran LCD. Un appui prolongé sur le bouton poussoir remet le compteur à zéro.

L’écran à cristaux liquides utilisé comporte deux rangées de 16 caractères, d’où son nom de LCD 1602 et le potentiomètre du montage permet de régler sa luminosité.

Le code de l’activité nécessite l’installation au préalable de la librairie  » LiquidCrystal  » d’Adafruit.
Afin d’ajouter une librairie à l’IDE Arduino, il faut aller dans le menu « Outils ->Gérer les bibliothèques » :

Il suffit ensuite de rechercher et d’ajouter la librairie  » LiquidCrystal  » d’Adafruit:

 

Le programme

Voici le code de l’activité :

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

const int switchPin = 6;

int switchState = 0;

int prevSwitchState = 0;

int comptBtn=0;
unsigned long startTime = 0;
unsigned long DeltaTime = 0;


void setup() {

lcd.begin(16, 2);

pinMode(switchPin,INPUT);

lcd.print(« Appuyez sur le »);
lcd.setCursor(0, 1);
lcd.print(« bouton poussoir »);
}

void loop() {
switchState = digitalRead(switchPin);

if (switchState != prevSwitchState) {

if (switchState == HIGH) {
startTime = millis();
comptBtn = comptBtn +1;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(« NUMERO: »);
lcd.setCursor(0, 1);
lcd.print(comptBtn);
}

}
if ((switchState == HIGH) && (prevSwitchState == HIGH)) {
DeltaTime = millis() – startTime;
if (DeltaTime > 500) {
comptBtn = 0;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(« Appuyez sur le »);
lcd.setCursor(0, 1);
lcd.print(« bouton poussoir »);
}
}
prevSwitchState = switchState;
}

 

Déroulement du programme :

– 1. Insertion des bibliothèques :

. Insertion de la librairie  » LiquidCrystal  » d’Adafruit

. Initialisation de la librairie avec les broches utilisées pour l’écran LCD

 

– 2. Déclaration des constantes et variables :

. const int switchPin = 6 (constante nombre entier correspondant à la broche du bouton poussoir)

. int switchState = 0 (variable nombre entier pour stocker la valeur du potentiel de la broche du bouton poussoir)

. int prevSwitchState = 0 (variable nombre entier pour stocker l’ancienne valeur du potentiel de la broche du bouton poussoir)

. int comptBtn (variable nombre entier correspondant à la valeur du compteur qui doit être affichée)

. unsigned long startTime = 0 (variable nombre entier long pour stocker l’heure d’appui sur le bouton poussoir)

. unsigned long DeltaTime = 0 (variable nombre entier long pour stocker la durée d’appui sur le bouton poussoir)

 

– 3. Initialisation des entrées et sorties :

. Initialisation du nombre de lignes et de colonnes de l’écran LCD,

. Initialisation de la broche du bouton poussoir en entrée,

. Affichage de la consigne « Appuyer sur le bouton poussoir » sur l’écran LCD.

 

– 4. Fonction principale en boucle :

–> Lecture de la valeur de la broche du bouton poussoir,

–> Si le bouton poussoir est appuyé, le compteur est incrémenté,

–> Affichage du chiffre sur l’écran LCD,

–> Si le bouton poussoir est maintenu appuyé, le compteur est remis à zéro.