Utilizar un botón para controlar una luz no parece demasiado difícil. En esta sección vamos a utilizar un sensor táctil y un relé para controlar un LED. ¡Vamos a hacerlo!

Componentes necesarios

  • 1×  Sensor táctil capacitivo
Sensor tactic
  • 1×  Modulo relé
Modulo relé
  • 1×   Shield expansión para entradas o salidas.
Shield expansión para entradas o salidas.
  • 1×  Kit Intel® Edison con tarjeta Arduino Breakout.
Kit Intel Edison
  • LED (u otro dispositivo de salida) y su correspondiente fuente de alimentación.
LED bateria

Diagrama de conexión:

Sensor táctil capacitivo → Pin Digital 2
Modulo relé → Pin Digital 12

Conexion boton tactil

Observe que el relé puede ser considerado como un interruptor controlado eléctricamente. Usted puede incluso utilizarlo para controlar los aparatos eléctricos de alto voltaje y alta corriente en su hogar. Por razones de seguridad, le recomendamos NO maniobrar en los cables de alta tensión si esta es su primera vez.

¿Cómo se utiliza un relé?

Comencemos hablando del relé. Tú puedes usar un pin digital para controlar un switch como es el caso de un relé.
El modulo relè, posee cuatro conexiones de salida que son el pin COM (común) NO(Normalmente abierto), NC (Normalmente cerrado), N/A(No utilizado)

Rele conexion

COM = Común, NC y NO siempre conectados a este pin, esta es la parte que se  mueve en el switch.
NC = Normalmente cerrado, COM es conectado a este pin cuando el pin digita es LOW.
NO = Normalmente abierto, COM es conectado a este pin cuando el pin digita es HIGH.

Código de programación Arduino:
inttouchPin = 2;                              //Pin de entrada de sensor

intrelayPin = 12;                             //Pin conectado a rele

intrelayState = HIGH;                   //Variable de rele en estado HIGH

inttouchState;                                 // Variable de almacenamiento de datos de sensor

intlastTouchState = LOW;           // Variable que almacena el ultimo estado del sensor tactil

longlastDebounceTime = 0;

longdebounceDelay = 50;         // debounce time

voidsetup() {

pinMode(touchPin, INPUT);                    //Configuración de touchPin como entrada digital.

pinMode(relayPin, OUTPUT);                 //Configuración de relayPin como salida digital.

digitalWrite(relayPin, relayState);         //Se escribe estado HIGH inicial en relayPin

}

voidloop() {

intreading = digitalRead(touchPin);     //Lee el estado del sensor táctil y lo guarda en una variable.

// Si el estado del sensor táctil cambia, guarda el tiempo en variable lastDebounceTime.

if(reading != lastTouchState) {

lastDebounceTime = millis();

}

// Esperar 50ms para confirmar si se crea cambio de estado de sensor

// Si el  nuevo estado del sensor táctil es HIGH, se  cambia el estado del rele.

if((millis() – lastDebounceTime) > debounceDelay) {

if(reading != touchState) {

touchState = reading;

if(touchState == HIGH) {

relayState = !relayState;

}

}

}

digitalWrite(relayPin, relayState);

// Graba el ultimo estado del sensor táctil.

lastTouchState = reading;

}
Después de cargar el sketch de Arduino podrás tocar el sensor táctil para controlar el LED.

Principio (Entrada digital – Salida digital):

Aparentemente, el sensor táctil es el dispositivo de entrada, mientras que el modulo relè es el de salida. Mientras tanto, el relé puede controlar otros dispositivos.

Principio ejemplo 4

Revisión del código de programación Arduino:

Se configura el sensor táctil como un entrada y el modulo rele como una salida.
pinMode(touchPin, INPUT);
pinMode(relayPin, OUTPUT);

Usa digitalWrite() para ller el estado del sensor táctil:
intreading = digitalRead(touchPin);

Cuando se pulse el sensor táctil, puede rebotar la señal de entrada varias veces antes de hacer contacto constante en poco tiempo al igual que el de la ilustración:

Rebote de sensor tactil


Sin supresión de rebotes, al pulsar el sensor táctil puede ser que Arduino reconozca que se ha presionado muchas veces seguidas el sensor. Para neutralizar estas señales rebote, se utiliza la función millis (), la cual sirve para  realizar un seguimiento de las veces que se pulsa el sensor.

Si el estado del sensor táctil cambia, se graba el tiempo a través de la función millis():
if (reading != lastTouchState) {
lastDebounceTime = millis();
}
La función millis() retorna el numero de milisegundos desde que  la tarjeta Arduino  comenzó  a correr el programa.

Se pide una espera de 50ms para confirmar el cambio de estado desde el sensor tactil. Si esto realmente sucede, se cambia el estado del relé.

if ((millis() – lastDebounceTime) > debounceDelay) {
if (reading != touchState) {
touchState = reading;

if (touchState == HIGH) {
relayState = !relayState;
}
}
}