Comment câbler un bouton-poussoir ?
NIVEAU 1
Objectifs
- Câbler un bouton-poussoir sur une entrée numérique
Pré-requis
Bouton-Poussoir
Une des premières façons de réaliser une interface homme-machine (ou IHM) est d’utiliser des LEDs pour l’affichage et des boutons-poussoirs pour les interactions avec l’être humain.
Nous allons voir ici comment câbler un bouton-poussoir.
Schéma de câblage d’un bouton-poussoir
Pour cela, nous allons utiliser le schéma suivant :
La résistance permet de protéger l’alimentation lors de l’appui sur le bouton-poussoir (afin d’éviter un court-circuit). On peut prendre une résistance de l’ordre de 10 kOhms.
Pour les cartes Nucléo, la tension \(V_{DD}\) vaut 3.3V. Il ne faut surtout pas dépasser cette valeur. La carte Nucléo possède des broches notées GND et 3V3 permettant de relier le 0V de la carte et une source de tension continue de 3.3V.
Configuration et utilisation dans un programme
Le bouton-poussoir est ensuite lié à une entrée numérique. Il faut donc configurer la broche sur laquelle est relié le bouton-poussoir comme entrée numérique.
#include "mbed.h" DigitalIn mon_bouton(D7);
On peut ensuite l’utiliser comme une entrée numérique (cas du câblage fourni précédemment) :
int a = mon_bouton.read(); if(a == 1){ // ACTIONS A FAIRE SI LE BOUTON POUSSOIR EST ENFONCE } else{ // ACTIONS A FAIRE SI LE BOUTON POUSSOIR EST RELACHE }
Ou plus simplement, le code suivant :
if(mon_bouton == 1){ // ACTIONS A FAIRE SI LE BOUTON POUSSOIR EST ENFONCE } else{ // ACTIONS A FAIRE SI LE BOUTON POUSSOIR EST RELACHE }
Détection d’un front
Le code suivant permet de détecter un front montant sur une entrée numérique.
#include "mbed.h" DigitalIn my_bp(BUTTON1); DigitalOut my_led(LED1); int main(){ int old_bp, new_bp; while(1){ new_bp = my_bp; if((old_bp != new_bp) && (new_bp == 1)){ // front montant my_led = !my_led; } old_bp = new_bp; } }
MInE Prototyper Prototyper avec Nucleo et MBED