Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Cerradura de puerta con teclado con código cambiable

Componentes y suministros

Arduino UNO
× 1
Matriz de teclado 4x4
× 1
Botón genérico
× 1
LCD i²c
× 1
Cerradura de solenoide lineal
× 1
IRF510N MOSFET
× 1
1 canal de retransmisión
× 1

Herramientas y máquinas necesarias

Placa de pruebas, 170 pines
10 Pz. Kit de cables de puente, 5 cm de largo

Acerca de este proyecto

Hola, y bienvenido a este tutorial (sí, es antiguo pero clásico), hoy estoy haciendo un proyecto de cerradura de puerta basado en una placa Arduino, teclado, pantalla LCD i²c, y usaré para la cerradura un solenoide y un relé, Puedes consultar mi tutorial sobre la cerradura de la puerta con huellas dactilares donde usé una cerradura que usa un motor de CC, por lo que depende de tu sistema de cerradura, tendrás que elegir un cableado, códigos y adaptarlos.

N.B:Para un proyecto real, no recomiendo usar un solenoide en absoluto, sino piratear una cerradura que se pueda abrir tanto con cerradura electrónica como mecánica y adaptar su proyecto para ello.

Piezas

Entonces, para este proyecto, necesitaremos esos componentes, junto con algunos cables de salto y una fuente de alimentación de 12V. Lo siento, no lo agregué aquí:

El botón pulsador está destinado a abrir la cerradura desde adentro, puede quitarlo si lo desea, la resistencia es para antirrebote.

Usé un teclado 4 × 4, puedes usar 3 × 4, pero necesitarás modificar algunas cosas en el código, como para confirmar, uso "A", puedes cambiarlo a "*" o "#".

El solenoide está alimentado por una fuente de alimentación externa de 12 V y es impulsado por el transistor MOSFET IRF510N.

El transistor se usa como un interruptor y es mejor usar un canal N, el IRF510N es bastante popular cuando se usa con un Arduino, cuando aplica un voltaje de 5V a través de la puerta y la fuente, el transistor se vuelve como un interruptor cerrado entre el Drain and the Source, y no necesita ninguna resistencia como las bipolares.

Y si no se aplica voltaje, el transistor actúa como un interruptor abierto, y así es como controlamos el solenoide.

Para el otro ejemplo estoy usando un módulo de relé de 1 canal, funciona con 3.3V, y nosotros controlamos su entrada como controlar el transistor, la única diferencia es que están invertidos (veremos en el código).

Diagrama de flujo del algoritmo

Para facilitar la comprensión, aquí está el diagrama de flujo, no está completamente detallado pero es una descripción general del código.

N.B:Puede usar el relé para controlar cualquier cerradura eléctrica hasta 250VAC, también puede usarlo para controlar el Solenoide ...

Los códigos son exactamente los mismos, lo único que cambia entre (BAJO y ALTO) para abrir la cerradura.

Solo recuerde que la primera vez debe cargar el código y cambiar el código de acceso, luego descomente algunas líneas (lea el código para encontrarlas (están en configuración)) y vuelva a cargar el código para que pueda leer el código de acceso de la EEPROM. .

También puede cambiar la longitud del código, primero lo hice con cuatro dígitos, puede cambiarlo del código predeterminado, ya que usé en el código el "tamaño de (código)" en lugar de "4". No puede cambiar un código de 4 dígitos a un código de acceso de 6 dígitos, primero cambie el código de acceso inicial de la fuente del código.

Prueba

Encontrará la prueba en las imágenes a continuación, navegue a través de ellas

Bueno, esa fue la prueba del proyecto, es lo mismo para el solenoide o relé, y el pulsador se abre desde adentro si quieres o puedes quitarlo.

Espero que sea de utilidad y si tienes algún problema o pregunta deja un comentario.

Código

  • Keypad_doorlock_solenoid.ino
  • Keypad_doorlock_relay.ino
Keypad_doorlock_solenoid.ino Arduino
Recuerde cargar primero el código, luego descomentar la línea 62 a 64 y volver a cargar, se hace solo una vez.
 / * Este código funciona con Matriz de teclado 4x4, LCD ic, transistor IRF510N y un botón pulsador * Es una cerradura donde se activa el transistor una cerradura de solenoide que puede abrir con el código correcto * o con el botón pulsador desde el interior * El código se puede cambiar directamente con el teclado y no es necesario cargar el código nuevamente * El código se almacena en EEPROM * Consulte www.surtrtech.com para más detalles * / # incluir  #include  #include  #define Solenoid 11 // En realidad, la puerta del transistor que controla el solenoide # define O_Button 10 // Botón pulsador #define I2C_ADDR 0x27 // Dirección I2C, debe usar el código para escanear la dirección primero (0x27) aquí # define BACKLIGHT_PIN 3 // Declarando Pines LCD # define En_pin 2 # define Rw_pin 1 # define Rs_pin 0 # define D4_pin 4 # define D5_pin 5 # define D6_pin 6 # define D7_pin 7const byte numRows =4; // número de filas en el byte keypadconst numCols =4; // número de columnas en el keypadchar keymap [numRows] [numCols] ={{'1', '2', '3', 'A'}, {'4', '5', '6', 'B '}, {' 7 ',' 8 ',' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}}; char presionada; // El lugar donde se almacenan las claves cambia con mucha frecuenciachar code [] ={'6', '6', '0', '1'}; // El código predeterminado, puede cambiarlo o convertirlo en 'n' dígitos onechar code_buff1 [sizeof (code)]; // Dónde se almacena la nueva clavechar code_buff2 [sizeof (code)]; // Donde la nueva clave se almacena nuevamente para que se compare con la anterior corta a =0, i =0, s =0, j =0; // Variables utilizadas laterbyte rowPins [numRows] ={9,8,7,6}; // Filas 0 a 3 // si modificas tus pines debes modificar este toobyte colPins [numCols] ={5,4,3,2}; // Columnas 0 a 3LiquidCrystal_I2C lcd (I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin); Keypad myKeypad =Keypad (makeKeymap (mapa de teclado), rowPins, colPins, numRows, numCols) {lcd .comienzo (16,2); lcd.setBacklightPin (BACKLIGHT_PIN, POSITIVO); lcd.setBacklight (ALTO); // Iluminación de fondo lcd.home (); lcd.print ("En espera"); // Lo que está escrito en la pantalla LCD puede cambiar pinMode (Solenoid, OUTPUT); pinMode (O_Button, ENTRADA); // for (i =0; i  
Keypad_doorlock_relay.ino Arduino
Recuerde cargar primero el código, luego descomentar la línea 62 a 64 y volver a cargar, se hace solo una vez.
 / * Este código funciona con Matriz de teclado 4x4, LCD ic, módulo de relé y un botón pulsador * Es una cerradura donde el relé puede controle una cerradura que puede abrir con el código correcto * o con el botón pulsador desde el interior * El código se puede cambiar directamente con el teclado y no es necesario volver a cargar el código * El código se almacena en EEPROM * Consulte www.surtrtech.com para más detalles * / # include  #include  #include  #define Relay 11 // Controla el Relay # define O_Button 10 // Push Button # define I2C_ADDR 0x27 // I2C dirección, debe usar el código para escanear la dirección primero (0x27) aquí # definir BACKLIGHT_PIN 3 // Declarar pines LCD # definir En_pin 2 # definir Rw_pin 1 # definir Rs_pin 0 # definir D4_pin 4 # definir D5_pin 5 # definir D6_pin 6 # definir D7_pin 7const byte numRows =4; // número de filas en el byte keypadconst numCols =4; // número de columnas en el keypadchar keymap [numRows] [numCols] ={{'1', '2', '3', 'A'}, {'4', '5', '6', 'B '}, {' 7 ',' 8 ',' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}}; char presionada; // El lugar donde se almacenan las claves cambia con mucha frecuenciachar code [] ={'6', '6', '0', '1'}; // El código predeterminado, puede cambiarlo o convertirlo en 'n' dígitos onechar code_buff1 [sizeof (code)]; // Dónde se almacena la nueva clavechar code_buff2 [sizeof (code)]; // Donde la nueva clave se almacena nuevamente para que se compare con la anterior corta a =0, i =0, s =0, j =0; // Variables utilizadas laterbyte rowPins [numRows] ={9,8,7,6}; // Filas 0 a 3 // si modificas tus pines debes modificar este toobyte colPins [numCols] ={5,4,3,2}; // Columnas 0 a 3LiquidCrystal_I2C lcd (I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin); Keypad myKeypad =Keypad (makeKeymap (mapa de teclado), rowPins, colPins, numRows, numCols) {lcd .comienzo (16,2); lcd.setBacklightPin (BACKLIGHT_PIN, POSITIVO); lcd.setBacklight (ALTO); // Iluminación de fondo lcd.home (); lcd.print ("En espera"); // Lo que está escrito en la pantalla LCD puede cambiar pinMode (Relay, OUTPUT); pinMode (O_Button, ENTRADA); // for (i =0; i   

Esquemas


Proceso de manufactura

  1. Bóveda del banco
  2. Haga una puerta de oficina con bloqueo automático con sensor de proximidad para teléfono inteligente
  3. Sensor de temperatura múltiple
  4. MotionSense
  5. Seguridad contra incendios de la impresora 3D
  6. Cerradura de puerta basada en contraseña
  7. Medidor de IoT con Arduino, Yaler e IFTTT
  8. Levitación electromagnética repulsiva Arduino
  9. Bot de agarre de control remoto
  10. Laboratorio de microcontroladores
  11. CoroFence - Detector térmico🖖