#include <LiquidCrystal.h>
#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);
}