打算用arduino编写用红外遥控器控制小风扇的速度,代码如下:
#include<IRremote.h>
#include<Servo.h>
boolean a = false;
int b = 255;
Servo servo;
IRrecv irRecv(12);
decode_results results;
void setup(){
servo.attach(9);
servo.write(90);
irRecv.enableIRIn();
Serial.begin(9600);
}
void loop(){
if(irRecv.decode(&results))
{
Serial.println(results.value,HEX);
switch(results.value){
case 0xFFC23D:{
if (a == false){
a = true;
}
else{
a = false;
}
}
break;
case 0xFF22DD:{
b = b - 5;
if (b <= 50){
b = 50;
}
}
break;
case 0xFF02FD:{
b = b + 5;
if(b >= 255){
b = 255;
}
}
break;
case 0xFFE01F:{
servo.write(180);
}
break;
case 0xFFA857:{
servo.write(0);
}
}
if(a == false){
analogWrite(11,255);
analogWrite(3,b);
}
else{
analogWrite(11,0);
analogWrite(3,0);
}
irRecv.resume();
}
}
并未出现语法错误,却不能达到调速效果:按减速键却自动停止运行;无法加速
这是怎么回事?各位能帮忙解决吗?请在评论区发出正确代码或改错方法,谢谢