Arduino - Cerradura de solenoide

La cerradura de solenoide, también conocida como cerradura eléctrica de cerrojo, se puede usar para bloquear/desbloquear armarios, cajones y puertas. En este tutorial, vamos a aprender cómo controlar la cerradura de solenoide con Arduino.

Una alternativa a la cerradura de solenoide es la cerradura electromagnética. Puedes aprender más en Arduino - Tutorial de Cerradura Electromagnética

Acerca de la cerradura de solenoide

Diagrama de pines

La cerradura de solenoide incluye dos cables:

  • Cable positivo (+) (rojo): debe conectarse a 12 V de una fuente de alimentación de CC
  • Cable negativo (-) (negro): debe conectarse a la tierra de la fuente de alimentación de CC
Esquema de pines de la cerradura de solenoide

Cómo funciona

  • Cuando la cerradura de solenoide está energizada, la lengüeta de la cerradura (pestillo) se extiende ⇒ la puerta queda bloqueada
  • Cuando la cerradura de solenoide no está energizada, la lengüeta de la cerradura (pestillo) se retrae ⇒ la puerta queda desbloqueada

※ Nota:

La cerradura de solenoide suele usar una fuente de alimentación de 12 V, 24 V o 48 V. Por lo tanto, no podemos conectar la cerradura de solenoide directamente al pin de Arduino. Tenemos que conectarla al pin de Arduino a través de un relé.

Si conectamos la cerradura de solenoide a un relé (modo normalmente abierto):

  • Cuando el relé está abierto, la puerta está desbloqueada.
  • Cuando el relé está cerrado, la puerta está bloqueada.

Al conectar Arduino al relé, podemos programar para que Arduino controle la cerradura de solenoide. Obtén más información sobre el relé en Arduino - Relay tutorial.

Diagrama de Cableado

Diagrama de cableado de la cerradura de solenoide para Arduino.

This image is created using Fritzing. Click to enlarge image

El diagrama de cableado real:

Conexión real de la cerradura de solenoide para Arduino

Código de Arduino

El código de abajo bloquea/desbloquea la puerta cada 5 segundos.

/* * 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-solenoid-lock */ // constants won't change const int RELAY_PIN = A5; // the Arduino pin, which connects to the IN pin of relay // the setup function runs once when you press reset or power the board void setup() { // initialize digital pin 3 as an output. pinMode(RELAY_PIN, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(RELAY_PIN, HIGH); // uhlock the door delay(5000); digitalWrite(RELAY_PIN, LOW); // lock the door delay(5000); }

Pasos R\u00e1pidos

  • Copie el código anterior y ábralo con Arduino IDE
  • Haga clic en el botón Subir del IDE de Arduino para cargar el código en Arduino
  • Vea el estado de la lengüeta de bloqueo

Arduino - Botón que controla la cerradura de solenoide

  • Diagrama de cableado
Diagrama de cableado de la cerradura de solenoide con botón Arduino

This image is created using Fritzing. Click to enlarge image

  • Código de Arduino
/* * 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-solenoid-lock */ #include <ezButton.h> // constants won't change const int BUTTON_PIN = 12; // Arduino pin connected to button's pin const int RELAY_PIN = A5; // Arduino pin connected to relay's pin ezButton button(BUTTON_PIN); // create ezButton object that attach to pin 12; void setup() { Serial.begin(9600); // initialize serial pinMode(RELAY_PIN, OUTPUT); // set arduino pin to output mode button.setDebounceTime(50); // set debounce time to 50 milliseconds digitalWrite(RELAY_PIN, LOW); // lock the door } void loop() { button.loop(); // MUST call the loop() function first if(button.isPressed()) { Serial.println("The button is pressed"); digitalWrite(RELAY_PIN, HIGH); // unlock the door in 10 seconds delay(10000); // 10 seconds digitalWrite(RELAY_PIN, LOW); // lock the door again } }

Pasos R\u00e1pidos

  • Instale la biblioteca ezButton. Ver Cómo hacerlo
  • Copie el código anterior y ábralo con Arduino IDE
  • Haga clic en el botón Subir en el IDE de Arduino para cargar el código en Arduino
  • Presione el botón una vez.
  • Vea el estado de la lengüeta de la cerradura durante 10 segundos.

※ Nota:

En el código anterior, utilizamos la función delay. Por lo tanto, no necesitamos hacer debouncing para el botón. Sin embargo, aún proporcionamos el código con debouncing por si quieres realizar más tareas sin usar la función delay. Consulte Cómo usar millis() en lugar de delay.

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!