- Descrição: O Sensor de Corrente (AC e DC) ACS712 possibilita realizar…
Como usar com Arduino – Sensor de Tensão AC 0 a 250V Voltímetro ZMPT101B
– Descrição:
O Sensor de Tensão AC 0 a 250V Voltímetro ZMPT101B é um módulo de alta precisão que tem como finalidade detectar a existência de tensão alternada em um circuito ou fazer a medição do valor de tensão.
Para aqueles que estão desenvolvendo algum projeto de automação residencial o Sensor de Tensão AC 0 a 250V Voltímetro ZMPT101B é de extrema importância, pois ele é capaz de informar se uma lâmpada está acesa ou apagada, se um motor está ligado ou desligado independente se o circuito está sendo controlado por uma aplicação / página web ou por interruptor / botão. Além disso, este sensor permite a implementação de um projeto que tenha como finalidade monitorar os valores de tensão na rede alternada, logo, você pode utilizá-lo como um voltímetro.
– Especificações e características:
– Transformador: ZMPT101B
– Tipo de sensor: detector de tensão / voltímetro
– Tensão de alimentação do módulo: 5 a 30VDC
– Tensão de entrada: 0 a 250VAC
– Corrente de entrada nominal: 2mA
– Corrente de saída nominal: 2mA
– Proporção: 1000:1000
– Faixa linear: 0-1000V
– Linearidade: 0,2%
– Isolamento tensão: 4000V
– Precisão de leitura: ±1%
– Temperatura de operação: -40º a 70º celsius
– Aplicações:
Projetos com Arduino ou outras plataformas microcontroladas em que seja necessário fazer a detecção de tensão AC ou medir o valor de tensão AC (voltímetro). Este sensor é comumente aplicado em projetos de automação residencial, onde é necessário monitorar o consumo de energia de uma casa, por exemplo. Para isto, o mesmo deve ser aliado a um Sensor de Corrente AC de forma que seja possível fazer o cálculo de potência.
– Proposta da prática:
Utilizar o Sensor de Tensão AC 0 a 250V Voltímetro ZMPT101B em conjunto com o Arduino e medir a tensão AC.
– Lista dos itens necessários:
01 – Arduino com Cabo USB
01 – Sensor de Tensão AC 0 a 250V Voltímetro ZMPT101B
03 – Cabos Jumper macho-fêmea
01 – Multímetro
01 – Tomada (Rede alternada de 127V ou 220V)
– Calibração da forma de onda do sensor:
Para que o Arduino possa ter o máximo de precisão nas medições de tensão AC, é necessário fazer a calibração da forma de onda na saída do sensor a partir de um osciloscópio. O sensor pode vir de fábrica com parte da forma de onda cortada no semiciclo positivo, tendendo a formar uma onda quadrada e isto vai comprometer a leitura feita pelo pino analógico do Arduino. Com o uso de um osciloscópio, é possível ver a forma da onda e através do trimpot que se encontra no sensor, fazer o ajuste da forma de onda para que a mesma fique o mais próximo possível de uma senoide.
No vídeo abaixo você pode ver a comparação entre a forma de onda do sensor sem estar calibrado e a forma de onda da rede AC em 60Hz. Note que, ao girar o trimpot a forma de onda do sensor foi se aproximando da forma de onda da rede AC e consequentemente obtendo o formato de uma senoide:
No vídeo é possível ver também que existe uma pequena defasagem entre as duas formas de onda, onde ambas começam e terminam em tempos distintos.
OBS: pode haver outros meios de fazer esta calibração da forma de onda do sensor, contudo, o uso do osciloscópio é o jeito mais simples. Se você não possui um osciloscópio, peça ajuda de alguém que tenha um e faça a calibração. Se você faz curso técnico de eletrônica ou faculdade voltada para elétrica, automação ou computação, peça a ajuda de algum professor e use o equipamento da instituição para fazer a calibração.
– Esquema de ligação da prática:
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.
– Tutorial de instalação e configuração do ambiente de programação do Arduino:
Arduino – Instalação e Configuração da IDE no Windows
– Biblioteca:
– Importando bibliotecas para o ambiente de programação do Arduino:
Arduino – Importando bibliotecas para a IDE
– Código:
1) No código há a variável de calibração VOLT_CAL. Esta variável tem como função fazer uma compensação no cálculo, pois os componentes utilizados na construção de cada sensor podem ter valores um pouco diferente do especificado (considerar a tolerância do componente).
2) No código, a variável VOLT_CAL está com o valor de 211.6, contudo, pode ser necessário que você altere ela para um valor menor ou maior. Isto vai depender do valor de tensão AC que será apresentado no monitor serial do ambiente de programação do Arduino.
3) Após efetuar o primeiro carregamento do código no Arduino e verificar os valores de tensão apresentados na medição, pegue um multímetro, insira na rede AC para medir a tensão e em seguida faça o ajuste do valor de VOLT_CAL até que consiga uma medição no monitor serial, próxima da medição mostrada pelo multímetro.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#include "EmonLib.h" //INCLUSÃO DE BIBLIOTECA #define VOLT_CAL 211.6 //VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO) EnergyMonitor emon1; //CRIA UMA INSTÂNCIA void setup(){ Serial.begin(9600); //INICIALIZA A SERIAL emon1.voltage(2, VOLT_CAL, 1.7); //PASSA PARA A FUNÇÃO OS PARÂMETROS (PINO ANALÓGIO / VALOR DE CALIBRAÇÃO / MUDANÇA DE FASE) } void loop(){ emon1.calcVI(17,2000); //FUNÇÃO DE CÁLCULO (17 SEMICICLOS, TEMPO LIMITE PARA FAZER A MEDIÇÃO) float supplyVoltage = emon1.Vrms; //VARIÁVEL RECEBE O VALOR DE TENSÃO RMS OBTIDO Serial.print("Tensão medida na rede AC: "); //IMPRIME O TEXTO NA SERIAL Serial.print(supplyVoltage, 0); //IMPRIME NA SERIAL O VALOR DE TENSÃO MEDIDO E REMOVE A PARTE DECIMAL Serial.println("V"); //IMPRIME O TEXTO NA SERIAL delay(1000); } |
– Resultado final:
Gostou desta prática? Então deixa seu comentário, dúvida ou sugestão aí embaixo!
Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop
Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.
Obrigado e até a próxima!
Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo.
Postagem anterior: Como usar com Arduino – Sensor Indutivo PNP de Proximidade Fotek PL-05P
Próxima postagem: Como usar com Arduino – LED RGB
esse cod ai não funciona no esp 32 né pq eu queria pra fazer um usando esp
aquele nodemcu 8266
Estou usando este sensor na saida de um inversor de senoidal pura, quando mede o OUT dele, sai tudo com ruido, impossivel de ler.
Percebo que até na rede eletrica ele sai com ruido,.
Tem algo que eu possa fazer para limpar este sinal
Boa noite!
Uma duvida na programação:
1- O que seria mudança de fase ? E por que o valor em 1.7?
2- Na parte “emon1.calcVI(20,2000)” o 20 semiciclos é obtido pela formula do F=1/T ? 1 ciclo = 16,67 ms… 1/2 ciclo = 8,335 ms.. 20 semiciclos = 166,7 ms ?
3- Na parte “emon1.calcVI(20,2000)” o 2000 que está comentado como o “tempo para fazer a medição” está relacionado com o que? Conta 2 ms e faz uma medição?
Poderia sanar essas duvidas?
Obrigado!!
Olá Matheus.
Agradeço pelo comentário!
Para entender o que é phase shift (mudança de fase), como é calculado e para compreender o porque dos valores padrões adotados pela emonlib (inclusive o intervalo de 2000ms / 2 segundos), recomendo que acesse o link abaixo e leia todos os passos apresentados:
https://learn.openenergymonitor.org/electricity-monitoring/ac-power-theory/introduction
Neste link a todas informações acerca da biblioteca.
Boa tarde Euler, analisando o artigo do link que você referenciou, o valor 20 semiciclos diz respeito à frequência elétrica de 50hz (20msx50Hz = 1 segundo) para nossa realidade (60hz) o correto seria utilizar 17 semiciclos pois a conta seria uma dízima periódica (16,666666667).
Ao utilizarmos um valor maior que 17 semiciclos estaríamos medindo parte do novo ciclo oq geraria uma leitura equivocada dos valores.
Olá Bruno.
Agradeço pelo comentário e observação!
Vlw!!!
ola, eu preciso usar 6 deles em um projeto, como eu identifico cada um no programa?
Olá José.
Agradeço pelo comentário!
Você deve criar novas instâncias de acordo com a quantidade que deseja utilizar (EnergyMonitor emon2; EnergyMonitor emon3;… e assim sucessivamente).
Em seguida basta replicar o restante do código, mudando o nome da instância (emon2, emon3… e assim sucessivamente).
Olá Euler, vc faz projetos personalizados? Não entendo em montar esses projetos. Preciso de um medidor de tensão AC, porém ele precisa ter algumas funções. Por favor me passe seu contato para te explicar melhor.
Olá Cassio.
Agradeço pelo comentário!
Não faço projetos sob encomenda.
Os projetos que desenvolvo são apenas para serem compartilhados aqui no Blog.
É normal que o meu sensor tenha muito barulho?
Olá Aldair.
Agradeço pelo comentário!
Que tipo de barulho seria? Está utilizando em rede AC de quantos volts?
Olá,
gostaria de saber como funciona este sensor, em relação a conexão a rede AC.
Ele deve estar ligado em paralelo ao circuito, ou em serie (como o ACS712)?
Pois tenho um situação que gostaria de utilizar um sensor para saber se um lampada está acesa, onde tenho dois interruptores que ligam uma lampada (chave hotel) e um destes interruptores foi substituído por um relé, para poder ligar pela automação ou manualmente pelo interruptor.
E agora gostaria de saber se a lampada está ligada (indiferente se foi ligada pela automação ou interruptor) e o lugar que tenho acesso é ao relá, no qual entra a FASE…
Por isto teria que ser algo que fosse ligado em serie e não em paralelo para conseguir determinar o estado da lampada…
Olá Douglas.
Agradeço pelo comentário!
Para fazer detecção de status da carga, a conexão é feita em paralelo. Mesmo ligado em paralelo o sensor funciona para fazer a detecção de status da carga, pois a conexão será feita no neutro e no retorno que chega na lâmpada.
Acredito que utilizar o sensor da postagem abaixo, irá ser mais adequado e mais barato, além da postagem mostrar na prática a detecção de status da lâmpada:
https://blogmasterwalkershop.com.br/arduino/arduino-utilizando-o-sensor-detector-de-tensao-ac/
boa noite, sobre esse teste , vc esta lendo a entrada e a saida do sensor com o scope, minha duvida é, voce esta medindo as duas saidas em AC? e o scope tem os gnds juntos internamente, não tem nenhum risco unir o neutro do 220v com o gnd do arduino?
desde ja grato
Olá Junior.
Utilizei o Soundcard Scope para o Windows, que é um software que funciona como um osciloscópio utilizando a entrada de microfone do computador.
Tanto a entrada quanto a saída é medida em AC. O neutro da entrada é conectado a uma das pontas de prova e na saída o GND é conectado a uma das pontas de prova. O neutro e o GND são comutados para conectar ao plug P2 estéreo e em meus testes não teve nenhum problema. Lembrando que tudo foi testado na protoboard e em seguida prossegui na montagem junto ao Arduino e ao computador.
Há vários vídeos no Youtube ensinando a montar o cabo para usar a entrada de microfone do PC junto ao Soundcard Scope. Nestes vídeos ensinam a montar um cabo de 2 canais voltado para ser usado em cargas DC. Para cargas AC é necessário fazer alguns cálculos para dimensionar os resistores corretos para um dos canais do cabo, de forma que a corrente AC que vai chegar a um dos canais da entrada de microfone seja extremamente baixa.
Só recomendo o uso do Soundcard Scope como osciloscópio com a finalidade de uso em cargas AC, caso o usuário tenha conhecimento de elétrica.
Perfeito amigo, obrigado pelas dicas
boa noite, o nosso amigo Euler tem razão o ajuste da forma de onda é muito importante, fiz o ajuste utilizando o osciloscópio e um reostato de 0 vc a 250 vac, o primeiro ajuste fiz em 127 vac quando elevei p 250 vac ocorreu deformação da forma de onda, refiz o ajuste e a forma de onda estabilizou, ainda não fiz o teste com o código fonte no Arduino, mas tudo indica q funciona, preciso dar uma verificada na biblioteca emolib qual a referencia que ela usa, pois em algumas aplicações em que usei a referencia interna sempre precisa de ajuste no valor da variável de referencia, pois o valor de vcc que alimenta o arduino influência nela, recomendo usar referencia externa oriunda de um tl431 que é muito estavel.
Euler . Boa tarde.
eu estou querendo medir uma tensão alternada quadrada de 15,00 V Ac.
Não estou obtendo sucesso. Minha pergunta seria se este sensor de tensão é compatível com que gostaria de fazer, ou teria algum especifico.
Agradeço a sua atenção
Estou testando o sensor de tensão ac 0-250V e quando ajusto a calibração para 127V e tranfiro para uma tomada de 220V as leituras não batem idem quando calibro para 220V e ao substituir a tomada por uma de 127 não batem com o multimetro.
Resumindo, não há uma linearidade em toda a faixa de 0-250V .
onde posso obter maiores informações para resolver?
Carlos Bruni
IFBA campus Salvado – Bahia
Olá Carlos.
Você fez a calibração da forma de onda do sensor conforme mencionei na postagem? Após calibrado através do trimpot, fez a calibração de VOLT_CAL no código?
Durante os testes com este sensor (os mesmos testes foram aplicados em cinco unidades), fiz a calibração da forma de onda e deixei o mais próximo da senoide (conforme pode ser visto no vídeo disponível nesta postagem). Utilizei 127VAC na entrada do sensor para fazer a calibração da forma de onda. Testei a medição do sensor em paralelo com a medição feita pelo multímetro e fui ajustando o valor de VOLT_CAL no código até deixar a medição do sensor igual a do multímetro.
Sem fazer nenhuma alteração na calibração (tanto da forma de onda quanto do valor de VOLT_CAL), apliquei 220VAC na entrada do sensor e a leitura que o mesmo fez foi igual a mostrada no multímetro.
O osciloscópio que vc usou é fisico ou por software/Arduino? Se foi a segunda opção, como se faz?
Olá Daniel.
Utilizei o Soundcard Scope para o Windows, que é um software que funciona como um osciloscópio utilizando a entrada de microfone do computador.
Há vários vídeos no Youtube ensinando a montar o cabo para usar a entrada de microfone do PC junto ao Soundcard Scope. Nestes vídeos ensinam a montar um cabo de 2 canais voltado para ser usado em cargas DC. Para cargas AC é necessário fazer alguns cálculos para dimensionar os resistores corretos para um dos canais do cabo, de forma que a corrente AC que vai chegar a um dos canais da entrada de microfone seja extremamente baixa.
Só recomendo o uso do Soundcard Scope como osciloscópio com a finalidade de uso em cargas AC, caso o usuário tenha conhecimento de elétrica.
Qual foi as cargas utilizadas no circuito do osciloscópio? Usou apenas diodo zenner com resistores na entrada?
Olá Leandro.
Já faz um tempo que implementei esta prática e não consigo lembrar qual o diodo e resistores que foram utilizados para confecção das pontas de prova. Depois que finalizei a prática eu desmontei o cabo, pois foi feito exclusivamente para esta prática.