Projetos de circuito eletrônicoProjetos de engenharia do ArduinoFaça este amperímetro digital avançado usando Arduino

Faça este amperímetro digital avançado usando Arduino

Relacionados

Neste post vamos construir um amperímetro digital usando display LCD 16 x 2 e Arduino. Vamos entender a metodologia de medição de corrente usando um resistor shunt e implementar um projeto baseado em Arduino. O amperímetro digital proposto pode medir correntes que variam de 0 a 2 Amperes (máximo absoluto) com razoável precisão.

Como funcionam os amperímetros

Existem dois tipos de amperímetros: analógicos e digitais, seus funcionamentos são bem diferentes um do outro. Mas ambos têm um conceito em comum: um resistor de derivação.

Um resistor shunt é um resistor com resistência muito pequena colocada entre a fonte e a carga enquanto mede a corrente.

Vamos ver como funciona um amperímetro analógico e então será mais fácil entender o digital.

COMO FUNCIONA UM AMPERÍMETRO ANALÓGICO

Um resistor de derivação com resistência muito baixa R e assume que algum tipo de medidor analógico está conectado ao resistor cuja deflexão é diretamente proporcional à tensão através do medidor analógico.

Agora vamos passar alguma quantidade de corrente do lado esquerdo. i1 é a corrente antes de entrar no resistor shunt R e i2 será a corrente após passar pelo resistor shunt.

A corrente i1 será maior que i2, pois caiu uma fração da corrente através do resistor shunt. A diferença de corrente entre o resistor shunt desenvolve uma quantidade muito pequena de tensão em V1 e V2.
A quantidade de tensão será medida por esse medidor analógico.

A tensão desenvolvida através do resistor shunt depende de dois fatores: a corrente que flui através do resistor shunt e o valor do resistor shunt.

Se o fluxo de corrente é maior através do shunt, a tensão desenvolvida é maior. Se o valor do shunt for alto, a tensão desenvolvida através do shunt é maior.

O resistor de derivação deve ter um valor muito pequeno e deve possuir uma classificação de potência mais alta.

Um resistor de pequeno valor garante que a carga esteja recebendo a quantidade adequada de corrente e tensão para operação normal.

Além disso, o resistor shunt deve ter uma classificação de potência mais alta para que possa tolerar a temperatura mais alta enquanto mede a corrente. Quanto maior a corrente através do shunt, mais calor é gerado.

Até agora você já deve ter tido a idéia básica de como funciona um medidor analógico. Agora vamos passar para o design digital.

Até agora sabemos que um resistor produzirá uma tensão se houver um fluxo de corrente. Do diagrama V1 e V2 são os pontos, onde levamos as amostras de tensão para o microcontrolador.

Calculando a conversão de tensão para corrente

Agora vamos ver a matemática simples, como podemos converter a tensão produzida em corrente.

A lei de ohm: I = V/R

Conhecemos o valor do resistor shunt R e ele será inserido no programa.

A tensão produzida através do resistor shunt é:

V = V1 – V2

Ou

V = V2 – V1 (para evitar o símbolo negativo durante a medição e também o símbolo negativo dependem da direção do fluxo de corrente)

Então podemos simplificar a equação,

I = (V1 – V2)/R
Ou
I = (V2 – V1)/R

Uma das equações acima será inserida no código e poderemos encontrar o fluxo atual e será exibido no LCD.

Agora vamos ver como escolher o valor do resistor shunt.

O Arduino possui um conversor analógico para digital (ADC) de 10 bits. Ele pode detectar de 0 a 5V em passos de 0 a 1024 ou níveis de tensão.

Portanto, a resolução deste ADC será 5/1024 = 0,00488 volt ou 4,88 milivolts por etapa.

Portanto, 4,88 milivolts/2 mA (resolução mínima do amperímetro) = resistor de 2,44 ou 2,5 ohm.

Podemos usar quatro resistores de 10 ohms e 2 Watts em paralelo para obter 2,5 ohms que foi testado no protótipo.

Então, como podemos dizer o alcance mensurável máximo do amperímetro proposto que é de 2 Amperes.

O ADC pode medir apenas de 0 a 5 V, ou seja. Qualquer coisa acima danificará o ADC no microcontrolador.

Do protótipo testado observamos que, nas duas entradas analógicas do ponto V1 e V2; quando o valor medido de corrente X mA, a tensão analógica lê X/2 (no monitor serial).

Digamos, por exemplo, se o amperímetro lê 500 mA, os valores analógicos no monitor serial lêem 250 passos ou níveis de tensão. O ADC pode tolerar até 1024 passos ou 5 V no máximo, então quando o amperímetro lê 2000 mA, o monitor serial lê 1000 passos aprox. que está próximo de 1024.

Qualquer coisa acima do nível de tensão de 1024 danificará o ADC no Arduino. Para evitar isso antes de 2000 mA, uma mensagem de aviso aparecerá no LCD dizendo para desconectar o circuito.

Até agora você teria entendido como funciona o amperímetro proposto.

Agora vamos passar para os detalhes construtivos.

Diagrama esquemático:

AMPERÍMETRO DIGITAL ARDUINO DC

O circuito proposto é muito simples e amigável para iniciantes. Construa conforme o diagrama do circuito. Ajuste o potenciômetro de 10K para ajustar o contraste da tela.

Você pode alimentar o Arduino a partir de USB ou via tomada DC com baterias de 9 V. Quatro resistores de 2 watts dissiparão o calor uniformemente do que usar um resistor de 2,5 ohms com resistor de 8-10 watts.

Quando nenhuma corrente está passando, o display pode ler algum pequeno valor aleatório que você pode ignorá-lo, isso pode ser devido à tensão parasita nos terminais de medição.

NOTA: Não inverta a polaridade da alimentação da carga de entrada.

Código do programa:

//------------------Program Developed by R.GIRISH------------------//
#include
#define input_1 A0
#define input_2 A1
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int AnalogValue = 0;
int PeakVoltage = 0;
float AverageVoltage = 0;
float input_A0 = 0;
float input_A1 = 0;
float output = 0;
float Resolution = 0.00488;
unsigned long sample = 0;
int threshold = 1000;
void setup()
{
lcd.begin(16,2);
Serial.begin(9600);
}
void loop()
{
PeakVoltage = 0;
for(sample = 0; sample < 5000; sample ++)
{
AnalogValue = analogRead(input_1);
if(PeakVoltage < AnalogValue)
{
PeakVoltage = AnalogValue;
}
else
{
delayMicroseconds(10);
}
}
input_A0 = PeakVoltage * Resolution;
PeakVoltage = 0;
for(sample = 0; sample < 5000; sample ++)
{
AnalogValue = analogRead(input_2);
if(PeakVoltage < AnalogValue)
{
PeakVoltage = AnalogValue;
}
else
{
delayMicroseconds(10);
}
}
input_A1 = PeakVoltage * Resolution;
output = (input_A0 - input_A1) * 100;
output = output * 4;
while(analogRead(input_A0) >= threshold)
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Reached Maximum");
lcd.setCursor(0,1);
lcd.print("Limit!!!");
delay(1000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Disconnect now!!");
delay(1000);
}
while(analogRead(input_A0) >= threshold)
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Reached Maximum");
lcd.setCursor(0,1);
lcd.print("Limit!!!");
delay(1000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Disconnect now!!");
delay(1000);
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("DIGITAL AMMETER");
lcd.setCursor(0,1);
lcd.print(output);
lcd.print(" mA");
Serial.print("Volatge Level at A0 = ");
Serial.println(analogRead(input_A0));
Serial.print("Volatge Level at A1 = ");
Serial.println(analogRead(input_A1));
Serial.println("------------------------------");
delay(1000);
}
//------------------Program Developed by R.GIRISH------------------//

Se você tiver alguma dúvida específica sobre este projeto de circuito amperímetro digital baseado em Arduino, por favor, expresse na seção de comentários, você pode receber uma resposta rápida.

Hashtags: #Faça #este #amperímetro #digital #avançado #usando #Arduino
 

FONTE


Nota: Este conteúdo foi traduzido do Inglês para português (auto)
Pode conter erros de tradução

Olá, se tiver algum erro de tradução (AUTO), falta de link para download etc…
Veja na FONTE até ser revisado o conteúdo.
Status (Ok Até agora)


Se tiver algum erro coloque nos comentários

Mas se gostou compartilhe!!!

Relacionados

Relacionados