Garland 发表于 2013-10-23 22:39:16

[新人求助]关于使用360度舵机的程序问题

因为各种原因,需要使用360度舵机来实现类似于步进电机的功能。
恩,说白了就是,想写个程序让360度舵机连续旋转。
不罗嗦,代码如下:
#include <Servo.h>

Servo myservo;// create servo object to control a servo
               

int pos = 0;   

void setup()
{
myservo.attach(9);
}

void loop()
{
for(pos = 0; pos < 360; pos += 1)
{                                 
    myservo.write(pos);            
    delay(25);                     
}
}
然后就说下问题了:
这个是给360舵机写的代码,烧进arduino后,舵机只是一顿一顿地转,
然后测试我的普通航模用9克舵机,把360换成180,表示正常工作,delay也能正常用。
360舵机是X宝上买的MG995。
arduino uno用的是5V,1A的外置电源,
求大神指点....................急用................
(PS:看过论坛里类似的帖子,表示没弄好..)

chaqing 发表于 2013-10-24 02:12:15

传说改了360度就不能顺利控制了

绿林网页 发表于 2013-10-24 08:06:57

本帖最后由 绿林网页 于 2013-10-24 08:08 编辑

360°舵机和180舵机是不一样的,和步进电机也不一样,是不能控制舵机角度的,只是控制正反转和转动速度~~
转:
360°舵机亦称伺服电机,他本身就是一个小的伺服系统,对输出的转速转角有着闭环调控作用,控制信号为50HZ的方波信号,当方波输出为1.5ms的方波时,电机不转,当大于1.5ms时,电机正转,反之,相反,而且当给定信号的脉冲宽度与1.5ms之差越大,其转速越大,二者有近似的线性关系

Garland 发表于 2013-10-24 13:42:20

绿林网页 发表于 2013-10-24 08:06 static/image/common/back.gif
360°舵机和180舵机是不一样的,和步进电机也不一样,是不能控制舵机角度的,只是控制正反转和转动速度~~
...

那这个程序应该怎样写呢?新人表示压力山大....

隨風大俠 发表于 2013-10-24 22:31:57

舵機型號是??
這個程式不難寫,如下:#include <Servo.h>
Servo myservo;// create servo object to control a servo

void setup()
{
myservo.attach(9);
}

void loop()
{                                 
    myservo.write(180);                                 

}360度旋轉的伺服馬達不用累加角度,所以只用給一個定值就好,角度值影響的是轉速快慢與正轉反轉。

Garland 发表于 2013-10-26 16:00:24

TTTTTTT33 发表于 2013-10-24 22:31 static/image/common/back.gif
舵機型號是??
這個程式不難寫,如下:360度旋轉的伺服馬達不用累加角度,所以只用給一個定值就好,角度值影 ...

表示这个样子还是不行,他也是一顿一顿地转,然后试了下传统的PWM控制
void setup()
{
pinMode(13, OUTPUT);//设定13号端口为输出
}

void loop()
{
digitalWrite(13, HIGH);
delayMicroseconds(100); // 大约10%占空比的1KHz方波
digitalWrite(13, LOW);
delayMicroseconds(900);
}

这个是可以的 然后就是不明白这样子的缺点 意思是CPU在处理中断的时候无法处理其他事情了比如我在loop里面写一个超声波测距的程序是不是就工作不了了

爱的步伐XY 发表于 2013-10-26 16:45:27

同求。。。。。如何利用arduino控制360度舵机啊????

Garland 发表于 2013-10-26 19:18:33

爱的步伐XY 发表于 2013-10-26 16:45 static/image/common/back.gif
同求。。。。。如何利用arduino控制360度舵机啊????

见楼上表示这个可以用但是这样子arduino貌似就只能控制舵机了 我也写超声波程序不能用.............

胡来猫 发表于 2015-6-8 00:02:53

小伙,别忘了, myservo.write(x)函数的x只能是0到180度,所以说360是么没用的,x为180是360度舵机反转速度最快的值,你把 for(pos = 0; pos < 360; pos += 1) 这句去掉,myservo.write(pos); 中pos直接填0到180,注意了,对于360舵机,0到180就不是角度了而是速度。试试吧,小伙

afei420 发表于 2015-7-14 08:09:05

不知道楼主是不是还纠结这个问题。我说说我的发现吧,我用跟楼主差不多的程序去驱动360舵机,使用2560的arduino,现象跟楼主一样。换了UNO之后,完全就是连续旋转了。
页: [1]
查看完整版本: [新人求助]关于使用360度舵机的程序问题