今天学习了一个红外线模块,红外线的按键都被定义为16进制的值,用这个值进行if分支语句执行,今天有好多不明白的,应该学学C语言,但是大家都说挺难的,但是不学C的写法,就不能改代码,尤其这个IDE编码时只是简单的报个错,错误在哪产生的不能直观的知道. 急需解决的问题 1 IRremote是什么 2 irrecv是个什么类 3 为什么要用results来接收值
#include <IRremote.h>
const int irReceiverPin =17;
const int led1Pin = 13;
const int led2Pin =25;
const int led3Pin = 26;
IRrecv irrecv(irReceiverPin);
decode_results results;
void setup()
{
Serial.begin(9600);
pinMode(led1Pin,OUTPUT);
pinMode(led2Pin, OUTPUT);
pinMode(led3Pin, OUTPUT);
irrecv.enableIRIn();
}
void loop()
{
if (irrecv.decode(&results))
{
Serial.print("irCode: ");
Serial.print(results.value, HEX);
Serial.print(", bits: ");
Serial.println(results.bits);
irrecv.resume();
Serial.print(results.value, HEX);
}
delay(600);
if(results.value == 0xFF6897)
{
digitalWrite(led1Pin,HIGH);
}
else if(results.value == 0xFF18E7)
{
digitalWrite(led2Pin,HIGH);
}
else if(results.value == 0xFF7A85)
{
digitalWrite(led3Pin,HIGH);
}
else
{
digitalWrite(led1Pin,LOW);
digitalWrite(led2Pin,LOW);
digitalWrite(led3Pin,LOW);
}
}
|