#include <ezButton.h>
#include <IRremote.h>
#define LOOP_STATE_STOPPED 0
#define LOOP_STATE_STARTED 1
ezButton button(2); // create ezButton object that attach to pin 2;
int loopState = LOOP_STATE_STOPPED;
const int LEDPin = 13;
int TempPin = A0;
int HeatPin = 12;
int WindPin = 11;
const int RECV_PIN = 8;
int bright = 100;
IRrecv irrecv(RECV_PIN);
decode_results results;
float ReadTemp(int PIN){
int analogOut = analogRead(PIN);
float VolRead = analogOut/1023.0*5.0; /* Equation 2, VREF = 5V Why do we use 5.0?*/
Temp = (VolRead-0.5)/0.01; //Equation 1
return Temp;
}
boolean flag = true;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
irrecv.blink13(true);
button.setDebounceTime(50); // set debounce time to 50 milliseconds
button.loop(); // MUST call the loop() function firstvoid setup() {
pinMode(LEDPin, OUTPUT);
pinMode(HeatPin, OUTPUT);
pinMode(WindPin, OUTPUT);
pinMode(TempPin, INPUT);
}
void loop() {
button.loop();
if (button.isPressed()) {
if (loopState == LOOP_STATE_STOPPED) {
loopState = LOOP_STATE_STARTED;
}
else{
if(loopState == LOOP_STATE_STARTED) {
loopState = LOOP_STATE_STOPPED;
}
}
Serial.print(loopState);
if (loopState == LOOP_STATE_STARTED) {
digitalWrite(LEDPin, HIGH);
do{
Temp = ReadTemp(TempPin);
Serial.print("Temperature is ");
Serial.print(Temp);
Serial.println(" degree C");
delay(50);
digitalRead(loopState);
if (Temp < 20) {
digitalWrite(HeatPin, HIGH);
}
else{
digitalWrite(HeatPin, LOW);
}
delay(500);
if (Temp > 25){
digitalWrite(WindPin, HIGH);
}
else{
digitalWrite(WindPin, LOW);
}
button.getStateRaw();
}
while(loopState == LOOP_STATE_STARTED);
}
button.getStateRaw();
return Temp;
}
if (loopState == LOOP_STATE_STOPPED);{
digitalWrite(LEDPin, LOW);
digitalWrite(HeatPin, LOW);
digitalWrite(WindPin, LOW);
return Temp;
}
if (irrecv.decode(&results)){
switch(results.value){
case 0XFF6897: //Keypad button "0"
digitalWrite(LEDPin, HIGH);
}
switch(results.value){
case 0xFF30CF: //Keypad button "1"
digitalWrite(LEDPin, LOW);
}
irrecv.resume();
}
}