Módulo Sensor de Tensão AC – ZMPT101B:

Neste tutorial utilizaremos o Módulo Sensor de Tensão AC com arduino. Este, no que lhe concerne, é muito utilizado para verificar a existência de energia alternada de até 250V em um determinado circuito onde esteja conectado. Vamos visualizar como este pequeno componente funciona e desenvolver uma aplicação para ele.

kit robotica educacional com Arduino ESP ou Microbit

O  que é o Módulo Sensor de Tensão AC?

Este componente como todos os outros sensores trabalha com os conceitos físicos. O Módulo Sensor de Tensão AC é um módulo eletrônico que apresenta resultados rápidos e precisos em projetos de automação residencial e robóticos, onde é necessário verificar a presença de tensão. Ele também pode ser utilizado para fazer a medição da tensão por uma função, voltímetro, permitindo ao usuário saber o valor exato que está passando nos fios em determinado momento. Em seu interior ele é capaz de medir o fluxo dos elétrons, comumente chamado de corrente, que passa por ele. Após isso, o sensor analisa a diferença de potencial, mais comumente chamada de tesão, vendo qual a quantidade de elétrons que está o atravessando, pois como sabemos quanto maior a diferença de potencial maior é o fluxo de elétrons

– Tensão de corrente alternada

Precipuamente, a tensão/corrente alternada, diferente da corrente/tensão contínua, não possui polaridade fixa. Em suma, este é o motivo de receberem estes nomes, exatamente porque o nível de corrente/tensão alterna entre o positivo e o negativo repetidamente e não possui um valor fixo. Como por exemplo na imagem abaixo, na corrente temos Inicialmente com nível zero e aumenta gradativamente até o máximo positivo e inicia seu retorno ao zero formando um semiciclo, observe que facilmente podemos considerar este semiciclo como sendo metade de uma circunferência e temos então 180°.

Imagem do comportamento da corrente/tensão alternada

Observando a imagem acima temos um círculo trigonométrico na esquerda que ao ser circulado por uma espera em seu entorno podemos representar graficamente essas variações em um gráfico a direita. Estas variações são o comportamento da corrente alternada indo do positivo ao negativo. Em um circuito, a corrente alternada realiza alternância do seu valor indo do positivo para negativo e logo depois do negativo para positivo.

– Os componentes deste sensor são:

O sensor possui Bornes a parafuso para a entrada de energia AC, Pinagem para alimentação do circuito com energia DC, Pinos para saída de sinal e Potenciômetro para calibração da forma de onda na saída. Também possui um Transformador ZMPT101B.

Módulo Sensor de Tensão AC

 

Mãos à obra — Configurando um Módulo Sensor de Tensão AC

Componentes Necessários

 

ATENÇÃO! Cuidado ao manusear o rabicho e o sensor de tensão, pois estamos tratando de corrente alternada.

 

– Montando o projeto:

Primeiramente, conecte o rabicho no sensor de tensão AC com o auxílio de uma chave de fenda (Caso não tenha acesse o vida de silício), tome cuidado ao conectá-lo, A fase da tomada deve ir à entrada L escrita embaixo do sensor e O neutro da tomada deve ir na entrada N também escrito embaixo do sensor. Logo depois, conecte o GND do sensor de tensão no GND do arduino e o VCC do sensor no 5V do arduino. Em seguida, conecte o OUT do sensor no A0 do arduino. Como mostra o Diagrama abaixo.

Diagrama do Módulo Sensor de Tensão AC

– Programando o Arduino:

Primeiro verifique se o sensor NÃO está conectado na tomada. Agora vamos conectar o arduino no computador e abrir a IDE arduino, escreva o programa abaixo na IDE e compile o programa para o seu arduino. Em contrapartida, antes de carregar o programa, você precisa selecionar qual porta você deseja usar para fazer o carregamento do seu programa no Arduino (upload). Dentro do Arduino IDE, clique no menu Ferramentas (tools) e abra o submenu Porta(Port). Clique na porta que seu Arduino está conectado, tal como COM3 ou COM4. Geralmente aparece o nome da placa Arduino: “COM3 (Arduino/Genuino Uno)”.

int corrente_inst[300];
int zero = 0;
int diferenca = 0;
int leitura = 0;
int pino_sensor = A2;

float corrente_pico;
float corrente_eficaz;
float tensao_rms;
float tensao_pico;
float frequencia_sinal;

double maior_valor = 0;
double corrente_valor = 0;

unsigned long tempo_zero_inicio;  
unsigned long tempo_zero_final;  
unsigned long semi_periodo;  
unsigned long periodo_completo;  

void setup(){
  Serial.begin(9600);
  pinMode(pino_sensor, INPUT);
}

void loop(){
  maior_valor = 0;
  for(int i = 0; i <300; i++){
    corrente_inst[i] =  analogRead(pino_sensor);
  }
  for(int i = 0; i <300; i++){
    if(maior_valor < corrente_inst[i]){
      maior_valor = corrente_inst[i];
    }
  }
  Serial.print("Maior Valor");
  Serial.println(maior_valor);
  delay(5000);

  tensao_pico = map(maior_valor,500,661,0,313);
  tensao_rms = tensao_pico/1.4;
  
  Serial.print("Tensão de Rede Elétrica: ");
  Serial.println  (tensao_rms);
}

 

ATENÇÃO: não esqueça de definir a placa e a porta que esta utilizando para carregar o programa.

 

-Testando o funcionamento:

Enfim conecte o rabicho na tomada conforme as especificações anteriormente ditam (Fase no L e Neutro no N). Como resultado podemos visualizar o sensor funcionando através do monitor serial já que nos inicializamos ele com a função Serial.begin(9600) basta clicar na lupa no canto direito superior da IDE arduino como na imagem abaixo:

Monitor serial

Veja abaixo o circuito do sensor pronto:

Circuito do Módulo Sensor de Tensão AC

 

Entendendo a fundo:
Software

– Definições e variáveis utilizadas no projeto do Módulo Sensor de Tensão AC com arduino

Esta instrução define quais as variáveis que iremos utilizar durante nosso programas os tipos de variáveis e os valores ou pinos atribuídos a elas. Assim sendo, temos como primeira variável do tipo int a variável “corrente_inst” sendo esta um vetor devido ao “[300]”. Em seguida temos como primeira variável do tipo float “corrente_pico” declarada sem atribuições a ela. Logo depois temos a declaração “maior_valor = 0” do tipo “double” a qual foi atribuído a ela o valor 0. Por fim, temos a declaração “tempo_zero_inicio” do tipo “unsigned long”. Todas está variaveis de tipos diferentes foram declaradas assim, pois elas ocupam espaços diferentes na memoria. Algumas ocupam menos como do tipo “int” e outras mais como do tipo “unsigned long”.

int corrente_inst[300];
int zero = 0;
int diferenca = 0;
int leitura = 0;
int pino_sensor = A2; //Define o pino A2 como pino do sensor

float corrente_pico;
float corrente_eficaz;
float tensao_rms;
float tensao_pico;
float frequencia_sinal;

double maior_valor = 0;
double corrente_valor = 0;

unsigned long tempo_zero_inicio;  
unsigned long tempo_zero_final;  
unsigned long semi_periodo;  
unsigned long periodo_completo;

– Função Setup – Definindo pinos do Módulo Sensor de Tensão AC com arduino

  A função setup é aquela que ira rodar apenas uma vez quando nosso programa for iniciado. Ela é do tipo void, ou seja, não tem retorno e também não tem parâmetros de entrada. Com a função Serial.begin(9600) inicializamos a comunicação serial e definimos uma velocidade para podermos visualizar o que está acontecendo no serial monitor. Já com a pinMode definimos que o pino do sensor, declarado anteriormente, é uma entrada.Ou seja, é ele que irá receber a informação do meio e atuar atravez de saidas.

void setup(){
  Serial.begin(9600);
  pinMode(pino_sensor, INPUT);
}

– Função Loop – Leitura do nosso sensor Módulo Sensor de Tensão AC com arduino e Estruturas de decisão

A função loop ao contrário da setup roda tudo que estiver dentro dela varias vezes em um loop constante até que seja reiniciado ou parado o programa. Antes de tudo temos a variável “maior_valor = 0” que já foi declarada anteriormente recebendo o valor 0. Depois, ao longo do código temos a estrutura de repetição for a qual foi inicializada com a variável “i” recebendo o valor 0. Logo depois, temos que a função irá se repetir e tudo o que está dentro dela irá ser executado até que “i” seja maior ou igual a 300. Enfim temos que será adicionado +1 a variável “i” toda vez que a execução da estrutura terminar. Já na primeira linha depois do for temos que o vetor “corrente_inst[i]” recebera a leitura analógica do pino do sensor a cada ciclo e armazenará em seus devidos endereços.

void loop(){
 maior_valor = 0;
 for(int i = 0; i <300; i++){
 corrente_inst[i] = analogRead(pino_sensor);
 }

Após a estrutura anterior, temos ela novamente e dentro dela uma estrutura if de decisão. Nesta ótica, temos que caso a condição entre os parenteses do if for verdadeira tudo o que está entre os colchetes será executado. Então, caso o valor da variável “maior_valor” for menor que o respectivo valor do vetor “corrente_inst[i]”, sendo esta variavel a que armazena os valores que o sensor detectou do meio, a variável “maior_valor” vai receber o valor do vetor “corrente_inst[i]” até que o valor que esteja na variavel “maior_valor” seja o maior valor que o sensor detectou.

for(int i = 0; i <300; i++){
 if(maior_valor < corrente_inst[i]){
 maior_valor = corrente_inst[i];
  }
 }

Em seguida, como resultado as duas funções for anteriores temos a função Serial.print que irá imprimir no monitor serial o texto “Maior Valor” e depois o maior valor que o sensor conseguiu detectar e que está variável armazena. Logo em seguida temos o delay que interrompe o programa por 5000 milissegundos.

Serial.print("Maior Valor");
Serial.println(maior_valor);
delay(5000);

A variável “tensao_pico” vai receber o valor da função “map(maior_valor,500,661,0,313)”. A função “map(maior_valor,500,661,0,313)” nos permite efetuar o mapeamento de um intervalo numérico em outro intervalo numérico desejado. Já a variável “tensao_rms” recebera o valor da razão entre a variável “tensao_pico” e o valor 1.4. Para finalizar o código irá imprimir no serial monitor o texto “Tensão de Rede Elétrica: ” e depois o valor da variavel “tensao_rms” que é a tensão que queremos saber.

  tensao_pico = map(maior_valor,500,661,0,313);
  tensao_rms = tensao_pico/1.4;
  
  Serial.print("Tensão de Rede Elétrica: ");
  Serial.println  (tensao_rms);

Considerações finais:

Neste tutorial mostramos como funciona e como utilizar o Módulo Sensor de Tensão AC – ZMPT101B. Veja também o tutorial “MEDINDO TENSÃO AC COM TRANSFORMADOR” onde falamos mais a respeito da tensão de corrente alternada. Esperamos que você continue nos acompanhando e sinta-se à vontade para nos dar sugestões, críticas ou elogios. Lembre-se de deixar suas dúvidas nos comentários abaixo.

Privacy Preference Center