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 2560 (ATmega2560, 16 MHz, 5 V): 54 E/S digitales, 15 PWM, 16 entradas analógicas, 4 UART por hardware. 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. En el Arduino IDE, elija « Arduino Mega 2560 » y el puerto, y suba. PWM en 2-13 y 44-46; UART1=18/19, UART2=16/17, UART3=14/15; SPI en 50-53.
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;
}