bouton-led.ino
Un botón cableado a GND enciende el LED mientras se pulsa. INPUT_PULLUP activa la resistencia interna y la ventana de 30 ms filtra el rebote mecánico del contacto.
Hardware necesario
Un Arduino Mega ADK Rev3 (ATmega2560 + chip de host USB MAX3421E con puerto USB-A; el pin digital 7 queda reservado para el reset del MAX3421E). 1 botón pulsador.
Cableado
Una pata del botón al pin 2, la otra a GND; LED (con resistencia de 330 Ω) en el pin 13 si es externo.
Funcionamiento
Una lectura vale tras 30 ms estable; al pulsar el pin va a masa (LOW con pull-up) y enciende el LED. Placa « Arduino Mega ADK » en el IDE. Para host USB/ADK, instale la biblioteca USB Host Shield 2.0; no use D7. El puerto USB-A alimenta el accesorio a 5 V.
Para ir más lejos
Conviértalo en toggle invirtiendo un estado en cada flanco, o cable otro botón en el pin 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;
}