Arduino - Fechadura Solenoide

A fechadura solenoide também é conhecida como fechadura elétrica de trinco (Electric Strike Lock). Ela pode ser usada para trancar/destrancar armários, gavetas e portas. Neste tutorial, vamos aprender a controlar a fechadura solenoide usando o Arduino.

Uma alternativa à fechadura solenoide é a fechadura eletromagnética. Você pode aprender mais no Tutorial Arduino - Fechadura Eletromagnética

Sobre a Fechadura Solenoide

Pinagem

A fechadura solenoide inclui dois fios:

  • Fio positivo (+) (vermelho): precisa ser conectado ao 12V da fonte de alimentação DC
  • Fio negativo (-) (preto): precisa ser conectado ao GND da fonte de alimentação DC
Pinagem da Fechadura Solenoide

Como Funciona

  • Quando a fechadura solenoide está energizada, a lingueta da fechadura (trinco) fica estendida ⇒ a porta está trancada
  • Quando a fechadura solenoide NÃO está energizada, a lingueta da fechadura (trinco) fica recolhida ⇒ a porta está destrancada

※ Nota:

A fechadura solenoide geralmente usa uma fonte de alimentação de 12V, 24V ou 48V. Por isso, NÃO PODEMOS conectar a fechadura solenoide diretamente ao pino do Arduino. Precisamos conectá-la ao pino do Arduino por meio de um relé

Se conectarmos a fechadura solenoide a um relé (modo normalmente aberto):

  • Quando o relé está aberto, a porta está destrancada
  • Quando o relé está fechado, a porta está trancada

Conectando o Arduino ao relé, podemos programar o Arduino para controlar a fechadura solenoide. Saiba mais sobre o relé no Tutorial Arduino - Relé.

Diagrama de Ligação

Diagrama de Ligação da Fechadura Solenoide com Arduino

This image is created using Fritzing. Click to enlarge image

O diagrama de ligação real:

Conexão real da Fechadura Solenoide com Arduino

Código Arduino

O código abaixo tranca/destranca a porta a cada 5 segundos

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.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); }

Passos Rápidos

  • Copie o código acima e abra com o Arduino IDE
  • Clique no botão Upload no Arduino IDE para carregar o código no Arduino
  • Veja o estado da lingueta da fechadura

Arduino - Botão Controla Fechadura Solenoide

  • Diagrama de Ligação
Diagrama de Ligação do Botão e Fechadura Solenoide com Arduino

This image is created using Fritzing. Click to enlarge image

  • Código Arduino
/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.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 } }

Passos Rápidos

  • Instale a biblioteca ezButton. Veja Como Fazer
  • Copie o código acima e abra com o Arduino IDE
  • Clique no botão Upload no Arduino IDE para carregar o código no Arduino
  • Pressione o botão uma vez.
  • Veja o estado da lingueta da fechadura durante 10 segundos.

※ Nota:

No código acima, usamos a função delay. Por isso, não precisamos fazer debounce do botão. No entanto, ainda fornecemos o código com debounce para o caso de você querer realizar mais tarefas sem usar a função delay. Veja Como usar millis() em vez de delay()

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!