Stap 5: Het programma
/*
Zonnecel Tester 15V-1A
door Mike Soniat
8 september 2012
*/
Const int RxPin = 3;
#include < SoftwareSerial.h >
SoftwareSerial lcdPanel = SoftwareSerial (255, RxPin);
int voltPin = 1;
int ampPin = 2;
int readVolts = 0;
int readAmps = 0;
int maxVolts = 15; Moet overeenkomen met spanning circuit weerstanden
zweven voltageFactor = 0;
zweven spanning = 0;
huidige zweven = 0;
zweven macht = 0;
Const int clearIt = 12;
Const int cr = 13;
Const int backLightOn = 17;
Const int backLightOff = 18;
VOID Setup {}
pinMode (RxPin, uitvoer);
digitalWrite (RxPin, hoge);
lcdPanel.begin(9600);
startUp();
}
void loop
{
maatregel spanning
readVolts = analogRead(voltPin);
Als (readVolts > 0)
{
terwijl (readVolts > 0)
{
readVolts = analogRead(voltPin);
Als (readVolts > 0)
{
voltageFactor = 1024 / maxVolts;
spanning = readVolts / voltageFactor;
clearLCD();
lcdPanel.print ("Reading");
lcdPanel.print(voltage);
lcdPanel.print("V");
lcdPanel.write(cr);
lcdPanel.print ("verplaatsen Switch naar A");
}
delay(1000);
}
}
anders
{
startUp();
}
overschakelen naar de stroomkring
readAmps = analogRead(ampPin);
terwijl (readAmps > 0)
{
Als (spanning > 0)
{
readAmps = analogRead(ampPin);
huidige = readAmps;
vermogen = spanning * huidige;
clearLCD();
lcdPanel.print(voltage);
lcdPanel.print ("V");
lcdPanel.print ("ik =");
lcdPanel.print(current);
lcdPanel.print("mA");
lcdPanel.write(cr);
lcdPanel.print(power);
lcdPanel.print("mW");
delay(1000);
}
else {}
readAmps = analogRead(ampPin);
}
}
delay(1000);
}
VOID clearLCD()
{
lcdPanel.write(clearIt); Duidelijk
delay(5);
}
VOID startUp()
{
clearLCD();
lcdPanel.write(backLightOn);
lcdPanel.print ("15V - 1A Solar");
lcdPanel.write(cr);
lcdPanel.print ("cel Tester");
delay(3000);
clearLCD();
lcdPanel.print ("verplaatsen schakelaar aan V");
lcdPanel.print ("en sluit cel");
delay(2000);
}