Arduino Nano - Trava Solenoide

Este tutorial ensina como usar o Arduino Nano para controlar a trava solenoide, também chamada de trava elétrica (electric strike lock). Podemos aplicá-la para proteger armários, gavetas e portas.

Hardware Necessário

1×Official Arduino Nano
1×Alternatively, DIYables Nano V3.0 Development Board
1×Cabo USB A para Mini-B
1×Fechadura Solenoide
1×Relé
1×Fonte de Alimentação 12V
1×Conector de Alimentação DC
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para Arduino Nano
1×(Recomendado) Placa de Expansão Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentação para Arduino Nano

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

Sobre a Trava Solenoide

Pinagem da Trava Solenoide

A Trava Solenoide tem dois fios:

  • O fio Positivo (+) (vermelho) deve ser conectado aos 12V da fonte de alimentação DC
  • O fio Negativo (-) (preto) deve ser conectado ao GND da fonte de alimentação DC
solenoid lock pinout

Como Funciona

  • Quando a Trava Solenoide está alimentada, a lingueta da trava fica estendida e a porta fica trancada.
  • Quando a Trava Solenoide NÃO está alimentada, a lingueta da trava fica retraída e a porta fica destrancada.

※ Nota:

A trava solenoide normalmente requer uma fonte de alimentação de 12V, 24V ou 48V. Por isso, ela NÃO pode ser conectada diretamente a um pino do Arduino Nano. É preciso usar um relé para conectá-la ao pino do Arduino Nano.

Se ligarmos a trava solenoide a um relé (no modo normalmente aberto):

  • Quando o relé não está ativado, a porta fica destrancada
  • Quando o relé está ativado, a porta fica trancada

Conectar o Arduino Nano a um relé nos permite programá-lo para controlar a trava solenoide. Para saber mais sobre relés, consulte o Tutorial Arduino Nano - Relé.

Diagrama de Ligação

The wiring diagram between Arduino Nano and Solenoid Lock

This image is created using Fritzing. Click to enlarge image

Código Arduino Nano

O código abaixo faz a porta ser trancada e destrancada a cada cinco segundos.

/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-solenoid-lock */ #define RELAY_PIN 2 // The Arduino Nano pin connected to the IN pin of relay // The setup function runs once on reset or power-up void setup() { // initialize digital pin 3 as an output. pinMode(RELAY_PIN, OUTPUT); } // The loop function repeats indefinitely void loop() { digitalWrite(RELAY_PIN, LOW); // unlock the door delay(5000); digitalWrite(RELAY_PIN, HIGH); // lock the door delay(5000); }

Passos Rápidos

  • Copie o código e abra-o com a Arduino IDE.
  • Clique no botão Upload da Arduino IDE para compilar e fazer o upload do código para o Arduino Nano.
  • Observe a condição da lingueta da trava.

Arduino Nano - Botão Controla a Trava Solenoide

  • Diagrama de Ligação
The wiring diagram between Arduino Nano and Solenoid Lock

This image is created using Fritzing. Click to enlarge image

Veja A melhor forma de alimentar o Arduino Nano e outros componentes.

  • Escrevendo o código para uma placa Arduino Nano.
/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-solenoid-lock */ #include <ezButton.h> #define BUTTON_PIN 8 // The Arduino Nano pin connected to button's pin #define RELAY_PIN 2 // The Arduino Nano pin connected to relay's pin ezButton button(BUTTON_PIN); // create ezButton object for pin 12; void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(RELAY_PIN, OUTPUT); // set arduino pin to output mode button.setDebounceTime(50); // set debounce time to 50 milliseconds digitalWrite(RELAY_PIN, HIGH); // 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, LOW); // unlock the door in 10 seconds delay(10000); // 10 seconds digitalWrite(RELAY_PIN, HIGH); // lock the door again } }

Passos Rápidos

  • Instale a biblioteca ezButton. Consulte Como Fazer para ver as instruções.
  • Copie o código e abra-o com a Arduino IDE.
  • Clique no botão Upload da Arduino IDE para fazer o upload do código para o Arduino Nano.
  • Pressione o botão uma vez.
  • Observe o estado da lingueta da trava durante 10 segundos.

※ Nota:

No código acima, utilizamos a função delay. Assim, não é necessário fazer debounce do botão. Mesmo assim, incluímos também o código com debounce, caso você queira executar outras tarefas sem usar a função delay. Para mais informações, consulte 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!