请教一个舵机的问题-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3838|回复: 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. }
复制代码
发表于 2021-6-13 23:46 | 显示全部楼层
可以试试myServo.writeMicroseconds()
参数是高电平持续的微秒数
发表于 2021-6-12 16:18 | 显示全部楼层
尝试用pwm值控制
发表于 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()也不行
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-29 04:52 , Processed in 0.082200 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表