查看: 611|回复: 6

[已解决] 请教一个舵机的问题

[复制链接]

该用户从未签到

发表于 2021-6-12 12:27 | 显示全部楼层 |阅读模式
本帖最后由 Xiazi 于 2021-6-24 16:16 编辑

我在尝试使用NodeMCU开发板控制舵机的旋转,但在旋转时发现角度并没有达到预期角度,例如我的代码要求旋转180度,然而实际上舵机只旋转了大约90度。但是同样的代码在Arduino下测试,舵机的旋转却是正常的。
  1. #include <Servo.h>

  2. Servo myServo;  // 定义Servo对象来控制
  3. void setup() {
  4.   myServo.attach(D6);   
  5. }

  6. void loop() {
  7.   myServo.write(0);              // 舵机角度写入
  8.   delay(1000);
  9.   myServo.write(180);              // 舵机角度写入
  10.   delay(1000);            
  11. }
复制代码

签到天数: 19 天

[LV.4]偶尔看看III

发表于 2021-6-13 23:46 | 显示全部楼层
可以试试myServo.writeMicroseconds()
参数是高电平持续的微秒数

该用户从未签到

发表于 2021-6-12 16:18 | 显示全部楼层
尝试用pwm值控制

签到天数: 67 天

[LV.6]常住居民II

发表于 2021-6-14 09:49 | 显示全部楼层
换个好点的数字舵机就行了

该用户从未签到

 楼主| 发表于 2021-6-22 14:51 | 显示全部楼层
frankhan747 发表于 2021-6-13 23:46
可以试试myServo.writeMicroseconds()
参数是高电平持续的微秒数

QQ截图20210622144754.png 这是我舵机的资料,如果我使用myServo.writeMicroseconds(2500),就可以让舵机旋转至90°吗?

点评

是的,2500微秒即2.5ms,舵机转到最右边的止动位  发表于 2021-6-22 16:49

该用户从未签到

发表于 2021-6-26 17:23 | 显示全部楼层
找到你编译的Servo的库的头文件servo.h, 看一下里面以下两个参数的设置,如果是以下的值,就可以180度旋转
#define MIN_PULSE_WIDTH       544     // the shortest pulse sent to a servo  
#define MAX_PULSE_WIDTH      2400     // the longest pulse sent to a servo

如果是1000,2000就不行,改myServo.writeMicroseconds()也不行
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

智能“百味”勺子开发实战营,为你的生活添滋味!
智能“百味”勺子开发实战
想不想拥有一把神奇的“百味”勺子,把索然无味的食物变出酸甜苦辣咸的丰富滋味
20sffactory 三自由度3D打印机械手臂 - 高速移动
20sffactory 三自由度3D打
这款机械臂作者没有给他起名字,用作者的名字来命名. 目前为止,生态最好,做的最完
多位数码管显示项目——以TM1650为例
多位数码管显示项目——以
以下是用搭载TM1650的4位数码管,显示电位器所代表0到1023的模拟信号数值 示意图:
新手小白付费拜师求教:TM1650四位时钟数码管的具体用法
新手小白付费拜师求教:TM
从淘宝购买的TM16504位数码管的时钟模块,卖家给了程序,但是完全不会用。求一位老师
【Arduino】168种传感器模块系列实验(76)---TTL转RS-485模块
【Arduino】168种传感器模
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表