以下是使用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函数来重置红外线接收器,以准备接收下一个信号。
使用Arduino IDE驱动esp8266控制两个舵机和一共红外线的代码

原文地址: https://www.cveoy.top/t/topic/brjj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录