Arduino : initiation à l’usage des radioamateurs. 5ème partie.
Gestion de boutons poussoirs
Rappel : Cette succession d’articles va nous conduire au montage et à la programmation d’un émetteur/récepteur VHF piloté par Arduino. Nous utiliserons des boutons poussoirs pour effectuer les différents réglages comme le pas (25khz, 12,5khz … ), le Squelch, arrêt/relance du scanner.
Nous poursuivons les montages autour de notre afficheur, on utilisera un ensemble de 4 boutons poussoirs à membranes (30 centimes ….. ), attention le brochage est un peu fantaisiste ….
Côté programmation, rien de nouveau, nous allons déclarer et utiliser des entrées/sorties digitales, nous nous contenterons de 2 boutons :
Notre bouton 1 utilisera la borne 3 et notre bouton 2 la 4.
int Bouton_1 = 3;
int Bouton_2 = 4;
Nous utilisons Bouton_1 et Bouton_2 comme des entrées digitales INPUT_PULLUP ce qui aura pour effet de simuler une résistance afin d’éviter les signaux parasites ou/et les rebonds.
pinMode(Bouton_1, INPUT_PULLUP);
pinMode(Bouton_2, INPUT_PULLUP);
Nous testerons et afficherons l’état des boutons (LOW on appuie, HIGH pas de pression)
if (digitalRead(Bouton_1) == LOW) …. lcd.print(« 1 ») …..
/////////////////////////////////
// gestion boutons poussoirs //
/////////////////////////////////
// Ajouter librairie de gestion de l'écran LCD:
# include <LiquidCrystal.h>
// initialisation des broches à utiliser pour l'écran LCD.
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
// Initialisation des variables
int Bouton_1 = 3; // Notre bouton 1 utilisera la borne 3 de l'Arduino
int Bouton_2 = 4; // Notre bouton 2 utilisera la borne 4 de l'Arduino
void setup() {
// Préparation de notre afficheur qui comporte 16 colonnes sur 2 lignes
lcd.begin(16, 2);
// Afficher sur l'écran LCD.
lcd.setCursor(0, 0);
lcd.print("DERNIER BOUTON:");
pinMode(Bouton_1, INPUT_PULLUP); // Nous utilisons Bouton_1 comme une entrée digitale
pinMode(Bouton_2, INPUT_PULLUP); // Nous utilisons Bouton_2 comme une entrée digitale
}
void loop() {
lcd.setCursor(15, 0);
if (digitalRead(Bouton_1) == LOW)
{
lcd.print("1");
}
if (digitalRead(Bouton_2) == LOW)
{
lcd.print("2");
}
}