O sensor ACS712 é uma ferramenta essencial para quem precisa monitorar correntes elétricas em projetos de eletrônica. Com a capacidade de medir correntes de até 30A (dependendo do modelo), ele converte essa leitura em um sinal analógico que pode ser facilmente interpretado por um microcontrolador, como o Arduino. Esse tipo de sensor é amplamente utilizado em aplicações que envolvem motores DC, fontes de alimentação e monitoramento de sistemas de energia, oferecendo uma maneira eficaz e econômica de obter informações precisas sobre o consumo de corrente em tempo real.
Neste tutorial, vamos mostrar como utilizar o sensor ACS712 para medir a corrente de um motor DC, além de enviar esses dados para o monitor serial e visualizá-los em um gráfico de tempo real no Serial Plotter do Arduino. Além disso, vamos aprimorar a precisão dos dados implementando uma técnica de suavização com média móvel, o que garantirá uma leitura mais estável e confiável, eliminando ruídos que podem ocorrer nas medições.
Ao final deste guia, você terá um sistema completo capaz de medir e visualizar a corrente elétrica em tempo real, pronto para ser aplicado em uma ampla variedade de projetos de monitoramento de corrente. Vamos mergulhar no passo a passo para que você possa colocar esse sensor para trabalhar de forma eficiente em seus projetos de eletrônica!
O ACS712 é um sensor de corrente baseado no efeito Hall, amplamente utilizado para medir correntes AC e DC de maneira precisa. Este sensor é conhecido por sua capacidade de isolar eletricamente o circuito de medição da linha de corrente, o que o torna uma escolha segura e eficiente para monitoramento em varias aplicações, como sistemas de automação, controle de motores, fontes de alimentação, e até mesmo em sistemas de energia elétrica.
INFORMAÇÕES TÉCNICAS:
MODELO DO SENSOR | FAIXA DE CORRENTE | SENSIBILIDADE (mV/A) |
ACS712-05A | -5A a +5A | 185 mV/A |
ACS712-20A | -20A a +20A | 100 mV/A |
ACS712-30A | -30A a +30A | 66 mV/A |
ESPECIFICAÇÕES: | VALOR: |
Tensão de Operação | 5V |
Tempo de Resposta | Menos de 5 µs |
Resistência Interna | ~1.2 mΩ |
Faixa de Temperatura | -40°C a +85°C |
Isolamento Elétrico | Até 2.1 kV RMS |
Saída de Tensão Sem Corrente | 2.5V |
Para identificar o modelo do sensor ACS712 é simples e pode ser feito diretamente no corpo do chip. A informação está gravada na superfície do componente, logo acima dos pinos de conexão. O código impresso segue o formato ACS712-05A, ACS712-20A ou ACS712-30A, indicando a faixa de corrente que o sensor é capaz de medir. Confira a imagem abaixo para localizar facilmente o código e determinar o modelo do seu sensor.
Na imagem acima podemos ver 2 modelos de sensor, o modelo ACS712-20A ou ACS712-30A.
Agora que temos uma boa base sobre o sensor ACS712, vamos criar uma aplicação para o mesmo, para isso vamos precisar dos seguintes materiais
Para monitorar a corrente de um motor DC utilizando o sensor ACS712 e o Arduino, a conexão é bem simples. Siga os passos abaixo:
// Configuração de pinos e constantes const int pinoSensor = A0; // Pino analógico conectado ao pino OUT do ACS712 float tensao = 0; // Variável para armazenar a leitura de tensão float corrente = 0; // Variável para armazenar a corrente calculada const float deslocamento = 2.5; // Ajuste o valor do offset conforme medido const float sensibilidade = 0.066; // Ajustar sensibilidade do ACS712 de acordo o o seu sensor - 30A (66mV por Ampere), 5A (185mV por Ampere) e 20A (100mV por Ampere) // Variáveis para média móvel const int numLeituras = 10; // Número de leituras para calcular a média float leituras[numLeituras]; // Array para armazenar as leituras int indiceLeitura = 0; // Índice atual de leitura float somaTotal = 0; // Soma total das leituras float media = 0; // Média das leituras void setup() { Serial.begin(9600); // Inicializa todas as leituras com zero for (int leituraAtual = 0; leituraAtual < numLeituras; leituraAtual++) { leituras[leituraAtual] = 0; } Serial.println("Iniciando monitoramento da corrente do motor DC:"); } void loop() { // Leitura do sensor (tensão) int valorSensor = analogRead(pinoSensor); // Leitura do pino analógico tensao = valorSensor * (5.0 / 1023.0); // Converte o valor lido para tensão (0-5V) // Cálculo da corrente (A = (Vout - Offset) / Sensibilidade) corrente = (tensao - deslocamento) / sensibilidade; // Corrige valores negativos if (corrente < 0) { corrente = 0; } // Média móvel das leituras somaTotal = somaTotal - leituras[indiceLeitura]; leituras[indiceLeitura] = corrente; somaTotal = somaTotal + leituras[indiceLeitura]; indiceLeitura = indiceLeitura + 1; if (indiceLeitura >= numLeituras) { indiceLeitura = 0; } media = somaTotal / numLeituras; // Exibe a corrente bruta e a corrente suavizada no Serial Plotter Serial.print(corrente); // Corrente bruta Serial.print("\t"); // Separador para exibir múltiplos dados no gráfico Serial.println(media); // Corrente suavizada // Intervalo de leitura delay(100); // Aumentar ou diminuir conforme desejado }
O próximo passo é rodar o código para monitorar a corrente elétrica em tempo real. Esse teste tem como objetivo verificar se o sensor está funcionando corretamente, medir o consumo de corrente do motor DC, e exibir esses valores no Monitor Serial e no Serial Plotter da IDE do Arduino.
O sensor ACS712, integrado ao Arduino, oferece uma maneira simples e eficaz de monitorar a corrente de motores DC em tempo real, tanto para correntes AC quanto DC. Com este tutorial, vimos como configurá-lo e utilizar técnicas como a média móvel para obter medições mais estáveis, exibindo os resultados no Monitor Serial e no Serial Plotter. Esse tipo de monitoramento é essencial para detectar variações de carga, proteger circuitos contra sobrecarga e otimizar o desempenho do motor. O ACS712 também se destaca pela segurança, isolando eletricamente o circuito de medição, tornando-se uma escolha segura para os seus projetos.
Descrição detalhada com mais informações sobre o sensor:
https://github.com/RobTillaart/ACS712
https://docs.arduino.cc/libraries/acs712
|
A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.
Tenha a Metodologia Eletrogate dentro da sua Escola! Conheça nosso Programa de Robótica nas Escolas!