bouton-led.ino
Un bouton câblé vers GND allume la LED 13 pendant l'appui. Le mode INPUT_PULLUP active la résistance interne, et la fenêtre de 30 ms filtre les rebonds mécaniques du contact.
Matériel requis
Une Arduino Micro (ATmega32U4, 16 MHz, 5 V) au format painboard avec connecteur micro-USB et USB natif (clavier/souris). 1 bouton poussoir.
Branchement
Une patte du bouton sur la broche 2, l'autre sur GND ; LED (avec résistance 330 Ω) sur la broche 13 si LED externe.
Fonctionnement
La lecture n'est validée que si elle reste stable 30 ms ; l'appui met la broche à la masse (LOW en pull-up) et allume la LED. Dans l'Arduino IDE, choisissez « Arduino Micro » et le port, puis Téléverser. Sous Windows, un pilote .inf peut être requis pour le port COM. Le 32U4 étant l'USB, un mauvais sketch peut bloquer le reflash (reset double).
Pour aller plus loin
Transformez en toggle en inversant un état sur chaque front, ou branchez un second bouton sur la broche 3.
bouton-led.ino
// Bouton sur la broche 2 (vers GND) + LED sur 13, anti-rebond logiciel.
const int BOUTON = 2;
const int LED = 13;
const unsigned long ANTI_REBOND = 30; // ms
bool dernier = HIGH, stable = HIGH;
unsigned long bord = 0;
void setup() {
pinMode(BOUTON, INPUT_PULLUP); // resistance interne : rien d'externe
pinMode(LED, OUTPUT);
Serial.begin(9600);
}
void loop() {
bool lu = digitalRead(BOUTON);
unsigned long t = millis();
if (lu != dernier) bord = t;
if (t - bord >= ANTI_REBOND && lu != stable) {
stable = lu;
digitalWrite(LED, stable == LOW ? HIGH : LOW);
Serial.println(stable == LOW ? F("Appui") : F("Lache"));
}
dernier = lu;
}