//reuk.co.uk November 2013 //for information and the schematic circuit diagram for this //solar water heating pump controller design, visit: //http://www.reuk.co.uk/wordpress/arduino-solar-water-heating-pump-controller-design-and-code/ const int PANELSENSOR = A2; const int TANKSENSOR = A0; const int RELAY = 12; const int diffON = 6; const int diffOFF = 3; void setup(){ Serial.begin(9600); pinMode(PANELSENSOR, INPUT); pinMode(TANKSENSOR, INPUT); pinMode(RELAY, OUTPUT); digitalWrite(RELAY, LOW); } void loop(){ float solarPanelTemperature = ((analogRead(PANELSENSOR) / 1024.0) * 5000)/10; float hotWaterTankTemperature = ((analogRead(TANKSENSOR) / 1024.0) * 5000)/10; if(solarPanelTemperature > (hotWaterTankTemperature + diffON)){ digitalWrite(RELAY, HIGH); do{ delay(250); solarPanelTemperature = ((analogRead(PANELSENSOR) / 1024.0) * 5000)/10; hotWaterTankTemperature = ((analogRead(TANKSENSOR) / 1024.0) * 5000)/10; }while(solarPanelTemperature > (hotWaterTankTemperature + diffOFF)); digitalWrite(RELAY, LOW); } delay(250); }