- Materiais requisitados
- Diagrama de circuito
- Unidade de medida
- Unidade de computação e exibição
- Programando o Arduino
- Como medir com mais precisão?
- Trabalho e Teste
Como engenheiros eletrônicos, sempre dependemos de medidores / instrumentos para medir e analisar o funcionamento de um circuito. Começando com um simples multímetro até um complexo analisador de qualidade de energia ou DSOs, tudo tem seus próprios aplicativos exclusivos. A maioria desses medidores estão prontamente disponíveis e podem ser adquiridos com base nos parâmetros a serem medidos e sua precisão. Mas às vezes podemos acabar em uma situação em que precisamos construir nossos próprios medidores. Digamos, por exemplo, que você esteja trabalhando em um projeto de energia solar fotovoltaica e gostaria de calcular o consumo de energia de sua carga, em tais cenários, podemos construir nosso próprio wattímetro usando uma plataforma de microcontrolador simples como o Arduino.
Construir seus próprios medidores não apenas reduz o custo dos testes, mas também nos dá espaço para facilitar o processo de teste. Da mesma forma, um wattímetro construído com o Arduino pode ser facilmente ajustado para monitorar os resultados no monitor Serial e traçar um gráfico no plotter Serial ou adicionar um cartão SD para registrar automaticamente os valores de tensão, corrente e potência em intervalos predefinidos. Parece interessante, certo !? Então vamos começar…
Materiais requisitados
- Arduino Nano
- LM358 Op-Amp
- 7805 regulador de tensão
- Visor LCD 16 * 2
- Resistor shunt de 0,22 ohm 2Watt
- Pote 10k Trimmer
- Resistores de 10k, 20k, 2,2k, 1k
- Capacitores 0,1uF
- Carga de Teste
- Perf board ou breadboard
- Kit de solda (opcional)
Diagrama de circuito
O diagrama de circuito completo do projeto do wattímetro arduino é fornecido abaixo.
Para facilitar a compreensão, o circuito do wattímetro Arduino é dividido em duas unidades. A parte superior do circuito é a unidade de medição e a parte inferior do circuito é a unidade de computação e exibição. Para quem é novo neste tipo de circuitos segue os rótulos. Exemplo + 5V é etiqueta, o que significa que todos os pinos aos quais a etiqueta está conectada devem ser considerados como conectados juntos. As etiquetas são normalmente usadas para fazer o diagrama do circuito parecer organizado.
O circuito é projetado para caber em sistemas operando entre 0-24 V com uma faixa de corrente de 0-1 A, tendo em mente a especificação de um Solar PV. Mas você pode facilmente estender o alcance depois de entender o funcionamento do circuito. O princípio básico por trás do circuito é medir a tensão através da carga e a corrente através dela para calcular o consumo de energia por ela. Todos os valores medidos serão exibidos em um LCD alfanumérico 16 * 2.
Mais abaixo, vamos dividir o circuito em pequenos segmentos para que possamos ter uma imagem clara de como o circuito deve funcionar.
Unidade de medida
A unidade de medição consiste em um divisor de potencial para nos ajudar a medir a tensão e um resistor fechado com um Op-amp não inversor é usado para nos ajudar a medir a corrente através do circuito. A parte do divisor de potencial do circuito acima é mostrada abaixo
Aqui, a tensão de entrada é representada por Vcc, como dito anteriormente, estamos projetando o circuito para uma faixa de tensão de 0 V a 24 V. Mas um microcontrolador como o Arduino não pode medir valores tão altos de voltagem; ele só pode medir a tensão de 0-5V. Portanto, temos que mapear (converter) a faixa de tensão de 0-24V a 0-5V. Isso pode ser feito facilmente usando um circuito divisor de potencial conforme mostrado abaixo. O resistor 10k e 2.2k juntos formam o circuito divisor de potencial. A tensão de saída de um divisor de potencial pode ser calculada usando as fórmulas abaixo. O mesmo pode ser usado para decidir o valor de seus resistores, você pode usar nossa calculadora online para calcular o valor do resistor se você estiver redesenhando o circuito.
Vout = (Vin × R2) / (R1 + R2)
O 0-5 V mapeado pode ser obtido na parte do meio, que é rotulada como Tensão. Essa tensão mapeada pode então ser alimentada para o pino Arduino Analog posteriormente.
Em seguida, temos que medir a corrente através do LOAD. Como sabemos, os microcontroladores podem ler apenas a tensão analógica, então precisamos de alguma forma converter o valor da corrente em tensão. Isso pode ser feito simplesmente adicionando um resistor (resistor shunt) no caminho que, de acordo com a lei de Ohm, cairá um valor de voltagem que é proporcional à corrente que flui através dele. O valor desta queda de tensão será muito menor, então usamos um amplificador operacional para amplificá-lo. O circuito para o mesmo é mostrado abaixo
Aqui, o valor do resistor shunt (SR1) é 0,22 Ohms. Como dito anteriormente, estamos projetando o circuito para 0-1A, portanto, com base na lei de Ohms, podemos calcular a queda de tensão neste resistor, que será em torno de 0,2V quando um máximo de 1A de corrente estiver passando pela carga. Esta tensão é muito pequena para um microcontrolador ler, usamos um Op-Amp no modo de amplificador não inversor para aumentar a tensão de 0,2 V para um nível mais alto para o Arduino ler.
O Op-Amp no modo Non-Inverting é mostrado acima. O amplificador é projetado para ter um ganho de 21, de modo que 0,2 * 21 = 4,2V. As fórmulas para calcular o ganho do Op-amp são fornecidas abaixo. Você também pode usar esta calculadora de ganho online para obter o valor do seu resistor se estiver redesenhando o circuito.
Ganho = Vout / Vin = 1 + (Rf / Rin)
Aqui, em nosso caso, o valor de Rf é 20k e o valor de Rin é 1k, o que nos dá um valor gian de 21. A tensão amplificada do Op-amp é então fornecida a um filtro RC com resistor 1k e um capacitor 0,1uF para filtrar qualquer ruído acoplado. Finalmente, a tensão é então fornecida ao pino analógico do Arduino.
A última parte que resta na unidade de medição é a parte do regulador de tensão. Como forneceremos uma tensão de entrada variável, precisamos de + 5V volt regulado para que o Arduino e o Op-amp funcionem. Esta tensão regulada será fornecida pelo regulador de tensão 7805. Um capacitor é adicionado na saída para filtrar o ruído.
Unidade de computação e exibição
Na unidade de medição, projetamos o circuito para converter os parâmetros de tensão e corrente em 0-5 V que podem ser alimentados para os pinos analógicos do Arduino. Agora, nesta parte do circuito, conectaremos esses sinais de tensão ao Arduino e também faremos a interface de um display alfanumérico 16 × 2 com o Arduino para que possamos visualizar os resultados. O circuito para o mesmo é mostrado abaixo
Como você pode ver, o pino de tensão está conectado ao pino analógico A3 e o pino de corrente está conectado ao pino analógico A4. O LCD é alimentado por + 5V do 7805 e é conectado aos pinos digitais do Arduino para funcionar no modo 4 bits. Também usamos um potenciômetro (10k) conectado ao pino Con para variar o contraste do LCD.
Programando o Arduino
Agora que temos um bom conhecimento do hardware, vamos abrir o Arduino e começar a programar. O objetivo do código é ler a tensão analógica nos pinos A3 e A4 e calcular os valores de Tensão, Corrente e Potência e finalmente exibi-la na tela LCD. O programa completo para fazer o mesmo é fornecido no final da página e pode ser usado como tal para o hardware discutido acima. Além disso, o código é dividido em pequenos fragmentos e explicado.
Como todos os programas com os quais começamos, definimos os pinos que usamos. Em nosso projeto, os pinos A3 e A4 são usados para medir a tensão e a corrente, respectivamente, e os pinos digitais 3,4,8,9,10 e 11 são usados para fazer a interface do LCD com o Arduino
int Read_Voltage = A3; int Read_Current = A4; const int rs = 3, en = 4, d4 = 8, d5 = 9, d6 = 10, d7 = 11; // Mencione o número do pino para conexão de LCD LiquidCrystal lcd (rs, en, d4, d5, d6, d7);
Também incluímos um arquivo de cabeçalho denominado cristal líquido para fazer a interface do LCD com o Arduino. Em seguida, dentro da função de configuração, inicializamos o display LCD e exibimos um texto de introdução como “Wattímetro Arduino” e esperamos dois segundos antes de apagá-lo. O código para o mesmo é mostrado abaixo.
configuração vazia () { lcd.begin (16, 2); // Inicializar 16 * 2 LCD lcd.print ("Arduino Wattmeter"); // Linha 1 da mensagem de introdução lcd.setCursor (0, 1); lcd.print ("- Circuitdigest"); // Mensagem de introdução linha 2 delay (2000); lcd.clear (); }
Dentro da função de loop principal, usamos a função de leitura analógica para ler o valor da tensão do pino A3 e A4. Como sabemos, o valor de saída do Arduino ADC de 0-1203, uma vez que tem um ADC de 10 bits. Este valor deve ser convertido para 0-5 V, o que pode ser feito multiplicando por (5/1023). Então, novamente, anteriormente no hardware, mapeamos o valor real da tensão de 0-24 V a 0-5 V e o valor real da forma de corrente 0-1 A a 0-5 V. Portanto, agora temos que usar um multiplicador para reverter esses valores para o valor real. Isso pode ser feito multiplicando-o por um valor multiplicador. O valor do multiplicador pode ser calculado teoricamente usando as fórmulas fornecidas na seção de hardware ou se você tiver um conjunto conhecido de valores de tensão e corrente, pode calculá-lo de forma prática.Segui a última opção porque tende a ser mais precisa em tempo real. Portanto, aqui o valor dos multiplicadores é 6,46 e 0,239. Portanto, o código se parece com abaixo
float Voltage_Value = analogRead (Read_Voltage); float Current_Value = analogRead (Read_Current); Voltage_Value = Voltage_Value * (5,0 / 1023,0) * 6,46; Current_Value = Current_Value * (5,0 / 1023,0) * 0,239;
Como medir com mais precisão?
A forma acima de calcular o valor da tensão real e da corrente funcionará perfeitamente. Mas tem uma desvantagem: a relação entre a tensão ADC medida e a tensão real não será linear, portanto, um único multiplicador não dará resultados muito precisos, o mesmo aplicado para a corrente também.
Portanto, para melhorar a precisão, podemos traçar um conjunto de valores de ADC medidos com valores reais usando um conjunto conhecido de valores e, em seguida, usar esses dados para traçar um gráfico e derivar a equação do multiplicador usando o método de regressão linear. Você pode consultar o medidor de dB do Arduino no qual usei um método semelhante.
Finalmente, uma vez que tenhamos calculado o valor da tensão real e da corrente real através da carga, podemos calcular a potência usando as fórmulas (P = V * I). Em seguida, exibimos todos os três valores no display LCD usando o código abaixo.
lcd.setCursor (0, 0); lcd.print ("V ="); lcd.print (Voltage_Value); lcd.print (""); lcd.print ("I ="); lcd.print (Current_Value); float Power_Value = Voltage_Value * Current_Value; lcd.setCursor (0, 1); lcd.print ("Potência ="); lcd.print (Power_Value);
Trabalho e Teste
Por causa do tutorial, usei uma placa perf para soldar todos os componentes conforme mostrado no circuito. Usei um terminal de parafuso Phoenix para conectar a carga e o conector de barril CC normal para conectar minha fonte de alimentação. A placa Arduino Nano e o LCD são montados em um Bergstik feminino para que possam ser reutilizados se necessário posteriormente.
Depois de preparar o hardware, faça upload do código do Arduino para a placa Nano. Ajuste o potenciômetro do aparador para controlar o nível de contraste do LCD até ver um texto de introdução nítido. Para testar a placa, conecte a carga ao conector do terminal de parafuso e a fonte ao conector Barrel. A tensão da fonte deve ser superior a 6 V para que este projeto funcione, já que o Arduino precisava de + 5 V para operar. SE tudo estiver funcionando bem, você deverá ver o valor da tensão na carga e a corrente nela exibida na primeira linha do LCD e a potência calculada exibida na segunda linha do LCD, conforme mostrado abaixo.
A parte divertida de construir algo está em testá-lo para verificar até que ponto vai funcionar corretamente. Para fazer isso, usei bubs indicadores automotivos de 12V como carga e o RPS como fonte. Visto que o próprio RPS pode medir e exibir o valor da corrente e da tensão, será fácil verificarmos a precisão e o desempenho do nosso circuito. E sim, eu também usei meu RPS para calibrar o valor do meu multiplicador para que eu chegue perto do valor preciso.
O trabalho completo pode ser encontrado no vídeo fornecido no final desta página. Espero que você tenha entendido o circuito e o programa e aprendido algo útil. Se você tiver qualquer problema em fazer isso funcionar, poste-o na seção de comentários abaixo ou escreva em nossos fóruns para obter mais ajuda técnica.
Este projeto Wattímetro baseado em Arduino tem muito mais atualizações que podem ser adicionadas para aumentar o desempenho do registro automático de dados, plotagem de gráfico, notificação de sobretensão ou situações de sobrecarga de corrente, etc. Portanto, fique curioso e me diga para que você usaria isso.