给段伪代码吧
int main(){
初始化 src_angle_A, dst_angle_A
初始化 src_angle_B, dst_angle_B
初始化 src_angle_C, dst_angle_C
初始化 src_angle_D, dst_angle_D
int A_flag = 0
int B_flag = 0
int CD_flag = 0
while (1)
{
if (key1_down())
{
if (A_flag == 0)
{
set_angle_A(dst_angle_A)
}
else
{
set_angle_A(src_angle_A)
}
A_flag = 1-A_flag
}
if (key2_down())
{
if (B_flag == 0)
{
set_angle_B(dst_angle_B)
}
else
{
set_angle_B(src_angle_B)
}
B_flag = 1-B_flag
}
if (key3_down())
{
if (CD_flag == 0)
{
set_angle_C(dst_angle_C)
set_angle_D(dst_angle_D)
}
else
{
set_angle_C(src_angle_C)
set_angle_D(src_angle_D)
}
CD_flag = 1-CD_flag
}
delay_ms(10)
}
return 0
}
180度舵机是一特殊的机器人专用舵机。你所说的0-180度,在专业玩家里不这样说的,而是说成±90度。即顺时针90度,逆时针90度。你可以自己写一个的。这种舵机比较特殊,但是只要满足一下PWM就可以实现了:
1. 周期T=20ms(即50HZ),占空比500us-2500us。
2. 500us舵机逆时针转90度,2500us舵机顺时针转90读。 (其中0度是1500us)
3. 即: TL+TH=20ms 改变TH的值,舵机角度随之改变。参数参照以上1.2点。
TL TH
_____ ____
_________| |_________|| _________|
4. 电路原理很简单,接好电源,地,信号线。
信号线接到单片机或者其他能输出PWM的控制脚。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)