|
红外遥控
Jan 27, 2021 6:14:39 GMT
Post by 邱老师 on Jan 27, 2021 6:14:39 GMT
#include <IRremote.h>
const int RECV_PIN = 9;//声明两个变量
const int LED_PIN = 13;
IRrecv irrecv(RECV_PIN);//声明一个接收对象
decode_results results; //声明一个存放结果的对象
void setup()
{
pinMode(LED_PIN, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
Serial.begin(9600);//设置窜口的工作频率
irrecv.enableIRIn(); // 运行接收对象的工作方法,即启动接收工作
}
void loop()
{
if (irrecv.decode(&results)) //如果接收对象转码接收的结果为真
{
Serial.println(results.value);//打印收接收到的数值
delay(300);//可以减少误操作,使发送的数据比较准确
if ( results.bits > 0 )//如果结果的长度大于0
{
if ( 83573445 == results.value )
{
Serial.println("red");
digitalWrite( LED_PIN, HIGH ); //写D13口高电平
delay(1000);
digitalWrite( LED_PIN, LOW ); //写13口低电平
}
if ( 83606085 == results.value )
{
Serial.println("green");
digitalWrite( 12, HIGH ); //写D12口高电平
delay(1000);
digitalWrite( 12, LOW ); //写12口低电平
}
if ( 83589765 == results.value )
{
Serial.println("yellow");
digitalWrite( 11, HIGH ); //写D11口高电平
delay(1000);
digitalWrite( 11, LOW ); //写11口低电平
}
}
irrecv.resume(); //重置接收对象,准备好接收下一个红外信号
}
}
|
|