Hi all, I'm building a simple circuit to control a ceiling fan and light using a cheapo Chinese IR remote. I've adapted a sketch I found on 'tinternet and although a little tweaking is still needed it seems to work ok, except when first powered up nothing happens unless I press reset on the Arduino. Any ideas what might be causing this? Many thanks for any advise as usual. Regards, Bob.
// IR remote for ceiling Fan adapted from
// www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/
#include <IRremote.h>
const int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;
const int A1Pin = 10; //Speed 1 relay
const int A2Pin = 11; //Speed 2 relay
const int A3Pin = 12; //Speed 3 relay
const int A4Pin = 6; //Spare output for later
const int A11Pin = 5; //Light relay
void setup(){
irrecv.enableIRIn();
irrecv.blink13(true);
pinMode(A1Pin, OUTPUT);
pinMode(A2Pin, OUTPUT);
pinMode(A3Pin, OUTPUT);
pinMode(A4Pin, OUTPUT);
pinMode(A11Pin, OUTPUT);
}
void loop(){
if (irrecv.decode(&results)){
switch(results.value){
case 0xFFA25D: //Keypad button "1"
digitalWrite(A1Pin, HIGH);
digitalWrite(A2Pin, LOW);
digitalWrite(A3Pin, LOW);
}
switch(results.value){
case 0xFF629D: //Keypad button "2"
digitalWrite(A2Pin, HIGH);
digitalWrite(A1Pin, LOW);
digitalWrite(A3Pin, LOW);
}
switch(results.value){
case 0xFFE21D: //Keypad button "3"
digitalWrite(A3Pin, HIGH);
digitalWrite(A2Pin, LOW);
digitalWrite(A1Pin, LOW);
}
switch(results.value){
case 0xFF22DD: //Keypad button "4"
digitalWrite(A4Pin, HIGH);
}
switch(results.value){
case 0xFF6897: //Keypad button "*"
digitalWrite(A11Pin, HIGH);
}
switch(results.value){
case 0xFFB04F: //Keypad button "#"
digitalWrite(A11Pin, LOW);
}
switch(results.value){
case 0xFF38C7: //Keypad button "OK"
digitalWrite(A1Pin, LOW);
digitalWrite(A2Pin, LOW);
digitalWrite(A3Pin, LOW);
digitalWrite(A11Pin, LOW);
digitalWrite(A4Pin, LOW);
}
irrecv.resume();
}
}