DIGITALER STROMZÄHLER
Hier das Video:Und der Code:
Um den Code nutzen zu können wird die Library StopWatch benötigt, die hier zum Download bereit steht: www.file-upload.net/download-7926971/StopWatch.zip.html
double Preis = 0.2639; //Preis einer Kilowattstunde in Euro
double kwh = 0.000; //Kilowattstunden
double imp = 0; //Impulse des Zählers
char tmp1[16];
char tmp2[16];
double euro;
double zeit;
double watt;
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
#include <StopWatch.h>
StopWatch MySW;
StopWatch SWarray[5];
void setup() {
pinMode(6, INPUT);
lcd.begin(16, 2);
lcd.print("LADEN...");
delay(500);
lcd.clear();
lcd.print("WARTE AUF IMPULS");
lcd.setCursor(0, 1);
lcd.print("<<<<<<<<>>>>>>>>");
SWarray[0].start();
}
void loop() {
if(digitalRead(6) ==0){
MySW.stop();
zeit = MySW.elapsed();
MySW.reset();
MySW.start();
imp = imp + 1;
delay(100);
while(digitalRead(6) == 0) {
delay(100);
}
kwh = imp / 1000;
lcd.clear();
lcd.print("KW");
dtostrf(kwh, 1, 3, tmp1);
lcd.setCursor(3, 0);
lcd.print(tmp1);
lcd.setCursor(0, 1);
lcd.print("EU");
lcd.setCursor(3, 1);
euro = kwh * Preis;
dtostrf(euro, 1, 4, tmp2);
lcd.print(tmp2);
lcd.setCursor(12, 0);
watt = 3600 / (zeit / 1000);
if (int(watt) > 9999){
lcd.print("OVER");
}
else {
lcd.print(int(watt));
}
lcd.setCursor(12, 1);
lcd.print("WATT");
}
}