#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); }