STC89C52驱动舵机
需要什么?IO口输出的PWM波用不用放大?用不用驱动模块?(去哪里买)下载了很多程序单片机总是逆时针缓慢移动,我是新手求解...
需要什么?IO口输出的PWM波用不用放大?用不用驱动模块?(去哪里买)下载了很多程序单片机总是逆时针缓慢移动,我是新手求解
展开
1个回答
展开全部
非常非常简单...
你会用C编写延时程序吗?比如延时1ms的,应该会吧。
然后你就用一个口输出,舵机的驱动跟脉冲时间有关,0.5,1,1.5,2,2.5毫秒的高电平,可以使舵机转-90,-45,0,45,90五种角度。
只要没有新的脉冲出现,舵机将保持现有的角度。
然后就简单了,
首先改写1ms延时程序,把循环值减少到一半,
然后直接从IO口出高电平信号,比如
sbit key=P1^0 //P1.0输出舵机驱动
延时程序是
void delay05ms(ulong t)
......
你就很简单的
key=1;
delay05ms(1);//转到-90度。
key=0;
delay05ms(1000);//少许延时0.5秒,让舵机旋转到位。
改变括号中的数值,可以改变舵机的转角。数值大小是1-5.
步进电机麻烦一些,要根据相序来,两相四拍,三相六拍,四相八拍都不一样。
根据步进电机的相序表,通过IO口逐个输出相序,然后循环,就可以使电机转起来了。总体难度也不是很大。
请采纳答案,支持我一下。
你会用C编写延时程序吗?比如延时1ms的,应该会吧。
然后你就用一个口输出,舵机的驱动跟脉冲时间有关,0.5,1,1.5,2,2.5毫秒的高电平,可以使舵机转-90,-45,0,45,90五种角度。
只要没有新的脉冲出现,舵机将保持现有的角度。
然后就简单了,
首先改写1ms延时程序,把循环值减少到一半,
然后直接从IO口出高电平信号,比如
sbit key=P1^0 //P1.0输出舵机驱动
延时程序是
void delay05ms(ulong t)
......
你就很简单的
key=1;
delay05ms(1);//转到-90度。
key=0;
delay05ms(1000);//少许延时0.5秒,让舵机旋转到位。
改变括号中的数值,可以改变舵机的转角。数值大小是1-5.
步进电机麻烦一些,要根据相序来,两相四拍,三相六拍,四相八拍都不一样。
根据步进电机的相序表,通过IO口逐个输出相序,然后循环,就可以使电机转起来了。总体难度也不是很大。
请采纳答案,支持我一下。
追问
能给出具体程序么?我看你这个好像没用到定时器什么的…
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询