mercredi, février 5, 2025
ArduinoAtelier "Jeunes"Electronique

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");
}
}