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 LilyPad Arduino (ATmega168V/328V, 8 MHz, 3,3 V) avec ses pastilles à coudre, programmée par câble FTDI (breakout) et alimentée par 3,7 V (LiPo) ou 5 V sur V-REG. 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 « LilyPad Arduino » et le port FTDI, puis Téléverser. Le fil conductif crée des résistances de quelques ohms : gardez les courtes distances et isolez les croisements.
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;
}