用esp8266写一段,按下按钮舵机转,转到180度回,回到0度继续转,松开按钮舵机停止
时间: 2023-06-24 22:08:56 浏览: 57
下面是一段基于ESP8266的代码,实现了按下按钮舵机转动的功能:
```C++
#include <Servo.h>
Servo myservo; // 创建舵机对象
int pos = 0; // 舵机当前位置
int buttonPin = 2; // 按钮引脚
int buttonState = 0; // 按钮状态
void setup() {
myservo.attach(5); // 将舵机连接到 ESP8266 的引脚 5
pinMode(buttonPin, INPUT_PULLUP); // 将按钮引脚设置为输入模式,并启用内部上拉电阻
}
void loop() {
buttonState = digitalRead(buttonPin); // 读取按钮状态
if (buttonState == LOW) { // 如果按钮被按下
for (pos = 0; pos <= 180; pos += 1) { // 将舵机转到 180 度
myservo.write(pos);
delay(15);
}
for (pos = 180; pos >= 0; pos -= 1) { // 将舵机转回 0 度
myservo.write(pos);
delay(15);
}
} else { // 如果按钮没有被按下,则将舵机停止在当前位置
myservo.detach();
}
}
```
这段代码首先创建了一个 `Servo` 对象,并将舵机连接到了 ESP8266 的引脚 5 上。接着在 `setup()` 函数中将按钮引脚设置为输入模式,并启用了内部上拉电阻。在 `loop()` 函数中,我们首先读取按钮的状态,如果按钮被按下,则将舵机从当前位置转到 180 度,然后再转回 0 度;如果按钮没有被按下,则将舵机停止在当前位置。注意,在每个角度的转动时,我们都使用了 `delay()` 函数来让舵机缓慢转动,避免过快造成的损坏。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)