红外控制LED灯闪烁无法实现
#include <IRremote.h>int RECV_PIN = 12; // 红外线接收端
int ledPin1 = 11; // FRONT LIGHT
int ledPin2 = 10; // REAR LIGHT
int ledPin3 = 9; // LEFT LIGHT
int ledPin4 = 8; // RIGHT LIGHT
boolean ledState1 = LOW; // ledstate用来存储LED的状态
char ledState2 = 1; // ledstate用来存储LED2的状态
boolean ledState3 = LOW; // ledstate用来存储LED3的状态
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup(){
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(ledPin1,OUTPUT); // 设置LED为输出状态
pinMode(ledPin2,OUTPUT); // 设置LED为输出状态
pinMode(ledPin3,OUTPUT); // 设置LED为输出状态
pinMode(ledPin4,OUTPUT); // 设置LED为输出状态
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
irrecv.resume();
//一旦接收到电源键的代码, LED翻转状态,HIGH变LOW,或者LOW变HIGH
if(results.value == 0X1AF7680B){
ledState1 = !ledState1; //取反
digitalWrite(ledPin1,ledState1); //改变LED相应状态
digitalWrite(ledPin2,ledState1);
}
if(results.value == 0X291C5DEF &ledState2 == 1){
void blink1();
ledState2 = 0;
}
else if(results.value == 0X291C5DEF &ledState2 == 0) {
digitalWrite(ledPin3,LOW);
ledState2 = 1;
}
}
if(results.value == 0X969C0F8B){
ledState3 = !ledState3; //取反
blink2();
}
}
void blink1()
{
digitalWrite(ledPin3,HIGH); // led引脚置高电平
delay(500); // 延时1秒
digitalWrite(ledPin3,LOW); // led引脚变为低电平
delay(500);
}
照着网上的程序修改后,其中标红色部分无法实现,想的是摁一下LED开始闪烁,再摁一下灭。现在是摁一下LED只亮一下,再摁一下没有变化,再摁又继续亮一下。望请各位大神指点,谢谢
有没有报错,在arduino里
页:
[1]