bouton-led.ino

LilyPad Arduino · 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

Una LilyPad Arduino (ATmega168V/328V, 8 MHz, 3,3 V) con sus pastillas para coser, programada con cable FTDI (breakout) y alimentada por 3,7 V (LiPo) o 5 V en V-REG. 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 « LilyPad Arduino » y el puerto FTDI, y suba. El hilo conductor añade unos ohmios de resistencia: mantenga tiradas cortas y aísle los cruces.

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