2014-3-12 15:55:11 [显示全部楼层]
12950浏览
查看: 12950|回复: 6

[求助] Romeo V2 控制步进电机

[复制链接]
原文作者:小乔帮主Angelo 原载于:DFRobot


我们可以直接使用Arduino的库让Romeo控制直流电机。但是如果没有编码器,就无法精确的控制直流电机。而步进电机很好的解决了这个问题,但是遗憾的是Arduino的步进电机的库在Romeo上并不兼容。最近我改进了这个库,让它不仅可以控制速度,同时还可以控制步进电机的力矩, 这样你就不用再买一个步进电机控制器了。

在测试这个库时,我发现,由于用analogWrite函数生成的PWM波的频率太小了,很容易使步进电机失步。为了解决这个问题,我改变了计时器的分频模式这决定了这个库只适用于Romeo V2或以上版本。但如果你熟悉AVR单片机,你也可以对他进行修改。

通常每个步进电机需要四根线连接,但实际上由于两根线上的电压始终是反向的,可以使用两根线代替,而另外的两根线则可以用来控制电机的力矩.

这个库非常好用:

1. 建立一个类的实体:
  1. Stepper_Romeo myStepper(200,7,6,4,5);
复制代码


第一个变量是电机旋转一圈的步数. 其他的则是在Romeo上的输出管教

2.设置步进电机的速度,单位为"转/分钟":
  1. myStepper.setSpeed(200);
复制代码


200转/分钟对于这个电机来说相对较大,如果再大的话可能使力矩变小,导致失步

3.设置步进电机的力矩:
  1. myStepper.setTorque(170);
复制代码


170是这个电机的默认值. 可以设置成100到180,这两个极限值可以在.h文件中自己定义,使得力矩处在一个比较合理的范围内. 如果你使用的是其他的电机, 你可以自己定义它.

4.运转电机:
  1. myStepper.step(1000);
  2. delay(1000);
  3. myStepper.step(-1000);
复制代码


电机会向前走1000步,然后停止,之后反转1000步. 注意当电机停止时,电机还在工作,线圈里面的电流会达到最大值,因此在这种情况下我们减小了pwm波的占空比,以防损害电机.你也可以自己在.h文件中修改.

硬件列表:
Romeo V2 控制步进电机图1
Romeo V2 控制步进电机图2
代码:
  1. #include "Stepper_Romeo.h"
  2. //init
  3. Stepper_Romeo myStepper(200,7,6,4,5);
  4. void setup()
  5. {
  6. }
  7. void loop()
  8. {
  9. //set speed
  10. myStepper.setSpeed(200);
  11. //set the torque of the stepper
  12. myStepper.setTorque(170);
  13. //REV 1000 steps
  14. myStepper.step(1000);
  15. //delay 1 second
  16. delay(1000);
  17. //FWD 1000 steps
  18. myStepper.step(-1000);
  19. //delay 1 second
  20. delay(1000);
  21. //stop the stepper without torque
  22. myStepper.stop();
  23. //delay 1 second
  24. delay(1000);
  25. }
复制代码


Angelo  初级技匠

发表于 2014-3-13 12:53:20

哈哈哈,这篇文章我写滴~~来收版权费啦~~~:lol

回复

使用道具 举报

Ash  管理员
 楼主|

发表于 2014-3-13 13:48:19

Angelo 发表于 2014-3-13 12:53
哈哈哈,这篇文章我写滴~~来收版权费啦~~~

啥 去给你署个名 你不会也要50刀吧 {:3_59:}
回复

使用道具 举报

Holiday  初级技匠

发表于 2014-3-17 10:36:59

原文作者:小乔帮主Angelo    这个名字好听{:3_48:}
回复

使用道具 举报

Angelo  初级技匠

发表于 2014-3-19 12:05:32

Holiday 发表于 2014-3-17 10:36
原文作者:小乔帮主Angelo    这个名字好听

额,这个名字把我所有的属性都挖掘出来了~~:lol

当时写文章的时候还没有步进电机驱动~
现在已经有了哦~ 斩波恒流方案控制扭力,给力多了~~
步进电机驱动扩展板
回复

使用道具 举报

robingao  见习技师

发表于 2015-6-20 16:00:11

本帖最后由 robingao 于 2015-6-20 16:01 编辑

Romeo BLE多合一控制器 可以用这个库吗,
也就是说 Romeo V2有的功能 Romeo BLE都有吗?
回复

使用道具 举报

Cain  初级技匠

发表于 2015-6-24 10:40:42

robingao 发表于 2015-6-20 16:00
Romeo BLE多合一控制器 可以用这个库吗,
也就是说 Romeo V2有的功能 Romeo BLE都有吗? ...

可以的,模块使用上是一样的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail