首页 > 其他分享 >arduino esp8266 舵机控制

arduino esp8266 舵机控制

时间:2024-02-15 18:33:45浏览次数:30  
标签:esp8266 舵机 void arduino delay ms D4 1000

舵机的控制:

舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms~2.5ms范围内的角度控制脉冲部分。以180度角度伺服为例,那么对应的控制关系是这样的:
0.5ms--------------0度;
1.0ms------------45度;
1.5ms------------90度;
2.0ms-----------135度;
2.5ms-----------180度;
这只是一种参考数值,具体的参数,请参见舵机的技术参数。

 

电路连接

这里要提别注意舵机应单独供电或者使用TTL 5V供电,不可使用ESP8266的Micro USB口供电,否则舵机无法正常运行.
舵机接线说明:
棕色:GND
红色:VCC
黄色:PWM信号线

线路连接:

红线连接vv

棕色连接G

黄色连接D4

请注意我们这边用到了servo库,请下载servo库后上传运行,否则会报错。

关于servo库详情,可以看这个Arduino servo库函数说明(舵机函数库)_arduino的servo函数-CSDN博客

以下是测试代码:

#include <Servo.h>  // 调用舵机库
Servo myservoD4;  // 定义舵机对象
void setup()
{
  myservoD4.attach(D4);  // 绑定需要控制的数字引脚对应ESP8266IO口D4
}
void loop()
{
    myservoD4.write(0);  // 控制舵机转动角度,参数是角度信息
    delay(1000);  // 延时1000毫秒
    myservoD4.write(90);
    delay(1000);  // 延时1000毫秒
      myservoD4.write(180);
    delay(1000);  // 延时1000毫秒
}

 参考:Arduino ESP8266控制SG90舵机输出PWM信号_esp8266 pwm-CSDN博客

 

 

手动实现 PWM 控制舵机

delay() 控制频率

void setup() {
  // put your setup code here, to run once:
  pinMode(D4, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(D4, HIGH);
  delay(2);
  digitalWrite(D4, LOW);
  delay(20 - 2);
}

 

通过 delayMicroseconds() 手动实现频率可调的 PWM,也被称作数字IO轮转法,使用方法:

两次的digitalWrite输出状态必须相反;
可以用delay()实现毫秒级延迟,用delayMicroseconds()实现微秒级延迟。

void setup() {
  // put your setup code here, to run once:
  pinMode(D4, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(D4, HIGH);
  delayMicroseconds(1000);
  digitalWrite(D4, LOW);
  delayMicroseconds(20000 - 1000);
  
}

参考: 第42期《Arduino入门》善假篇 05:舵机的PWM控制原理_哔哩哔哩_bilibili

 

标签:esp8266,舵机,void,arduino,delay,ms,D4,1000
From: https://www.cnblogs.com/lld76/p/18016435

相关文章

  • stm32 esp8266测试问题原因记录
    现象:连上WIFI但发送数据失败 原因:WIFI网络延时过大,或者程序设置的等待超时时间过小解法:换个网络延时小的WIFI连,或者增加程序等待超时的时间 现象:连不上WIFI 原因:esp8266_mqtt_init()中的的延迟过长,测试4S不行,要2S解法:将4秒延时改回2S1int32_tesp8266_mqtt_init(v......
  • Arduino - ESP8266和ESP32的I2C接口使用(超全)
    简介深入讲解I2C通信协议,以及,Arduino和ESP8266微控制器通过I2C连接设备需要哪些引脚、该通信协议的优缺点以及如何使用I2C多路复用器详解Arduino/ESP8266与其他设备通信,例如OLED显示器、气压传感器等,可以使用I2C通信协议。也可以使用两外两个通信协议:SPI和UARTI2C全称是Inte......
  • Arduino - 使用ESP32-CAM
    简介准备工作:Arduino+ESP32-CAMdemo实现:使用ESP32-CAM实现拍照和视频流Arduino+ESP32开发环境搭建官网下载Arduinohttps://www.arduino.cc/en/software(建议不要下载beta版,可能会有问题)如果官网太慢可以在这里下载[Arduino中文社区-PoweredbyDiscuz!](https://www.a......
  • Arduino - Arduino/AVR/8051 和 ARM/STM32
    8051,AVR和ARM架构80518051是由Intel于1980年代初推出的一款8位单片机。它的架构基于哈佛结构(分离的程序和数据存储器),并使用8位数据总线和16位地址总线。8051内核是一个8位CISC(复杂指令集计算机)处理器,具有不同的寻址模式和指令。该内核具有四个寄存器组、两个16位计数器/定时器、一......
  • Arduino - 使用ESP32-CAM
    简介准备工作:Arduino+ESP32-CAMdemo实现:使用ESP32-CAM实现拍照和视频流Arduino+ESP32开发环境搭建官网下载Arduinohttps://www.arduino.cc/en/software(建议不要下载beta版,可能会有问题)如果官网太慢可以在这里下载[Arduino中文社区-PoweredbyDiscuz!](https://www.a......
  • Arduino库 <TFT_eSPI> 中文字库的制作与使用
    原文:Arduino库<TFT_eSPI>中文字库的制作与使用_anullpfontwaspassedtotextfont()-CSDN博客作者学习自以下博客,经过验证,并重新整理了步骤。https://www.cnblogs.com/deng1821333144/p/15307883.html#_label2如有需要,请访问原文章进行查看。目录一、TFT_eSPI基础配置二、字......
  • esp8266 no matching function for call to 'Ticker::Ticker()'
    这个错误表明在尝试创建一个Ticker对象时,编译器找不到适合当前调用的构造函数。Ticker可能是Arduino框架中的一个类,用于处理定时事件。解决方法:确认你已经包含了正确的头文件。例如,对于ArduinoESP8266核心库,你需要包含Ticker.h#include<Ticker.h> 确认......
  • 【STM32使用Arduino编程0】Arduino_Core_STM32固件的安装和使用
    【STM32使用Arduino编程0】Arduino_Core_STM32固件的安装和使用对于STM32来说,使用Arduino编程可以大大降低编程难度,同时也可以使用Arduino的许多库。Arduino_Core_STM32介绍要使用Arduino对STM32进行编程需要使用相应的固件,目前官方的固件为Arduino_Core_STM32。对应的github......
  • ESP8266无线透传
    深入了解ESP8266WIFI模块的工作原理及特点---AT指令详解---透传概念----TCP和UDP的特点与区别-嵌入式软件面试常问ESP8266(二)---工作模式&AT指令玩转ESP8266-01——AT指令集ESP8266————AT指令+网络透传 voidUart_Isr()interrupt4//中断号4{ if(RI) { RI=0;//......
  • 点灯科技 + 小爱同学语音控制开关灯(WiFi版通信 、四路继电器、ESP8266)
    单个继电器效果图:哔哩哔哩四路继电器效果图:###ESP8266模块和单个继电器接线图![image](https://img2024.cnblogs.com/blog/1543371/202401/1543371-20240121124127193-1448865458.png)####可以参考csdnhttps://blog.csdn.net/weixin_51069271/article/details/12050......