Components and supplies
Resistor 2.21k ohm
Arduino UNO
Power Supply 5VDC 2Amps
Relay 5VDC 220/110VAC 10AMPS
Tools and machines
Soldering iron (generic)
Project description
Code
ArduinoDehumidifier
arduino
Repair a old control board of a dehumudufiers
1/* Created by Mário Cordeiro, you can see the presentation in video in the Youtube MA2COR channel Tecnologies 2 * https://www.youtube.com/channel/UC1UEzlX6C7bHL-PeAGvP-Kw 3 * This sketch controls a dehumidifier, the ON, OFF , radiator temperature and water tank 4 5 */ 6 7#define RelayFAN 2 //Controls FAN 8#define RelayCOMP 3 //Controls the compressor 9#define Temperature A0 //measure the temperature in the compressor radiator by using the thermocouple from the dehumidifier 10 11 12int value = 0; 13int ledUnfreeze = 8; // unfreeze light indicator when the thermocouple read low temperature ice formation 14int ledON = 4; // ON - dehumidifier ON 15int ledTank = 5; // warning light of full or out Water tank 16int inputPin = 6; // Check if water tank is full or out 17int Buzzer = 7; //Buzzer ON/OFF/Water tank full or out 18int flagH = 0; //To run once 19int flagM = 0; 20int flagL = 0; 21 22void setup() 23{ 24 25 pinMode(RelayFAN,OUTPUT); 26 digitalWrite(RelayFAN,LOW); 27 pinMode(RelayCOMP,OUTPUT); 28 digitalWrite(RelayCOMP,LOW); 29 pinMode(Buzzer, OUTPUT); 30 digitalWrite(Buzzer, LOW); 31 pinMode(inputPin, INPUT); 32 digitalWrite(inputPin, LOW); 33 pinMode(ledON, OUTPUT); 34 pinMode(ledTank, OUTPUT); 35 pinMode(ledUnfreeze, OUTPUT); 36 Serial.begin(115200); 37 delay(10); 38 39 40} 41 42 43void loop() { 44 45 46 47 value = digitalRead(inputPin); // Check if tank is full or out (3V3- Digital 1 HIGH, 0V - digital 0 LOW) 48 Serial.print("Tank: "); 49 Serial.println(value); 50 delay(200); 51 while (value == 0){ 52 digitalWrite(ledON, LOW); 53 digitalWrite(ledUnfreeze, LOW); 54 digitalWrite(RelayFAN,LOW); 55 digitalWrite(RelayCOMP,LOW); 56 digitalWrite(Buzzer, HIGH); 57 tone(Buzzer, 1800, 500); 58 delay(500); 59 noTone(Buzzer); 60 // if the LED is off turn it on and vice-versa: 61 if (digitalRead(ledTank) == LOW) { 62 digitalWrite(ledTank, HIGH); 63 delay(500); 64 } else { 65 digitalWrite(ledTank, LOW); 66 delay(500); 67 } 68 value = digitalRead(inputPin); // Check inside de loop (3V3) 69 } 70 71 int Temp = analogRead(Temperature); // Read de voltage in A0 and convert it to digital 0-1023 72 Serial.print("ConvertedTemp: ");//I made some tests with the thermocouple in water at 0 degrees, 10, 20, 30, .... 80º and made conversion in 0-1023 73 Serial.println(Temp); 74 if ((Temp > 700) && (flagH == 0)){ //Prevent ice formation, ICE in evaporator, Unfreeze process 75 digitalWrite(RelayCOMP,LOW); 76 delay(100); 77 digitalWrite(ledUnfreeze, HIGH); 78 delay(100); 79 digitalWrite(RelayFAN,HIGH); 80 digitalWrite(ledTank, LOW); 81 tone(Buzzer, 1800, 2000); 82 delay(1000); 83 noTone(Buzzer); 84 flagH = 1; 85 flagM = 0; 86 flagL = 0;noTone(Buzzer); 87 } 88 if ((Temp > 200) && (Temp < 701) && (flagM == 0)){ //Normal working 89 digitalWrite(RelayFAN,HIGH); 90 digitalWrite(RelayCOMP,HIGH); 91 delay(100); 92 digitalWrite(ledUnfreeze, LOW); 93 delay(100); 94 digitalWrite(RelayCOMP,HIGH); 95 digitalWrite(ledTank, LOW); 96 digitalWrite(ledON, HIGH); 97 tone(Buzzer, 1800, 1000); 98 delay(1000); 99 noTone(Buzzer); 100 flagH = 0; 101 flagM = 1; 102 flagL = 0; 103 } 104 if ((Temp < 201) && (flagL == 0)){ // High temperature in evaporator. Prevents damage 105 digitalWrite(RelayCOMP,LOW); 106 delay(100); 107 digitalWrite(ledUnfreeze, HIGH); 108 delay(100); 109 digitalWrite(RelayFAN,HIGH); 110 digitalWrite(ledTank, LOW); 111 digitalWrite(ledON, LOW); 112 tone(Buzzer, 1800, 1000); 113 delay(1000); 114 tone(Buzzer, 1800, 1000); 115 noTone(Buzzer); 116 flagH = 0; 117 flagM = 0; 118 flagL = 1; 119 } 120 }
ArduinoDehumidifier
arduino
Repair a old control board of a dehumudufiers
1/* Created by Mário Cordeiro, you can see the presentation in video in 2 the Youtube MA2COR channel Tecnologies 3 * https://www.youtube.com/channel/UC1UEzlX6C7bHL-PeAGvP-Kw 4 5 * This sketch controls a dehumidifier, the ON, OFF , radiator temperature and 6 water tank 7 8 */ 9 10#define RelayFAN 2 //Controls FAN 11#define RelayCOMP 12 3 //Controls the compressor 13#define Temperature A0 //measure the temperature 14 in the compressor radiator by using the thermocouple from the dehumidifier 15 16 17int 18 value = 0; 19int ledUnfreeze = 8; // unfreeze light indicator when the thermocouple 20 read low temperature ice formation 21int ledON = 4; // ON - dehumidifier ON 22int 23 ledTank = 5; // warning light of full or out Water tank 24int inputPin = 6; // 25 Check if water tank is full or out 26int Buzzer = 7; //Buzzer ON/OFF/Water tank 27 full or out 28int flagH = 0; //To run once 29int flagM = 0; 30int flagL = 0; 31 32void 33 setup() 34{ 35 36 pinMode(RelayFAN,OUTPUT); 37 digitalWrite(RelayFAN,LOW); 38 39 pinMode(RelayCOMP,OUTPUT); 40 digitalWrite(RelayCOMP,LOW); 41 pinMode(Buzzer, 42 OUTPUT); 43 digitalWrite(Buzzer, LOW); 44 pinMode(inputPin, INPUT); 45 digitalWrite(inputPin, 46 LOW); 47 pinMode(ledON, OUTPUT); 48 pinMode(ledTank, OUTPUT); 49 pinMode(ledUnfreeze, 50 OUTPUT); 51 Serial.begin(115200); 52 delay(10); 53 54 55} 56 57 58void 59 loop() { 60 61 62 63 value = digitalRead(inputPin); // Check if tank is full 64 or out (3V3- Digital 1 HIGH, 0V - digital 0 LOW) 65 Serial.print("Tank: "); 66 67 Serial.println(value); 68 delay(200); 69 while 70 (value == 0){ 71 digitalWrite(ledON, LOW); 72 digitalWrite(ledUnfreeze, 73 LOW); 74 digitalWrite(RelayFAN,LOW); 75 digitalWrite(RelayCOMP,LOW); 76 77 digitalWrite(Buzzer, HIGH); 78 tone(Buzzer, 1800, 500); 79 80 delay(500); 81 noTone(Buzzer); 82 // if the 83 LED is off turn it on and vice-versa: 84 if (digitalRead(ledTank) 85 == LOW) { 86 digitalWrite(ledTank, HIGH); 87 delay(500); 88 89 } else { 90 digitalWrite(ledTank, LOW); 91 delay(500); 92 93 } 94 value = digitalRead(inputPin); // Check 95 inside de loop (3V3) 96 } 97 98 int 99 Temp = analogRead(Temperature); // Read de voltage in A0 and convert it to digital 100 0-1023 101 Serial.print("ConvertedTemp: ");//I made some tests with 102 the thermocouple in water at 0 degrees, 10, 20, 30, .... 80º and made conversion 103 in 0-1023 104 Serial.println(Temp); 105 if 106 ((Temp > 700) && (flagH == 0)){ //Prevent ice formation, ICE in evaporator, 107 Unfreeze process 108 digitalWrite(RelayCOMP,LOW); 109 delay(100); 110 111 digitalWrite(ledUnfreeze, HIGH); 112 delay(100); 113 114 digitalWrite(RelayFAN,HIGH); 115 digitalWrite(ledTank, 116 LOW); 117 tone(Buzzer, 1800, 2000); 118 delay(1000); 119 120 noTone(Buzzer); 121 flagH = 1; 122 123 flagM = 0; 124 flagL = 0;noTone(Buzzer); 125 } 126 127 if ((Temp > 200) && (Temp < 701) && (flagM == 0)){ //Normal working 128 129 digitalWrite(RelayFAN,HIGH); 130 digitalWrite(RelayCOMP,HIGH); 131 132 delay(100); 133 digitalWrite(ledUnfreeze, LOW); 134 135 delay(100); 136 digitalWrite(RelayCOMP,HIGH); 137 138 digitalWrite(ledTank, LOW); 139 digitalWrite(ledON, 140 HIGH); 141 tone(Buzzer, 1800, 1000); 142 delay(1000); 143 144 noTone(Buzzer); 145 flagH 146 = 0; 147 flagM = 1; 148 flagL = 0; 149 150 } 151 if ((Temp < 201) && (flagL 152 == 0)){ // High temperature in evaporator. Prevents damage 153 digitalWrite(RelayCOMP,LOW); 154 155 delay(100); 156 digitalWrite(ledUnfreeze, HIGH); 157 158 delay(100); 159 digitalWrite(RelayFAN,HIGH); 160 161 digitalWrite(ledTank, LOW); 162 digitalWrite(ledON, 163 LOW); 164 tone(Buzzer, 1800, 1000); 165 delay(1000); 166 167 tone(Buzzer, 1800, 1000); 168 noTone(Buzzer); 169 170 flagH = 0; 171 flagM = 0; 172 flagL 173 = 1; 174 } 175 }
Downloadable files
SCHEME
SCHEME
Diagram
Diagram of new control board
Diagram
SCHEME
SCHEME
Comments
Only logged in users can leave comments
mmcordeiro
0 Followers
•0 Projects
Table of contents
Intro
0
0