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.
É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.