Arduino: pulsador a interruptor


cabecera Arduino pulsador makit

Hoy te enseñamos cómo podemos hacer que un pulsador (táctil o no) actúe como un interruptor gracias a la programación de Arduino.

Los pulsadores se pueden usar para activar una salida (por ejemplo un led o un timbre) cuando los pulsamos. En la práctica 3 actividad 2 (del apartado de descargas) vemos como el programa en Archivo-> Ejemplos-> Digital ->Button enciende un led cuando pulsamos el sensor táctil y lo apaga cuando no lo pulsamos. Este modo de funcionamiento es perfecto para, por ejemplo, un timbre, pero ¿ y si queremos usar el pulsador como interruptor[1]?

Con Arduino se puede programar un pulsador para que funcione como un interruptor. Tan solo necesitamos crear una variable que cambie de valor cuando pulsamos. Lo haremos de forma que cuando pulsamos la variable pasará de 0 a 1 o viceversa dependiendo del estado en el que se encuentre. Después encenderemos el led partiendo del estado de esta variable, no del pulsador en sí. De esta forma hemos convertido un pulsador en un interruptor.

conexión pulsador táctil arduino makitconexión pulsador arduino makit

Échale un vistazo al código y pruébalo con los materiales de tu Humbot.

/*---------------------------------------------------------------------------
----------- PROGRAM -----------------
-----------------------------------------------------------------------------
*/
// constants won't change. They're used here to
// set pin numbers:
const int buttonPin = 2; // the number of the pushbutton pin
const int ledPin = 13; // the number of the LED pin

// variables will change:
int buttonState = 0; // variable for READING the pushbutton status
int variable_buttonState = 0; // variable for STORING the pushbutton status

void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
}

void loop(){
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);

// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// turn LED on:
variable_buttonState = !variable_buttonState;
//waiting time so we're not changing state several times with only push
delay(300);
}

if (variable_buttonState == HIGH) {
// turn led on
digitalWrite(ledPin, HIGH);
}
else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
}

Imagine it, design it, makit!

[1] Recuerda que un interruptor cambia su estado (abre o cierra el circuito) cuando lo accionamos y se mantiene en este estado hasta que lo volvemos a accionar. Por el contrario, un pulsador solo abre o cierra el circuito mientras lo estamos pulsando, volviendo a su estado inicial cuando lo dejamos de pulsar.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.