Here is my code, it's basically just turning a few LED's on and off and dimming them from an IR remote. The other pins work fine (and if I move my led from 11 or 3 to say 6 it works as well).
#include <IRremote.h>
int RECV_PIN = 12;
int codevalue;
int ledpower;
byte ledpin[]={3,10,9};
int ledselect;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
irrecv.enableIRIn();
for (int x=0; x<3; x++) {
pinMode(ledpin[x], OUTPUT); }
}
void loop(){
if (irrecv.decode(&results)){
codevalue=results.value;
switch(codevalue) {
case -30601:
if (digitalRead(ledpin[0])==HIGH) {
digitalWrite(ledpin[0], LOW);
ledpower=0;
}
else {
digitalWrite(ledpin[0], HIGH);
ledpower=255;
}
ledselect=0;
break;
case 18615:
if (digitalRead(ledpin[1])==HIGH) {
digitalWrite(ledpin[1], LOW);
ledpower=0;
}
else {
digitalWrite(ledpin[1], HIGH);
ledpower=255;
}
ledselect=1;
break;
case -14281:
if (digitalRead(ledpin[2])==HIGH) {
digitalWrite(ledpin[2], LOW);
ledpower=0;
}
else {
digitalWrite(ledpin[2], HIGH);
ledpower=255;
}
ledselect=2;
break;
case 4335:
for (int x=0; x<3; x++) {
digitalWrite(ledpin[x], LOW); }
break;
case -16321:
if (ledpower!=0 && ledpower!=15) {
ledpower=ledpower-20;
analogWrite (ledpin[ledselect],ledpower);
}
if (ledpower==15) {
ledpower=0;
digitalWrite(ledpin[ledselect],LOW);
}
break;
case 16575:
if (ledpower!=0 && ledpower!=255) {
ledpower=ledpower+20;
analogWrite (ledpin[ledselect],ledpower);
}
if (ledpower==255) {
ledpower=255;
digitalWrite(ledpin[ledselect],HIGH);
}
break;
}
irrecv.resume();
}
}