Arduino - Relé de conmutación por sensor de puerta

En un tutorial anterior, hemos aprendido a encender el relé si la puerta está abierta y a apagar el relé si la puerta está cerrada. En este tutorial, vamos a aprender cómo alternar el relé cada vez que se cierre la puerta.

Conectando un relé a una bombilla, una tira de LEDs, un motor o un actuador... Podemos usar el sensor de la puerta para alternar la bombilla, la tira de LEDs, el motor o el actuador...

Acerca de Relé y Sensor de Puerta

Si no sabes sobre el relé y el sensor de puerta (diagrama de pines, cómo funciona, cómo programarlo, ...), aprende sobre ellos en los siguientes tutoriales:

Diagrama de Cableado

Diagrama de cableado del relé para sensor de puerta Arduino

This image is created using Fritzing. Click to enlarge image

Código Arduino - Sensor de Puerta que Conmuta el Relé

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-door-sensor-toggle-relay */ // constants won't change const int DOOR_SENSOR_PIN = 13; // Arduino pin connected to door sensor's pin const int RELAY_PIN = 3; // Arduino pin connected to relay's pin // variables will change: int relayState = LOW; // the current state of relay int lastDoorState; // the previous state of door sensor int currentDoorState; // the current state of door sensor void setup() { Serial.begin(9600); // initialize serial pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set arduino pin to input pull-up mode pinMode(RELAY_PIN, OUTPUT); // set arduino pin to output mode currentDoorState = digitalRead(DOOR_SENSOR_PIN); } void loop() { lastDoorState = currentDoorState; // save the last state currentDoorState = digitalRead(DOOR_SENSOR_PIN); // read new state if (lastDoorState == HIGH && currentDoorState == LOW) { // state change: HIGH -> LOW Serial.println("The door-closing event is detected"); // toggle state of relay relayState = !relayState; // control relay arccoding to the toggled state digitalWrite(RELAY_PIN, relayState); } }

Pasos R\u00e1pidos

  • Conecta Arduino al PC mediante un cable USB
  • Abre Arduino IDE, selecciona la placa y el puerto correctos
  • Copia el código anterior y ábrelo con Arduino IDE
  • Haz clic en el botón Subir en Arduino IDE para subir el código al Arduino
  • Acerca el imán al interruptor de láminas y luego aléjalo del interruptor de láminas. Repite esto varias veces
  • Observa el cambio en el estado del relé

Explicación del código

Puede encontrar la explicación en la línea de comentarios del código de Arduino anterior.

En el código, relayState = !relayState es equivalente al siguiente código:

if(relayState == LOW) relayState = HIGH; else relayState = LOW;

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!