https://www.tinkercad.com/things/a2yGAWsDsCJ-ir-rgb-led/editel
#include <IRremote.h>
const int RED_PIN = 11;
const int GREEN_PIN = 9;
const int BLUE_PIN = 10;
unsigned long lastValue = 0;
IRrecv irrecv(5);
decode_results results;
void setup()
{
irrecv.enableIRIn();
pinMode(RED_PIN,OUTPUT);
pinMode(GREEN_PIN,OUTPUT);
pinMode(BLUE_PIN,OUTPUT);
Serial.begin(9600);
}
void loop()
{
if(irrecv.decode(&results)){
Serial.println(results.value, HEX);
//계속 누르고 있을 때가 0xFFFFFFF이다.
if(results.value==0xFFFFFFF){
results.value==lastValue;
}
Serial.println(lastValue);
if(results.value==0xFD30CF)
printRGB(255, 100, 180);
else if(results.value==0xFD08F7)
printRGB(0, 255, 255);
else if(results.value==0xFD8877)
printRGB(0, 255, 0);
else
printRGB(0, 0, 0);
delay(30);
irrecv.resume(); //다음 값
}
}
void printRGB(int red, int green, int blue){
analogWrite(RED_PIN, red);
analogWrite(GREEN_PIN, green);
analogWrite(BLUE_PIN, blue);
}
https://www.tinkercad.com/things/254frELzuMV-ir-/editel
#include <Servo.h>
#include <IRremote.h>
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
Servo myservo;
void setup(){
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop(){
if (irrecv.decode(&results))
{
switch (results.value)
{
case 0xFD00FF:
myservo.attach(9);
Serial.println("Start");
break;
case 0xFD609F:
myservo.write(360);
Serial.println("Clockwise");
break;
case 0xFD20DF:
myservo.write(-360);
Serial.println("Counter Clockwise");
break;
default:
Serial.print("Unrecognized code received: 0x");
Serial.println(results.value, HEX);
break;
}
irrecv.resume(); //다음값
}
}