Romeo V2 控制步进电机
2014-03-122.1万
AI 快速预览详细
本文介绍了如何通过改进的Arduino库来控制Romeo V2上的步进电机。该库不仅支持速度控制,还支持力矩控制,从而避免了因PWM波频率过低导致的失步问题。文章详细说明了如何创建类实例、设置速度和力矩,并提供了完整的代码示例。硬件清单包括Romeo V2、步进电机(42BYGH40-170-4A)和其他必要的连接线。
|
原文作者:小乔帮主Angelo 原载于:DFRobot 我们可以直接使用Arduino的库让Romeo控制直流电机。但是如果没有编码器,就无法精确的控制直流电机。而步进电机很好的解决了这个问题,但是遗憾的是Arduino的步进电机的库在Romeo上并不兼容。最近我改进了这个库,让它不仅可以控制速度,同时还可以控制步进电机的力矩, 这样你就不用再买一个步进电机控制器了。 在测试这个库时,我发现,由于用analogWrite函数生成的PWM波的频率太小了,很容易使步进电机失步。为了解决这个问题,我改变了计时器的分频模式这决定了这个库只适用于Romeo V2或以上版本。但如果你熟悉AVR单片机,你也可以对他进行修改。 通常每个步进电机需要四根线连接,但实际上由于两根线上的电压始终是反向的,可以使用两根线代替,而另外的两根线则可以用来控制电机的力矩. 这个库非常好用: 1. 建立一个类的实体: 第一个变量是电机旋转一圈的步数. 其他的则是在Romeo上的输出管教 2.设置步进电机的速度,单位为"转/分钟": 200转/分钟对于这个电机来说相对较大,如果再大的话可能使力矩变小,导致失步 3.设置步进电机的力矩: 170是这个电机的默认值. 可以设置成100到180,这两个极限值可以在.h文件中自己定义,使得力矩处在一个比较合理的范围内. 如果你使用的是其他的电机, 你可以自己定义它. 4.运转电机: 电机会向前走1000步,然后停止,之后反转1000步. 注意当电机停止时,电机还在工作,线圈里面的电流会达到最大值,因此在这种情况下我们减小了pwm波的占空比,以防损害电机.你也可以自己在.h文件中修改. 硬件列表: ![]() ![]() 代码: |






也就是说 Romeo V2有的功能 Romeo BLE都有吗?
当时写文章的时候还没有步进电机驱动~
现在已经有了哦~ 斩波恒流方案控制扭力,给力多了~~[table]
[tr][/tr]
[/table]
步进电机驱动扩展板
[tr][/tr]
[/table]