Este tutorial faz parte de: Controlando um relé usando Arduino
Esta é uma coletânea de vídeos relacionados a revezamento. Os links para outros vídeos estão abaixo deste artigo.
Usando um botão do Arduino para acionar um relé e uma lâmpada em corrente alternada
Neste tutorial, vamos aprender a controlar uma lâmpada de corrente alternada (AC) ou uma lâmpada LED usando um botão de pressão e um relé. O botão de pressão alternará a luz entre ligado e desligado, mantendo seu estado mesmo após o botão ser solto. Esta configuração não é apenas prática, mas também uma ótima introdução ao trabalho com relés e cargas de corrente alternada.

À medida que progredimos, abordaremos os componentes necessários, as instruções de fiação e o código Arduino que torna este projeto possível. Não deixe de assistir ao vídeo associado para um guia visual e explicações detalhadas (no vídeo em 00:00).

Hardware explicado
Para este projeto, usaremos um módulo relé, uma placa Arduino e um botão de pressão. O módulo relé atua como um interruptor que pode controlar cargas de alta tensão em CA, como uma lâmpada, enquanto é controlado pelos sinais de baixa tensão do Arduino. O módulo relé possui três terminais principais para conectar a carga: Comum (COM), Normalmente Aberto (NO) e Normalmente Fechado (NC).
O botão de pressão serve como interface do usuário para alternar o estado do relé. Ele está conectado a um dos pinos digitais do Arduino. Quando o botão é pressionado, ele envia um sinal ao Arduino, que então ativa ou desativa o relé conforme necessário. Essa interação simples nos permite controlar a luz com facilidade.
Detalhes da ficha técnica do relé
| Fabricante | Songle |
|---|---|
| Número da peça | SRD-05VDC-SL-C |
| Tensão da bobina | 5 V CC |
| Tensão de comutação | CA 250 V / CC 30 V |
| Corrente de comutação | 10 A máx. |
| Resistência de contato | ≤ 100 mΩ |
| Resistência de isolamento | ≥ 1000 MΩ |
| Temperatura de operação | -40 a +70 °C |
| Pacote | Módulo de Relé Padrão |
- Certifique-se de que o relé seja classificado para a carga que você está comutando.
- Mantenha o módulo de relé alimentado com 5 VDC.
- Use isolamento apropriado para conexões de corrente alternada.
- Tenha cuidado ao trabalhar com corrente alternada (CA); certifique-se de que o circuito esteja desconectado antes de fazer alterações.
- Conecte o botão de pressão ao pino de entrada designado no Arduino.
- Utilize o modo INPUT_PULLUP no pino do botão para evitar a necessidade de resistores externos.
- Teste o funcionamento do relé com uma tensão mais baixa antes de conectar cargas em CA.
- Verifique as conexões para evitar curtos-circuitos.
Instruções de fiação

Para ligar o módulo de relé, comece conectando o pino VCC do relé ao pino 5V do Arduino, e o pino GND do relé ao pino GND do Arduino. O pino IN do relé deve ser conectado ao pino digital 10 do Arduino. Este pino enviará o sinal para ativar o relé.
Para o botão de pressão, conecte um terminal ao pino digital 2 do Arduino. O outro terminal deve ser conectado ao GND. Esta configuração usa o resistor pull-up interno do Arduino, portanto certifique-se de que o pino esteja definido como INPUT_PULLUP no código. Quando o botão for pressionado, ele levará o pino a LOW, enviando um sinal ao Arduino.
Para a carga AC, conecte um fio ao terminal COM do relé e o outro fio ao terminal NO. Essa configuração permitirá que a carga AC ligue quando o relé for acionado. Sempre certifique-se de que as conexões AC estejam seguras e isoladas.
Exemplos de Código e Guia Passo a Passo
O código a seguir inicializa os pinos necessários e configura o relé para permanecer desligado inicialmente. Ao pressionar o botão, o estado do relé é alternado e o estado da luz é atualizado de acordo.
int pbuttonPin = 2; // connect output to push button
int relayPin = 10; // Connected to relay (LED)
void setup() {
Serial.begin(9600);
pinMode(pbuttonPin, INPUT_PULLUP);
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, HIGH); // keep the load OFF at the beginning
}
No código, a variávelpbuttonPinestá atribuído ao pino 2, que é usado para o botão pulsador. OrelayPinestá configurado no pino 10, controlando o relé. OdigitalWriteA função é usada para garantir que o relé comece no estado OFF.
void loop() {
val = digitalRead(pbuttonPin); // read the push button value
if(val == HIGH && lightON == LOW) {
pushed = 1 - pushed; // toggle the push status
delay(100);
}
if(pushed == HIGH) {
digitalWrite(relayPin, LOW); // turn the relay ON
} else {
digitalWrite(relayPin, HIGH); // turn the relay OFF
}
}
Esta seção do código verifica continuamente o estado do botão de pressão. Quando o botão é pressionado, ele alterna opushedvariável. Dependendo do valor depushed, o relé é ligado ou desligado, controlando efetivamente a luz. Este laço é executado continuamente, garantindo que o estado da luz seja atualizado em tempo real.
Para obter detalhes completos do código, por favor consulte o código carregado abaixo do artigo.
Demonstração / O que esperar
Quando você pressiona o botão de pressão, o relé será ativado, ligando a lâmpada AC conectada. Pressionar o botão novamente desligará a lâmpada. O monitor serial exibirá mensagens de status, indicando se a luz está LIGADA ou DESLIGADA. Se você encontrar problemas, certifique-se de que a fiação está correta e verifique se não há entradas flutuantes que possam causar comportamento inesperado (no vídeo em 10:00).
Marcas de tempo do vídeo
- 00:00- Introdução
- 01:30- Visão geral do hardware
- 03:15- Instruções de fiação
- 05:45- Revisão guiada do código
- 08:00- Demonstração
Este tutorial é parte de: Controlando um relé usando Arduino
- Código Arduino e vídeo para um relé de 5V de dois canais
- Controlando um relé de 5V com Arduino para acionar uma carga AC ou DC, como lâmpada ou motor
- Sensor de Toque TTP224 de 4 Canais para Acionar Cargas AC/DC com Relé
- Usando um Módulo de Relé de 5V (Baixo-Gatilho) com Arduino
- Usando um MAX6675 (termopar tipo K) com relé e display
- Usando um interruptor de palheta para controlar um relé e cargas AC/DC com um Arduino
- Usando um módulo de toque TTP223B e um relé para controlar cargas CA/CC com um Arduino
/*
* This is the Arduino code for a push button to turn ON and OFF a relay and AC bulb.
It toggles the bulb ON and OFF.
* The output pin 10 is connected to the relay.
* Watch video instructions on YouTube: https://youtu.be/7CCSRs5bvH0
* Be careful working with AC; it is dangerous. Disconnect from AC power when working and wear protective gloves when touching AC components.
* Full explanation of this code and wiring diagram is available in
* my Arduino Course at Udemy.com here: http://robojax.com/L/?id=62
* Written by Ahmad Shamshiri on December 14, 2017 in Ajax, Ontario, Canada
* in Ajax, Ontario, Canada. www.robojax.com
*
* Get this code and other Arduino codes from Robojax.com.
Learn Arduino step by step in a structured course with all materials, wiring diagrams, and libraries
all in one place. Purchase my course on Udemy.com: http://robojax.com/L/?id=62
If you found this tutorial helpful, please support me so I can continue creating
content like this. You can support me on Patreon: http://robojax.com/L/?id=63
or make a donation using PayPal: http://robojax.com/L/?id=64
* * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.*
* This code has been downloaded from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
int pbuttonPin = 2;// connect output to push button
int relayPin = 10;// Connected to relay (LED)
int val = 0; // push value from pin 2
int lightON = 0;//light status
int pushed = 0;//push status
void setup() {
// Robojax.com code and video tutorial for push button ON and OFF
Serial.begin(9600);
pinMode(pbuttonPin, INPUT_PULLUP);
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, HIGH);// keep the load OFF at the begining. If you wanted to be ON, change the HIGH to LOW
}
void loop() {
// Robojax.com code and video tutorial for push button ON and OFF
val = digitalRead(pbuttonPin);// read the push button value
if(val == HIGH && lightON == LOW){
pushed = 1-pushed;
delay(100);
}
lightON = val;
if(pushed == HIGH){
Serial.println("Light ON");
digitalWrite(relayPin, LOW);
}else{
Serial.println("Light OFF");
digitalWrite(relayPin, HIGH);
}
// Robojax.com code and video tutorial for push button ON and OFF
delay(100);
}
Recursos e referências
Arquivos📁
Nenhum arquivo disponível.