/*
Sensor de Tensão AC
Arduino – Utilizando o Sensor de Tensão AC
Euler Oliveira ARDUINO
Arduino – Utilizando o Sensor de Tensão AC
Nesta prática você vai aprender a utilizar o Sensor de Tensão AC 127V / 220V com o Arduino para detectar se uma carga em rede alternada está ligada ou desligada.
img00_arduino_utilizando_o_sensor_detector_de_tensao_ac_127v_220v_automacao_residencial_three_way_paralelo_nodemcu_esp8266
O uso do Arduino cresce mais a cada dia e em diversos tipos de áreas. Uma das áreas de maior aplicabilidade é na automação residencial. A partir da implementação de um projeto de automação residencial utilizando o Arduino, é possível controlar e obter informações de praticamente tudo que está na residência.
Das tarefas diárias de uma residência, a primeira a ser inserida no projeto de automação residencial com Arduino, por exemplo, é a iluminação. O controle da iluminação através de uma página web, smartphone ou tablet é algo essencial no projeto, contudo, você deve se fazer a seguinte pergunta antes de começar:
“Se meu sistema de automação residencial ficar off-line, como eu vou controlar as lâmpadas?”
A resposta para esta pergunta é simples: através do interruptor. Para controle virtual da lâmpada basta utilizar o módulo relé junto ao Arduino. Porém, para fazer o controle da lâmpada externamente ao sistema, será necessário o uso de um interruptor em paralelo com o módulo relé. Neste caso, será necessário substituir o interruptor convencional (liga / desliga) por um Interruptor Three Way, que também é conhecido como interruptor paralelo. Esta implementação nos leva a outro questionamento:
“O relé está conectado diretamente ao Arduino e consigo facilmente identificar se a lâmpada está acesa ou apagada. Contudo, ao inserir o interruptor three way para fazer o acionamento da lâmpada manualmente e conectá-lo ao módulo relé, não consigo mais identificar o estado atual dela, pois estou controlando de dois pontos distintos e um deles é externo ao Arduino. Como resolver esta questão?”
A resposta para esta outra pergunta é: Sensor de Tensão AC 127V / 220V. Ao utilizar o sensor de tensão ac, será possível capturar o estado atual da lâmpada independente se ela está sendo controlada virtualmente (página web / smartphone / tablet) ou pelo interruptor paralelo e informar ao Arduino.
O Sensor de Tensão AC fabricado pela MasterWalker Shop aceita uma faixa de tensão de 0 a 220VAC e o mesmo suporta uma tensão de pico igual a 311VAC.
Neste tutorial o sensor será utilizado para identificar o estado atual de uma lâmpada que será controlada através do monitor serial da IDE do Arduino e pelo interruptor three way. Você pode utilizá-lo para identificar o estado atual de outros tipos de cargas em rede alternada que operam dentro das limitações do mesmo.
A seguir, vamos ligar o Sensor de Tensão AC ao Arduino para ver na prática a sua funcionalidade.
Abaixo está a lista dos itens necessários para esta prática:
– Arduino
– Módulo Relé 5V de 1 Canal
– Chave Gangorra KCD1-102 Preta 3T (Three Way)
– Sensor (Detector) de Tensão AC 127V / 220V
– Cabo Jumper Macho-macho
– Cabo Jumper Macho-fêmea
– Protoboard
– Cabos com Garra Jacaré (Opcional)
– Lâmpada
– Receptáculo (boquilha)
– Cabo paralelo de 1,5mm ou 2,5mm
– Tomada (Rede alternada de 127V)
Utilizei a Chave Gangorra 3T nesta prática, contudo você pode utilizar qualquer interruptor three way.
Abaixo está o esquema de ligação que você deve montar:
ATENÇÃO: MUITO CUIDADO AO EXECUTAR PRÁTICAS QUE ENVOLVAM TENSÃO / CORRENTE ALTERNADA! FAÇA TODAS AS LIGAÇÕES COM O CIRCUITO COMPLETAMENTE DESLIGADO E ANTES DE FAZER OS TESTES VERIFIQUE CADA UMA DAS LIGAÇÕES PARA ELIMINAR A POSSIBILIDADE DE CURTO ENTRE FASE / NEUTRO OU FASE / FASE.
img01_arduino_utilizando_o_sensor_detector_de_tensao_ac_127v_220v_automacao_residencial_three_way_paralelo_nodemcu_esp8266
(Clique na imagem para ampliar)
Note que o Sensor de Tensão AC é ligado em paralelo com o circuito, logo, a corrente do circuito é irrelevante para o sensor. Além disso, o sensor foi instalado junto ao retorno da lâmpada, pois ali só vai existir presença de tensão quando o circuito estiver fechado através do módulo relé ou pelo interruptor paralelo.
Feito o esquema de ligação, basta carregar o código no Arduino. Se ainda não tem a IDE do Arduino instalada e configurada, basta acessar o link abaixo e em seguida retorne para continuar:
Arduino – Instalação e Configuração da IDE no Windows
O código para testes está abaixo e todo comentado. Basta copiar o mesmo, colar na IDE, salvar e carregar:
Arduino
*/
const int pinoRele = 8; //PINO DIGITAL UTILIZADO PELO MÓDULO RELÉ
const int sensorTensao = A2; //PINO ANALÓGICO UTILIZADO PELO SENSOR DE TENSÃO AC
int status = 0; //VARIÁVEL QUE CONTROLA O STATUS DO MÓDULO RELÉ (LIGADO / DESLIGADO)
String statusLamp = "DESLIGADA"; //VARIÁVEL PARA CONTROLE DE STATUS MOSTRADO NO MONITOR SERIAL
void setup() {
pinMode(pinoRele, OUTPUT); //DEFINE A PORTA COMO SAÍDA
pinMode(sensorTensao, INPUT); //DEFINE A PORTA COMO ENTRADA
digitalWrite(pinoRele, LOW); //MÓDULO RELÉ INICIA DESLIGADO
Serial.begin(9600); //INICIALIZA A SERIAL
}
void loop() {
verificaStatusLamp(); //CHAMA A FUNÇÃO RESPONSÁVEL POR VERIFICAR SE A LÂMPADA ESTÁ ACESA OU APAGADA
char c = Serial.read(); //VARIÁVEL RESPONSÁVEL POR RECEBER O CARACTERE DIGITADO NA JANELA SERIAL
if (c == 'a') { //SE CARACTER DIGITADO FOR IGUAL A "a", FAZ
if (status == 0) { //SE VARIÁVEL FOR IGUAL A 0, FAZ
digitalWrite(pinoRele, HIGH); //RELÉ ACIONADO (LIGADO)
status = 1; //VARIÁVEL RECEBE O VALOR 1
} else { //SENÃO, FAZ
digitalWrite(pinoRele, LOW); //RELÉ ACIONADO (DESLIGADO)
status = 0; //VARIÁVEL RECEBE O VALOR 0
}
}
Serial.print("LAMPADA: "); //IMPRIME O TEXTO NO MONITOR SERIAL
Serial.println(statusLamp); //IMPRIME NO MONITOR SERIAL O ESTADO ATUAL DA LÂMPADA
}
//FUNÇÃO RESPONSÁVEL POR VERIFICAR SE A LÂMPADA ESTÁ ACESA OU APAGADA
void verificaStatusLamp() {
for (int i = 0; i < 100; i++) { //PARA "i" IGUAL A 0, ENQUANTO "i" MENOR QUE 100, INCREMENTA "i"
if (analogRead(sensorTensao) > 70) { //SE LEITURA FOR MAIOR QUE 70, FAZ
statusLamp = "LIGADA"; //VARIÁVEL RECEBE O TEXTO
} else { //SENÃO
statusLamp = "DESLIGADA"; //VARIÁVEL RECEBE O TEXTO
}
}
}