#define IR PINB2
int fade=0;
void setup()
{
Serial.begin(9600);
//DDRB=0x3C;PORTB=0x00;
DDRD=0x20;PORTD=0x20;
//pinMode(PB4, OUTPUT);
//pinMode(PB5, OUTPUT);
}
void loop()
{
int key = getIrKey();
(key!=0)?Serial.println(PORTB,BIN):false;
switch (key)
{
case (0x30C8): PORTB^=0x04;break;
case (0x18E0): PORTB^=0x08;break;
case (0x7A7E): PORTB^=0x10;break;
case (0x10E8): PORTB^=0x20;break;
case (0x4FB8): PORTB=0x00;break;
case (0x5DAA): PORTB=0x3C;break;
default: break;
}
((fade>255)||(fade<1))?fade=-fade:fade+=1;
analogWrite(PB5,fade);
analogWrite(PB6,fade);
}
int getIrKey()
{
int len=pulseIn(IR,LOW);
int key,temp;
key=0;
if(len>5000)
{
for(int i=1;i<=32;i++)
{
temp=pulseIn(IR,HIGH);
if(temp>1000) key+=(1<<(i-17));
}
}
if(key<0) key=-key;
return key;
}
nano:12
nano:11
nano:10
nano:9
nano:8
nano:7
nano:6
nano:5
nano:4
nano:3
nano:2
nano:GND.2
nano:RESET.2
nano:0
nano:1
nano:13
nano:3.3V
nano:AREF
nano:A0
nano:A1
nano:A2
nano:A3
nano:A4
nano:A5
nano:A6
nano:A7
nano:5V
nano:RESET
nano:GND.1
nano:VIN
nano:12.2
nano:5V.2
nano:13.2
nano:11.2
nano:RESET.3
nano:GND.3
ir1:GND
ir1:VCC
ir1:DAT
led1:A
led1:C
led2:A
led2:C
led3:A
led3:C
led4:A
led4:C