Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <IRremote.h>
- #include<EEPROM.h>
- #include<Timer1.h>
- #define RECV_PIN 7
- IRrecv irrecv(RECV_PIN);
- decode_results results;
- unsigned long key_value = 0;
- #define motor A0
- #define buzzer 13
- volatile char i,oldval;
- int fanval[5] = {75,70,40,30,20};
- int timeval;
- boolean fan;
- void setup()
- {
- pinMode(motor,OUTPUT);
- pinMode(2,INPUT);
- pinMode(buzzer,OUTPUT); digitalWrite(buzzer,LOW);
- digitalWrite(buzzer,HIGH); delay(500); digitalWrite(buzzer,LOW);
- pinMode(2,INPUT);
- i = EEPROM.read(0);
- irrecv.enableIRIn();
- fan=false;
- //attachInterrupt(0,dimmer,RISING);
- }
- void dimmer()
- {
- long int dimval;
- dimval = timeval*75;
- //dimval = dimval /1000;
- startTimer1(dimval);
- }
- ISR(timer1Event)
- {
- //resetTimer1();
- pauseTimer1();
- digitalWrite(motor,HIGH);
- delayMicroseconds(100);
- digitalWrite(motor,LOW);
- }
- void ping()
- {
- digitalWrite(buzzer,HIGH);
- delay(100);
- digitalWrite(buzzer,LOW);
- }
- void loop()
- {
- if(irrecv.decode(&results))
- {
- if (results.value == 0XFFFFFFFF)
- results.value = key_value;
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- if ((results.value == 0x8800325) || (results.value == 0x8800347) || (results.value == 0xD5A9E4D6) || // ON
- (results.value == 0x8800) || (results.value == 0x69324D85) || (results.value == 0x8800303)) {
- ping();
- fan=true;
- timeval = fanval[i];
- if(fan)
- attachInterrupt(0,dimmer,FALLING);
- }
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- if ((results.value == 0x88C0051) || (results.value == 0x3393ACC8) || (results.value == 0x1035C9DA) || // OFF
- (results.value == 0x993AE700) || (results.value == 0x88C0)) {
- ping();
- fan=false;
- detachInterrupt(0);
- }
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- if ((results.value == 0x88C000C) || (results.value == 0x88C0084) || (results.value == 0x9718DE1F) || // PLAMA
- (results.value == 0x4392537E) || (results.value == 0xA7CEC72B) || (results.value == 0xFB766165) ||
- (results.value == 0x9EFF2F3F)) {
- ping();
- fan=!fan;
- if(fan)
- {
- timeval = fanval[i];
- attachInterrupt(0,dimmer,FALLING);
- }
- else
- detachInterrupt(0);
- EEPROM.write(0,i);
- }
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- if ((results.value == 0x8810089) || (results.value == 0x8810) || // JET COOL
- (results.value == 0x3A398D8A) || (results.value == 0x71199AC5) ||
- (results.value == 0xEE419856) || (results.value == 0x76105F79)) {
- if(fan&&i<4)
- {
- ping();
- i++;
- if(i>=4)
- {
- ping();
- ping();
- i=4;
- }
- timeval = fanval[i];
- EEPROM.write(0,i);
- }
- }
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- if ((results.value == 0x8808350) || (results.value == 0x880830B) || (results.value == 0x880832D) || // FAN SPEED
- (results.value == 0x8178C8D1) || (results.value == 0x1308451C) || (results.value == 0xA11244F4) ||
- (results.value == 0xD0AE2562) || (results.value == 0x2F0AD5BB)) {
- if(fan&&i!=0)
- {
- ping();
- i--;
- if(i<=0)
- {
- ping();
- ping();
- i=0;
- }
- timeval = fanval[i];
- EEPROM.write(0,i);
- }
- }
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- irrecv.resume(); // Receive the next value
- key_value = results.value;
- }
- delay(10);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement