#include <IRremote.h>
#include <Servo.h>
#define PIN_RECEIVER 12
#define PIN_SERVO 3
IRrecv receiver(PIN_RECEIVER);
Servo servo1;
void setup()
{
Serial.begin(9600);
receiver.enableIRIn();
servo1.attach(PIN_SERVO);
}
int rotation=90;
void loop()
{
// Checks received an IR signal
if (receiver.decode()) {
if(receiver.decodedIRData.command==224)
{
Serial.println("PREV");
rotation=rotation-10;
if(rotation<0) rotation=0;
servo1.write(rotation);
}
if(receiver.decodedIRData.command==144)
{
Serial.println("NEXT");
rotation=rotation+10;
if(rotation>180) rotation=180;
servo1.write(rotation);
}
if(receiver.decodedIRData.command==34)
{
int num=-1;
Serial.println("start INPUT number");
receiver.resume();
delay(1000);
receiver.decode();
while(receiver.decodedIRData.command!=168)
{
num=inputNum();
if(num!=-1)
{
rotation=rotation*10+num;
Serial.println(rotation);
}
receiver.resume();
delay(1000);
receiver.decode();
}
Serial.println("move point!");
servo1.write(rotation);
}
receiver.resume(); // Receive the next value
}
}
int inputNum()
{
int num;
switch(receiver.decodedIRData.command)
{
case 104:
num=0;
break;
case 48:
num=1;
break;
case 24:
num=2;
break;
case 122:
num=3;
break;
case 16:
num=4;
break;
case 56:
num=5;
break;
case 90:
num=6;
break;
case 66:
num=7;
break;
case 74:
num=8;
break;
case 82:
num=9;
break;
default:
num=-1;
}
return num;
}