使用 Arduino IDE 驱动 ESP8266 控制两个舵机和一个激光灯

本文将介绍如何使用 Arduino IDE 驱动 ESP8266 控制两个舵机和一个激光灯,并提供相应的代码、电路图和前端控制界面。

代码

#include <Servo.h> // 引入 Servo 库

Servo servo1; // 定义舵机1对象
Servo servo2; // 定义舵机2对象

int laserPin = 5; // 激光灯所连接的引脚

void setup() {
  // 初始化舵机
  servo1.attach(12); // 将舵机1连接到 ESP8266 的 D6 引脚
  servo2.attach(14); // 将舵机2连接到 ESP8266 的 D5 引脚

  // 初始化激光灯引脚
  pinMode(laserPin, OUTPUT);
}

void loop() {
  // 控制舵机1转动
  servo1.write(0); // 舵机1转到 0 度
  delay(1000); // 延迟 1 秒
  servo1.write(90); // 舵机1转到 90 度
  delay(1000); // 延迟 1 秒
  servo1.write(180); // 舵机1转到 180 度
  delay(1000); // 延迟 1 秒

  // 控制舵机2转动
  servo2.write(0); // 舵机2转到 0 度
  delay(1000); // 延迟 1 秒
  servo2.write(90); // 舵机2转到 90 度
  delay(1000); // 延迟 1 秒
  servo2.write(180); // 舵机2转到 180 度
  delay(1000); // 延迟 1 秒

  // 控制激光灯
  digitalWrite(laserPin, HIGH); // 打开激光灯
  delay(1000); // 延迟 1 秒
  digitalWrite(laserPin, LOW); // 关闭激光灯
  delay(1000); // 延迟 1 秒
}

前端代码

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>控制舵机和激光灯</title>
</head>

<body>
  <h1>控制舵机和激光灯</h1>
  
  <label for="servo1">舵机1:</label>
  <input type="range" min="0" max="180" value="90" id="servo1" onchange="setServo1(this.value)">
  <br>
  
  <label for="servo2">舵机2:</label>
  <input type="range" min="0" max="180" value="90" id="servo2" onchange="setServo2(this.value)">
  <br>
  
  <button onclick="turnOnLaser()">打开激光灯</button>
  <button onclick="turnOffLaser()">关闭激光灯</button>
  
  <script>
    function setServo1(angle) {
      var xhttp = new XMLHttpRequest();
      xhttp.open("GET", "set_servo1?angle=" + angle, true);
      xhttp.send();
    }
    
    function setServo2(angle) {
      var xhttp = new XMLHttpRequest();
      xhttp.open("GET", "set_servo2?angle=" + angle, true);
      xhttp.send();
    }
    
    function turnOnLaser() {
      var xhttp = new XMLHttpRequest();
      xhttp.open("GET", "turn_on_laser", true);
      xhttp.send();
    }
    
    function turnOffLaser() {
      var xhttp = new XMLHttpRequest();
      xhttp.open("GET", "turn_off_laser", true);
      xhttp.send();
    }
  </script>
</body>
</html>

电路图

image

在电路图中,D6 和 D5 分别连接到两个舵机的信号引脚,D1 连接到激光灯的正极,GND 连接到激光灯的负极。

说明

  • 代码中的 delay(1000) 表示延迟 1 秒。
  • 前端代码使用 XMLHttpRequest 对象发送 HTTP 请求到 ESP8266,控制舵机和激光灯。
  • 实际使用时,需要根据您的硬件配置修改代码和电路图。

总结

本文提供了一个使用 Arduino IDE 驱动 ESP8266 控制两个舵机和一个激光灯的示例,并给出了相应的代码、电路图和前端实现。您可以根据自己的需求进行修改和扩展,实现更复杂的控制功能。

Arduino ESP8266 控制舵机和激光灯:代码、电路图和前端实现

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

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