使用Arduino IDE驱动esp8266控制两个舵机和一共红外线的代码
以下是使用Arduino IDE驱动esp8266控制两个舵机和一共红外线的示例代码:
#include <Servo.h>
#include <IRremoteESP8266.h>
#include <IRrecv.h>
#include <IRutils.h>
#define IR_PIN D1
#define SERVO_PIN_1 D2
#define SERVO_PIN_2 D3
Servo servo1;
Servo servo2;
IRrecv irrecv(IR_PIN);
decode_results results;
void setup() {
Serial.begin(115200);
irrecv.enableIRIn();
servo1.attach(SERVO_PIN_1);
servo2.attach(SERVO_PIN_2);
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
switch (results.value) {
case 0xFF30CF:
servo1.write(0);
servo2.write(0);
break;
case 0xFF18E7:
servo1.write(90);
servo2.write(90);
break;
case 0xFF7A85:
servo1.write(180);
servo2.write(180);
break;
default:
break;
}
irrecv.resume();
}
}
说明:
- 首先,我们需要引入一些库,包括Servo、IRremoteESP8266、IRrecv和IRutils。
- 然后,我们定义了一些常量,如红外线接收器的引脚、两个舵机的引脚等。
- 在setup函数中,我们初始化了串口和红外线接收器,并将两个舵机与对应的引脚连接。
- 在loop函数中,我们使用irrecv.decode函数来获取红外线信号。如果有信号,我们将其转换为16进制并打印出来。
- 根据不同的红外线信号,我们控制两个舵机的转动。例如,如果接收到红外线信号0xFF30CF,我们将两个舵机的角度都设置为0度。
- 最后,我们使用irrecv.resume函数来重置红外线接收器,以准备接收下一个信号。
原文地址: https://www.cveoy.top/t/topic/brjj 著作权归作者所有。请勿转载和采集!