51单片机控制9g小舵机,转90度后再复位。求程序。

51单片机控制9g小舵机,转90度后再复位。求程序。,第1张

给你个思路

0-90度

1、IO输出高电平15ms

2、低电平输出185ms(周期20ms)

3、循环重复100次步骤1 2

90-0度

1、IO输出高电平05ms

2、低电平输出195ms(周期20ms)

3、循环重复100次步骤1 2

这个可以用三个I/o口,用定时器0分时启动三路PWM波,代码的话,每次中断给计数器赋下次中断的时间,void T0_time() interrupt 1 //通过定时器0产生多路PWM,每次中断赋值下一次中断的时间,

{ //两个t[]一组,在20ms周期内分时启动各路PWM高电平,

TH0=(65536-9216t[i])/256; //各路的高电平只需1-2ms

TL0=(65536-9216t[i])/256;

i++;

switch(i)

{

case 1:

k1=1;

break;

case 2:

k1=0;

break;

case 3:

k2=1;

break;

case 4:

k2=0;

break;

case 5:

k3=1;

break;

case 6:

k3=0;

break;

}

舵机控制要求的是一个周期20ms高电平1ms-2ms(也有说是05ms-2ms的 这个可以用信号发生器测出来)的pwm信号 高电平时间与转过的角度是成正比的 比如1ms是0度 2ms是180度 那么15ms就是(15ms-1ms)(180-0)=90度 37度所对应的高电平时间就是37/180(2ms-1ms)+1ms=121ms就行了

舵机是通过占空比,来控制它的旋转角度,控制信号从单片机输出之后,不能直接接舵机,因为功率不够,中间接一个非门就可以了。控制信号的编程应该来说是很简单的,就是总周期是固定的,角度不同,高电平的持续时间就不同,然后,比如,50的高电平,150的低电平,那么这样的周期要多少个呢,这也是一个问题,太少了,旋转时间不够,太多了,连续的角度变化的话就会不流畅。多尝试一下吧,还有,这种例子也很多,我们那个时候调了一星期才调好,单片机的型号,引脚关系大嘛?只要是通用的io口都可以用啊

以上就是关于51单片机控制9g小舵机,转90度后再复位。求程序。全部的内容,包括:51单片机控制9g小舵机,转90度后再复位。求程序。、用51单片机控制3路舵机、51单片机控制舵机,网上都是45度90度之类的,假如,我想控制37度,就是任意度数,怎么办程序怎么弄等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9301399.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存