arduino air cooler

.code { background:#f5f8fa; background-repeat:no-repeat; border: solid #5C7B90; border-width: 1px 1px 1px 20px; color: #000000; font: 13px 'Courier New', Courier, monospace; line-height: 16px; margin: 10px 0 10px 10px; max-height: 200px; min-height: 16px; overflow: auto; padding: 28px 10px 10px; width: 90%; } .code:hover { background-repeat:no-repeat; }

Tuesday, May 12, 2020

Air Cooler Control Conversion from Mechanical Switch To Digital using Arduino

Air Cooler Control Conversion from Mechanical Switch To Digital using Arduino

Arduino Digital Input Tutorial



Original Wiring Diagram








Original Wiring Diagram
with Float Switch









New Wiring Diagram
via Arduino









Arduino Diagram




Parts List



Arduino For Loop Tutorial




Arduino Code
/* This Code is Written by Pinoy Elektrisyan
visit my Facebook Page https://goo.gl/Y8YS68
visit my youtube Channel https://bit.ly/2Lg8TDJ
Date April 24, 2020
Application: Speed Controller for single phase 3 speed motor via potentiometer
with push button for water pump and swing (Air Cooler)
the debouncing I used in this code is based on tutorial of a fellow youtuber "learnelectronics"
watch here https://www.youtube.com/watch?v=ojflP6pvTMc&t=58s
Wiring Diagram https://bit.ly/2AafoFK
*/
//======GLOBAL VARIABLES==========
//----INPUTS---------------------------------------------------------
int pbSwing = 10; // momentary push button for swing (pulldown via 20kΩ resistor)
int pbPump = 11; // momentary push button for swing (pulldown via 20kΩ resistor)
int floatSwitch = 12; // Float Switch (pulldown via 20kΩ resistor)
int pbSpeed = A0; // momentary push button for speed control
//---OUTPUTS---------------------------------------------------------
int speed1 = 2; // relay for blower speed (Low)
int speed2 = 3; // relay for blower speed (Med)
int speed3 = 4; // relay for blower speed (HIGH)
int swing = 5; // relay for Swing motor
int pump = 6; // relay for Pump Motor
int ledSpeed1 = 7; // Led for blower speed (Low)
int ledSpeed2 = 8; // Led for blower speed (Med)
int ledSpeed3 = 9; // Led for blower speed (High)
int ledSwing = 13; // Led for Speed
int ledPumpGreen = A1; // Led for Pump Running
int ledPumpRed = A2; // Led for Pump Error (Low Water Level)
//-------------------------------------------------------------------- int speedPosition = 0;// Speed monitoring for swing and pump interlock
int lastPosition = 0;
int swingPress = 0;
int pumpPress = 0;
bool floatPosition = 0;
int blower = 0; void setup() {
/*Declare Output Pins*/
pinMode (speed1, OUTPUT);
pinMode (speed2, OUTPUT);
pinMode (speed3, OUTPUT);
pinMode (swing, OUTPUT);
pinMode (pump, OUTPUT);
pinMode (ledSpeed1, OUTPUT);
pinMode (ledSpeed2, OUTPUT);
pinMode (ledSpeed3, OUTPUT);
pinMode (ledSwing, OUTPUT);
pinMode (ledPumpGreen, OUTPUT);
pinMode (ledPumpRed, OUTPUT); /*Turn off all Relays*/
digitalWrite (speed1, LOW);
digitalWrite (speed2, LOW);
digitalWrite (speed3, LOW);
digitalWrite (swing, LOW);
digitalWrite (pump, LOW); /*Animate led at start up*/
for (int i = 0; i <= 6; i = i + 1) {
delay (200);
digitalWrite (ledSwing, HIGH);
delay (50);
digitalWrite (ledSpeed1, HIGH);
delay (50);
digitalWrite (ledSpeed2, HIGH);
delay (50);
digitalWrite (ledSpeed3, HIGH);
delay (50);
digitalWrite (ledPumpGreen, HIGH);
delay (50);
digitalWrite (ledSwing, LOW);
digitalWrite (ledSpeed1, LOW);
digitalWrite (ledSpeed2, LOW);
digitalWrite (ledSpeed3, LOW);
digitalWrite (ledPumpGreen, LOW);
}
} void loop() {
swingPress = digitalRead (pbSwing); // read push button for swing
pumpPress = digitalRead (pbPump); // read push button for pump
floatPosition = digitalRead (floatSwitch);
blower = digitalRead(pbSpeed); if (floatPosition == 0) {
digitalWrite(pump, LOW);
digitalWrite(ledPumpGreen, LOW);
digitalWrite(ledPumpRed, HIGH);
}
else {
digitalWrite (ledPumpRed, LOW);
} if (blower == 1) {
delay(50);
blower = digitalRead (pbSpeed);
if (blower == 0) {
speedPosition = lastPosition + 1;
}
}
else if ( pumpPress == 1) {
delay(50);
pumpPress = digitalRead(pbPump);
if ((pumpPress == 0) && (lastPosition != 0)) {
digitalWrite (pump, !digitalRead(pump));
if (digitalRead(pump) == 1) {
digitalWrite(ledPumpGreen, HIGH);
}
else digitalWrite(ledPumpGreen, LOW);
}
} else if ( swingPress == 1) {
delay(50);
swingPress = digitalRead (pbSwing);
if (( swingPress == 0) && (lastPosition != 0)) {
digitalWrite (swing, !digitalRead(swing));
if (digitalRead(swing) == 1) {
digitalWrite (ledSwing, HIGH);
}
else digitalWrite(ledSwing, LOW);
}
} else {
delay (100);
} switch (speedPosition) {
case 1:
digitalWrite (ledSpeed1, HIGH);
digitalWrite (ledSpeed2, LOW);
digitalWrite (ledSpeed3, LOW);
digitalWrite (speed1, HIGH);
digitalWrite (speed2, LOW);
digitalWrite (speed3, LOW);
lastPosition = speedPosition;
break;
case 2:
digitalWrite (ledSpeed1, HIGH);
digitalWrite (ledSpeed2, HIGH);
digitalWrite (ledSpeed3, LOW);
digitalWrite (speed1, LOW);
digitalWrite (speed2, HIGH);
digitalWrite (speed3, LOW);
lastPosition = speedPosition;
break;
case 3:
digitalWrite (ledSpeed1, HIGH);
digitalWrite (ledSpeed2, HIGH);
digitalWrite (ledSpeed3, HIGH);
digitalWrite (speed1, LOW);
digitalWrite (speed2, LOW);
digitalWrite (speed3, HIGH);
lastPosition = speedPosition;
break;
default:
digitalWrite (ledSpeed1, LOW);
digitalWrite (ledSpeed2, LOW);
digitalWrite (ledSpeed3, LOW);
digitalWrite (ledSwing, LOW);
digitalWrite (ledPumpGreen, LOW);
digitalWrite (speed1, LOW);
digitalWrite (speed2, LOW);
digitalWrite (speed3, LOW);
digitalWrite (swing, LOW);
digitalWrite (pump, LOW);
lastPosition = 0;
break;
}
}



Download Code Here

1 comment:

Air Cooler Control Conversion from Mechanical Switch To Digital using Arduino

Air Cooler Control Conversion from Mechanical Switch To Digital using Arduino Arduino Digital Input Tutorial Original Wiring Diagram ...