bouton-led.ino

Arduino Micro · Archivo : bouton-led.ino · Lenguaje : Arduino · Uso : Allumer une LED quand un bouton est pressé, avec anti-rebond

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 Micro (ATmega32U4, 16 MHz, 5 V) en formato para protoboard con conector micro-USB y USB nativo (teclado/ratón). 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 Micro » y el puerto, y suba. En Windows puede requerirse un driver .inf para el puerto COM. Como el 32U4 es el propio USB, un mal sketch puede bloquear el reflujo (doble reset).

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;
}

← Volver a la ficha