Interruptor polsador
//Interruptor amb polsador: Encén un led connectat al pin 13 polsant un moment el polsador connectat al pin 2 i l'apaga tornant a polsar momentàneament
// A quins pins connectem les coses
const int buttonPin = 2;
const int ledPin = 13;
// Variables globals
int ledState = HIGH;
int buttonState;
int lastButtonState = LOW;
long lastDebounceTime = 0;
long debounceDelay = 50;
// Quan comenci
void setup() {
// Assigno pins
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
// Fixo estat inicial del led
digitalWrite(ledPin, ledState);
}
// Repetir
void loop() {
// Deso l'estat del led a una variable reading
int reading = digitalRead(buttonPin);
// Si el botó canvia d'estat
if (reading != lastButtonState) {
// Reinicialitzo timer
lastDebounceTime = millis();
}
// Si el canvi d'estat està prou separat en el temps
if ((millis() - lastDebounceTime) > debounceDelay) {
// Si l'estat del botó ha canviat
if (reading != buttonState) {
buttonState = reading;
// Si l'estat és alt
if (buttonState == HIGH) {
// Canvia estat led
ledState = !ledState;
}
}
}
// Envia estat led
digitalWrite(ledPin, ledState);
// Desa darrer estat led
lastButtonState = reading;
}