学习任务:
学会使用遥控器控制RGB灯
关注微信公众号:爱享生活科技 \color{#FF0000}{关注微信公众号:爱享生活科技} 关注微信公众号:爱享生活科技
组件:
- Arduion主板
- 红外接收器
- RGB灯
- 遥控器
- 杜邦线
- USB数据线
下图是红外接收器
下图是遥控器
下图是RGB灯
实验步骤:
1.建立电路
Arduion | 红外接收器 |
---|---|
D0 | 7 |
GND | GND |
5v | VCC |
Arduion | RGB灯 |
---|---|
GND | GND |
9 | R |
10 | G |
6 | B |
2.烧录代码
#include<IRremote.h>
const int irReceiverPin = 7;
const int rPin = 9;
const int gPin = 10;
const int bPin = 6;
int r;
int b;
int g;
IRrecv irrecv(irReceiverPin);
decode_results results;
void setup() {
pinMode(rPin, OUTPUT);
pinMode(gPin, OUTPUT);
pinMode(bPin, OUTPUT);
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop() {
if (irrecv.decode(&results))
{
Serial.print("irCode:");
Serial.print(results.value, HEX);
Serial.print(",bits:");
irrecv.resume();
}
delay(300);
if (results.value)
{
if (results.value == 0xFFE21D)
{
r = 128;
analogWrite(rPin, g);
}
if (results.value == 0xFFC23D)
{
g = 128;
analogWrite(gPin, g);
}
if (results.value == 0xFF906F)
{
b = 128;
analogWrite(bPin, b);
}
}
if (results.value == 0xFF6897)
{
analogWrite(rPin, 0);
analogWrite(gPin, 0);
analogWrite(bPin, 0);
}
}
3.实验现象
遥控器按CH+键一次显示红灯再按一次关闭,按▷║键一次显示绿灯再按一次关闭,按EQ键显示蓝灯再按一次关闭,按0键关闭灯光。