Olá pessoal,
Continuando o projeto de monitoramento de tensão vamos ao código:
byte LEDNORMAL = 3; //pino do Led verde (ENERGIA NORMAL)
byte LEDFALTA = 4; //pino do Led vermelho (FALTA DE ENERGIA)
volatile unsigned long contador; //variável controlada através da interrupção na porta 2
void setup() {
pinMode(LEDNORMAL, OUTPUT);
digitalWrite (LEDNORMAL, LOW);
pinMode(LEDFALTA, OUTPUT);
digitalWrite(LEDFALTA, LOW);
pinMode(2,INPUT); //porta 2 que detecta se está em estado alto ou baixo
digitalWrite(2,LOW);
contador = 0;
attachInterrupt(0, detect, RISING); //a interrupção 0 utiliza a porta 2 para atender a interrupção e caso haja a interrupção chama a função detect na subida do estado (LOW para HIGH)
}
void loop() {
unsigned long contador_loop = contador;
unsigned long tempo = millis()+100;
while (tempo > millis());
if (contador > contador_loop) //se chamar a interrupção detect contador ficará maior que contador_loop
{
digitalWrite(LEDNORMAL, HIGH); //se tiver tensão no circuito acende Led Verde
digitalWrite(LEDFALTA, LOW); //se tiver tensão no circuito apaga Led vermelho
}
else
{
contador = 0;
digitalWrite(LEDFALTA, HIGH); //se não tiver tensão no circuito acende Led vermelho
digitalWrite(LEDNORMAL, LOW); //se não tiver tensão no circuito apaga Led verde }
}
void detect() {
contador++;
}
Créditos do código: Renato Aloi
Qualquer dúvida postem aqui ou no Facebook ok?
No próximo post vamos ver como utilizar o Agentuino + Zabbix também para apresentar graficamente o monitoramento de tensão.
Até mais pessoal!
Olá pessoal!
Vamos para a implementação do monitor de tensão e o primeiro passo é montar o circuito detector de tensão. A idéia é monitorar um circuito elétrico (tomada ou derivação) quanto à presença de tensão ou não e fazer com que o Arduino perceba estes estados através de uma de suas portas. Temos que colocar alguns parâmetros no projeto para que o circuito detector trabalhe de forma flexível e segura:
1) Tensão a ser monitorada: pode ser 110V ou 220V. No projeto optamos por trabalhar com ambas as tensões.
2) Proteção dos circuitos: como estamos monitorando um circuito elétrico é fundamental implementarmos algumas proteções aos circuitos diretamente ligados ao Arduino.
Detalhes construtivos:
1) Caixa para acomodação dos componentes: optamos por utilizar uma caixa 20x20 do sistema VID da Tigre.
2) Conector fêmea para cabo de energia: tínhamos sobrando esses cabos com conector fêmea para cabo de energia e decidimos utilizá-lo para poder conectar cabos de energia com o novo padrão e se for preciso também conectar cabos de energia com padrão antigo. Se a tomada a ser monitorada for do padrão novo utiliza-se um cabo de energia com plug no padrão novo! Se não utilize um cabo do padrão antigo.
3) Protoboard para conexão dos componentes.
4) Borne para ligação da entrada de energia no optoacoplador.
Detalhes do circuito:
1) Utilização de optoacoplador: como estamos trabalhando com tensões de 110V AC e 220V AC convém protegermos o Arduino caso haja algum problema nesses circuitos. O optoacoplador utilizado foi o 4N25.
2) Resistor de 220K: limitador de corrente na entrada do optoacoplador.
3) Resistor pull-down de 10K.
4) 2 LEDS (um para indicar presença de tensão (led verde) e outro para indicar falta de tensão (led vermelho).
Esquema de ligação:
Como funciona:
O circuito que se quer monitorar a tensão é conectado através dos pinos 1 e 2 do optoacoplador e utilizando-se de um resistor limitador de corrente. Nos pinos 4 e 5 são ligados ao 5V e GND do Arduino e utilizando-se de um resistor pull-down para sempre termos sinais em nível ALTO ou BAIXO, sem níveis intermediários. Se há tensão no circuito o LED do optoacoplador é iluminado (está conectado nos pinos 1 e 2 do optoacoplador) e do outro lado temos um fototransistor e quando exposto à luz a sua base é
excitada por esse facho de luz, fazendo com que os pinos 4 e 5 passem a conduzir. No pino 4 derivamos uma conexão à porta 2 do Arduino que ficará em estado alto se o circuito tiver tensão e em estado baixo se não estiver com tensão.
No Arduino optamos por trabalhar com interrupções na porta 2 para detectar essas mudanças de estado da porta e agir conforme essas mudanças ocorrem.
No próximo post vamos ao código! Não deixem de acompanhar!
Até mais!