/*
Tomado de: https://docs.arduino.cc/built-in-examples/digital/Debounce
*/

// Entradas - Salidas (pines)
const int buttonPin = 2;     
const int ledPin =  4;      

// Variables will change:
int ledState = HIGH;         
int buttonState;             // Estado actual del boton
int lastButtonState = LOW;   // Estado anterior del boton

long lastDebounceTime = 0;  // Ultima vez que el boton fue presionado 
long debounceDelay = 50;    // Ventana de tiempo para el debounce


void setup() {
  pinMode(buttonPin, INPUT);
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // Lectura inicial del boton
  int reading = digitalRead(buttonPin);
  
  if (reading != lastButtonState) {
    // reset the debouncing timer
    lastDebounceTime = millis();
  }
  
  // Se verifica que el tiempo entre pulsaciones sea mayor que el delay
  if ((millis() - lastDebounceTime) > debounceDelay) {
    // Se actualiza el valor del estado actual
    buttonState = reading;
  }
  
  // Actualizacion del valor
  digitalWrite(ledPin, buttonState);
  // Actualizacion del estado
  lastButtonState = reading; 
}
$abcdeabcde151015202530fghijfghij
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
r1:1
r1:2
led1:A
led1:C
r2:1
r2:2