首页 > 编程知识 正文

舵机内部结构图,泵控型液压舵机工作原理

时间:2023-05-04 13:37:36 阅读:132601 作者:3231

舵机可以实时控制角度,广泛应用于航空模型、云台等需要控制角度的场合

舵机的工作原理:

pwm波进入内部电路后产生偏置电压,触发电机通过减速齿轮带动电位器,使电压差为零后电机停止,获得伺服效果。

舵机PWM的协议都一样,但最新的舵机可能不同

协议一般为:

高水平宽度为0.5ms~2.5ms,控制舵机旋转角度

例如,一个模型可能如下所示:

对于不同的型号,可以搜索相关舵机文档

分析:

在此,以工作频率为50HZ、即周期为20MS的futaba s3003舵机和51单片机为主控芯片进行详细的程序编制分析。

由上图可见,不同幅度的脉冲可以产生不同角度的输出,利用定时器和IO端口模拟产生PWM波,通过定时控制占空比可以达到角度控制。 理论上计算51可以输出us电平的脉冲,180/2000us=0.09可以输出0.1左右的精度。 (

代码:

以下是我写的9步程序,在实际测试中只有效16次。 我的计时器溢出了0.1ms,所以我想程序运行需要时间。

# includereg 52.hunsignedcharcount; //0.5ms次数标记sbit pwm=P1^0; //PWM信号输出sbit jia=P2^2; //角度增加按钮检测IO端口sbit jan=P2^1; //角度减少按钮检测IO端口unsigned char jd; //角度标识voiddelay(unsignedcharI )//延迟) { unsignedchar j,k; for(j=I; j0; j-- ) for(k=125; k0; k----; }void Time0_Init ()//计时器初始化) {TMOD=0x01; //计时器0以方式1 IE=0x82操作; th0=(65536-92 )/256; TL0=(65536-92 ) %6; //11.0592MZ水晶振动,0.1ms TR0=1; //计时器启动}voidtime0_int(interrupt1//中断程序(th0=(65536-92 )/256; //TL0=(65536-92 ) %6; 判断if(countJD ) 0.1ms的次数是否小于角度标识pwm=1; //确实小于,PWM输出高电平else pwm=0; 大于//时输出低电平count=(count1); //0.1ms次数加1 count=count 0; //次数始终保持200,即保持周期为20ms(voidkeyscan )//键扫描({ //P2=0; 是否按下if(JIA==0)//角度增加按钮(delay ) 10 ); 按//延迟,消除抖动if(JIA==0)//确定) JD; //角度标记加1计数=0; 按下//按钮则以20ms周期重新输入if(JD==26 ) jd=25; //已经180度,保持while (Jia==0); 等待释放//按钮} } //P2=0; if(Jan==0)//是否按下了角度减少按钮) delay(10 ); if(Jan==0) JD----; //角度标记负1计数=0; if(JD==4) jd=5; //如果已经是0度,则保持while (Jan==0); (} } //P0=0; //jia=0; //jan=0; }void main () {//jia=0; //jan=0; jd=13; 计数=0; Time0_Init (; wile(1) { keyscan ); //键扫描}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。