Here is the Code im using.
Im not good at this at all.. so. Can anyone spot anything that will cause this to work only sporadically?
Thanks!
*/
// Include IR Remote Library by Ken Shirriff
#include <IRremote.h>
#include <SoftwareSerial.h>
// Define myserial RX & TX
// SoftwareSerial mySerial(10, 11); // RX, TX
// Define TX pin
const int tx = 1;
// Define RX pin
const int rx = 0;
// Define sensor pin
const int RECV_PIN = 4;
// Define LED pin constants
const int redPin = 8;
// Define integer to remember toggle state
int togglestate = 0;
// Define IR Receiver and Results Objects
IRrecv irrecv(RECV_PIN);
decode_results results;
// Lagrer forrige IR-kode mottatt
// unsigned long lastCode;
void setup(){
// Enable the IR Receiver
irrecv.enableIRIn();
// Set LED pins as Outputs
// pinMode(redPin, OUTPUT);
//start the serial communication
Serial.begin(115200);
// mySerial.begin(115200);
}
void loop(){
if (irrecv.decode(&results)){
// if(results.value == 0xFFFFFFFF) // if repeat command (button held down)
// {
// results.value = lastCode; // replace FFFF with last good code
// }
switch(results.value){
case 0xFD00FF: //POWER KNAPP
// lastCode = results.value; // registrer koden for gjentakelse
// mySerial.print("[DEVIALET>POWER=1]");
Serial.println("[DEVIALET>POWER=1]");
break;
case 0xFD40BF: //FUNC/STOP KNAPP
// lastCode = results.value; // registrer koden for gjentakelse
// mySerial.print("[DEVIALET>POWER=0]");
Serial.println("[DEVIALET>POWER=0]");
break;
case 0xFD807F: //VOL+ KNAPP
// lastCode = results.value; // registrer koden for gjentakelse
// mySerial.print("[DEVIALET>VOLUME=++]");
Serial.println("[DEVIALET>VOLUME=++]");
break;
case 0xFD906F: //VOL- KNAPP
// lastCode = results.value; // registrer koden for gjentakelse
// mySerial.print("[DEVIALET>VOLUME=--]");
Serial.println("[DEVIALET>VOLUME=--]");
break;
case 0xFD20DF: //PREV-KNAPP
// lastCode = results.value; // registrer koden for gjentakelse
// mySerial.print("[DEVIALET>SOURCE=--]");
Serial.println("[DEVIALET>SOURCE=--]");
break;
case 0xFD609F: //NEXT-KNAPP
// lastCode = results.value; // registrer koden for gjentakelse
// mySerial.print("[DEVIALET>SOURCE=++]");
Serial.println("[DEVIALET>SOURCE=++]");
break;
case 0xFDA05F: //PLAY/PAUSE
// lastCode = results.value; // registrer koden for gjentakelse
// mySerial.print("[DEVIALET>MUTE=!]");
Serial.println("[DEVIALET>MUTE=!]");
delay(200);
break;
case 0xFD30CF: //0-knapp
// lastCode = results.value; // registrer koden for gjentakelse
// mySerial.print("[DEVIALET>SOURCE=USB]");
Serial.println("[DEVIALET>SOURCE=USB]");
break;
case 0xFD08F7: //1-knapp
// lastCode = results.value; // registrer koden for gjentakelse
// mySerial.print("[DEVIALET>SOURCE=Optical1]");
Serial.println("[DEVIALET>SOURCE=Opt 1]");
delay(200);
Serial.println("[DEVIALET>SOURCE=Optical1]");
break;
case 0xFD8877: //2-knapp
// lastCode = results.value; // registrer koden for gjentakelse
// mySerial.print("[DEVIALET>SOURCE=Opt 2]");
Serial.println("[DEVIALET>SOURCE=Optical 2]");
break;
case 0xFD48B7: //3-knapp
// lastCode = results.value; // registrer koden for gjentakelse
// mySerial.print("[DEVIALET>SOURCE=Line 1]");
Serial.println("[DEVIALET>SOURCE=Line 1]");
break;
case 0xFD28D7: //4-knapp
// lastCode = results.value; // registrer koden for gjentakelse
// mySerial.print("[DEVIALET>SOURCE=Line 2]");
Serial.println("[DEVIALET>SOURCE=Line 2]");
break;
case 0xFD50AF: //OPP-knapp
// lastCode = results.value; // registrer koden for gjentakelse
// mySerial.print("[DEVIALET>SAM=1]");
Serial.println("[DEVIALET>SAM=1]");
break;
case 0xFD10EF: //NED-knapp
// lastCode = results.value; // registrer koden for gjentakelse
// Turn on LED for 20Ms
// digitalWrite(redPin, LOW);
// delay(200);
// digitalWrite(redPin, HIGH);
// mySerial.print("[DEVIALET>SAM=0]");
Serial.println("[DEVIALET>SAM=0]");
break;
}
irrecv.resume();
}
}