#include <IRremote.h> // IRremote库声明
#include <Servo.h>
#include <SoftwareSerial.h>
int RECV_PIN = 9; //定义红外接收器的引脚为11
SoftwareSerial BT(10, 11);
char val = '0';
//short flag = 0;
IRrecv irrecv(RECV_PIN);
decode_results results;
Servo myservo; // create servo object to control a servo
void setup()
{
// pinMode(4,OUTPUT);
myservo.attach(5); // (pin, min, max)
Serial.begin(9600);
irrecv.enableIRIn(); // 启动接收器
Serial.println("BT is ready!");
BT.begin(9600);
}
void my(int flag){
if (flag == 1) {
// digitalWrite(4,HIGH);
myservo.write(150);
delay(100);
}
else if (flag == 2) {
// digitalWrite(4,LOW);
myservo.write(80);
delay(100);
}
}
void loop() {
if (BT.available()) {
val = BT.read();
Serial.print(val);
if (val == '1') {
my(1);
}
else if (val == '2') {
my(2);
}
}
else if (irrecv.decode(&results))
{
Serial.println(results.value);
switch (results.value){
case 3810010651:
my(1);
break;
case 4001918335:
my(2);
break;
}
delay(100);
irrecv.resume();
delay(100);
}
}
我想问一下为啥我用红外线信号控制舵机,开关一两次后,串口这里就会输出很多的信号,
但是我也没有输入信号,也不知到哪儿来的,然后我遥控输入红外信号也不会有显示,导致不能控制了。
希望有一个解决办法,谢谢大佬。
|