Um relé é um interruptor eletromecânico que usa um eletroímã para abrir ou fechar circuitos elétricos automaticamente.
Ele permite acionar diferentes voltagens das suportadas pelo Arduino, como corrente alternada de 110V.
O relé pode ser utilizado para controlar dispositivos externos como lâmpadas, motores, etc.
Muito utilizado em automação para controle de dispositivos externos.
No Arduino ele é controlado por um único sinal, que indica se ele deve ou não ser acionado.
Em um relé, NA/NO (normalmente aberto) significa que o contato está aberto (desligado) quando a bobina não está energizada, e NF/NC (normalmente fechado) significa que o contato está fechado (ligado) nesse mesmo estado.
Já o pino COM (comum) é o terminal central que se conecta ao NA (normalmente aberto) ou NF (normalmente fechado), dependendo se a bobina está energizada ou não.
Os outros dois pinos restantes, DC- e DC+, são conectados ao Arduino para fornecer Ground(0V) e 5V para o relé, respectivamente.
Neste projeto você criará um circuito que faz o uso de um relé com o Arduino.
Para a criação deste circuito serão necessários os seguintes componentes:
Para montar o circuito, visualize na imagem a seguir como conectar os componentes entre a placa Arduino e a breadboard.
A seguir temos o schematics do circuito, que detalha suas conexões e fornece detalhes mais específicos do que o circuito da imagem anterior.
Uma vez criado o circuito, use o código fonte a seguir no Arduino IDE para fazer o upload dele na placa Arduino e assim ver o resultado do circuito em funcionamento.
/**
* Código do curso Magos do Arduino para utilizar um relê no Arduino.
*
* Utilize um relé com o Arduino para ligar e desligar uma lâmpada
* conectada a uma fonte externa.
*
* (c) Copyright KazaleIT
* @kazaleitoficial no YouTube
**/
#define PINO_RELE 8
#define PINO_BOTAO 2
void setup() {
// inicializam os pinos do relê e botão
pinMode(PINO_RELE, OUTPUT);
pinMode(PINO_BOTAO, INPUT_PULLUP);
}
int estadoBotao = -1;
void loop() {
// faz a leitura do botão
int valorBotao = digitalRead(PINO_BOTAO);
// caso botão pressionado, 0/LOW porque é pull-up
if (valorBotao == LOW) {
estadoBotao *= -1; // inverte o valor
}
// espera para debounce do botão
delay(300);
// ativa/desativa o relê
if (estadoBotao == -1) {
digitalWrite(PINO_RELE, LOW);
} else {
digitalWrite(PINO_RELE, HIGH);
}
}