Usando botones
con Arduino
Volkan Rivera
¿Qué es un botón?
● Conectan dos puntos de un circuito cuando
son presionados.
● Tienen dos estados posibles y cambia
cuando es presionado (push button).
● No mantiene el estado a diferencia de los
“interruptores” (switch).
¿Cómo usar un botón?
Usando un botón para
encender un LED
const int buttonPin = 2;
const int ledPin = 3;
int buttonState = 0;
void setup() {
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop(){
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH);
}
else {
digitalWrite(ledPin, LOW);
}
}
Cambio de estado al pulsar el botón
const int buttonPin = 2;
const int ledPin = 3;
boolean buttonState = LOW;
boolean currentState = LOW;
boolean ledState = false;
void setup() {
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop(){
buttonState = digitalRead(buttonPin);
if ((buttonState == HIGH) && (currentState == false)) {
ledState = !ledState;
} else {
currentState = buttonState;
}
digitalWrite(ledPin, ledState);
}
Eliminando el rebote
El rebote es un problema común en switches, botones y
relés. Durante un periodo de tiempo muy breve el contacto
mecánico rebota antes de establecer un contacto firme.
Eliminando el rebote
Por hardware: Por software:
boolean keypress(int Pin) {
boolean inicial = digitalRead(Pin);
delay(10);
boolean valor = digitalRead(Pin);
if ((inicial == HIGH) && (valor == LOW))
{
return(true);
} else {
return(false);
}
}
Un ejemplo más
Hacer que el LED cambie en cuatro
intensidades.
Ejercicio
Hacer que cada vez que se presione el botón un led se
encienda

Usando botones con arduino

  • 1.
  • 2.
    ¿Qué es unbotón? ● Conectan dos puntos de un circuito cuando son presionados. ● Tienen dos estados posibles y cambia cuando es presionado (push button). ● No mantiene el estado a diferencia de los “interruptores” (switch).
  • 3.
  • 4.
    Usando un botónpara encender un LED
  • 5.
    const int buttonPin= 2; const int ledPin = 3; int buttonState = 0; void setup() { pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT); } void loop(){ buttonState = digitalRead(buttonPin); if (buttonState == HIGH) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } }
  • 6.
    Cambio de estadoal pulsar el botón const int buttonPin = 2; const int ledPin = 3; boolean buttonState = LOW; boolean currentState = LOW; boolean ledState = false; void setup() { pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT); } void loop(){ buttonState = digitalRead(buttonPin); if ((buttonState == HIGH) && (currentState == false)) { ledState = !ledState; } else { currentState = buttonState; } digitalWrite(ledPin, ledState); }
  • 7.
    Eliminando el rebote Elrebote es un problema común en switches, botones y relés. Durante un periodo de tiempo muy breve el contacto mecánico rebota antes de establecer un contacto firme.
  • 8.
    Eliminando el rebote Porhardware: Por software: boolean keypress(int Pin) { boolean inicial = digitalRead(Pin); delay(10); boolean valor = digitalRead(Pin); if ((inicial == HIGH) && (valor == LOW)) { return(true); } else { return(false); } }
  • 9.
    Un ejemplo más Hacerque el LED cambie en cuatro intensidades.
  • 10.
    Ejercicio Hacer que cadavez que se presione el botón un led se encienda