/
Coolduino.ino
61 lines (57 loc) · 1.11 KB
/
Coolduino.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <IRremote.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
int IRled=1;
int fanCtrl=3;
int tempPin=A0;
int IRpin=A1;
IRrecv irrecv(IRpin);
decode_results results;
int tempC=27;
int temp;
int IR;
void LCDprint(int Current,int Real) {
lcd.clear();
lcd.print("Temp: ");
lcd.print(Current);
lcd.setCursor(0,1);
lcd.print("Limit:");
lcd.print(Real);
delay(100);
}
void setup() {
lcd.begin(16,2);
irrecv.enableIRIn();
pinMode(IRled,OUTPUT);
pinMode(fanCtrl,OUTPUT);
digitalWrite(IRled,LOW);
}
void loop() {
if (irrecv.decode(&results)) {
digitalWrite(IRled,HIGH);
IR=results.value;
delay(50);
irrecv.resume();
}
delay(10);
digitalWrite(IRled,LOW);
temp=analogRead(tempPin);
temp=temp*400/1024;
if(temp>tempC) {
if(temp-tempC<10)
analogWrite(fanCtrl,150);
else if(temp-tempC<=20 && temp-tempC>=10)
analogWrite(fanCtrl,200);
else if(temp-tempC>20)
analogWrite(fanCtrl,255);
}
switch(IR) {
case 16754775:
tempC=tempC+1;
break;
case 16769055:
tempC=tempC-1;
break;
}
LCDprint(temp,tempC);
}