51单片机驱动舵机,舵机控制程序的问题。 把程序写到单片机驱动舵机里,只能感觉到舵机在轻微震动的,但是舵机却没有转。

利用单片机PWM信号进行舵机控制(附图)_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
利用单片机PWM信号进行舵机控制(附图)
上传于||文档简介
&&利​用​单​片​机​P​W​M​信​号​进​行​舵​机​控​制​(​附​图​)
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
下载文档到电脑,查找使用更方便
还剩5页未读,继续阅读
你可能喜欢基于51单片机的舵机控制原理_百度文库
基于51单片机的舵机控制原理
网络上流行的对舵机的误解文章太多太多!而且很怪异的是——很多主流的意识是错误的!!!
下面这篇文章,我大致看过,是符合科学原理的,想学习知识的可以看看。
注意吸收知识,要由根本上去分析,而不是以讹传讹!否则你必定就象很多人一样去坚守“数码舵机比模拟舵机快”这个完全错误的观点,呵呵,那会被真正掌握知识的人暗地里面耻笑的
数码舵机常见问题原理分析及解决:
一、数码舵机与模拟舵机的区别
传统模拟舵机和数字比例舵机(或称之为标准舵机)的电子电路中无MCU微控制器,一般都称之为模拟舵机。老式模拟舵机由功率运算放大器等接成惠斯登电桥,根据接收到模拟电压控制指令和机械连动位置传感器(电位器)反馈电压之间比较产生的差分电压,驱动有刷直流电机伺服电机正/反运转到指定位置。数字比例舵机是模拟舵机最好的类型,由直流伺服电机、直流伺服电机控制器集成电路(IC),减速齿轮组和反馈电位器组成,它由直流伺服电机控制芯片直接接收PWM(脉冲方波,一般周期为20ms,脉宽1~2 ms,脉宽1 ms为上限位置,1.5ms为中位,2ms为下限位置)形式的控制驱动信号,迅速驱动电机执行位置输出,直至直流伺服电机控制芯片检测到位置输出连动电位器送来的反馈电压与PWM控制驱动信号的平均有效电压相等,停止电机,完成位置输出。
数码舵机电子电路中带MCU微控制器故俗称为数码舵机,数码舵机凭借比之模拟舵机具有反应速度更快,无反应区范围小,定位精度高,抗干扰能力强等优势已逐渐取代模拟舵机在机器人、航模中得到广泛应用。
数码舵机设计方案一般有两种:一种是MCU+直流伺服电机+直流伺服电机控制器集成电路(IC)+减速齿轮组+反馈电位器的方案,以下称为方案1,另一种是MCU+直流伺服电机+减速齿轮组+反馈电位器的方案,以下称为方案2。市面上加装数码驱动板把模拟舵机改数码舵机属方案1。
二、舵机电机调速原理及如何加快电机速度
常见舵机电机一般都为永磁直流电动机,如直流有刷空心杯电机。直流电动机有线形的转速-转矩特性和转矩-电流特性,可控性好,驱动和控制电路简单,驱动控制有电流控制模式和电压控制两种模式。舵机电机控制实行的是电压控制模式,即转速与所施加电压成正比,驱动是由四个功率开关组成H桥电路的双极性驱动方式,运用脉冲宽度调制(PWM)技术调节供给直流电动机的电压大小和极性,实现对电动机的速度和旋转方向(正/反转)的控制。电机的速度取决于施加到在电机平均电压大小,即取决于PWM驱动波形占空比(占空比为脉宽/周期的百分比)的大小,加大占空比,电机加速,减少占空比电机减速。
所以要加快电机速度:1、加大电机工作电压;2、降低电机主回路阻值,加大电流;二者在舵机设计中要实现,均涉及在满足负载转矩要求情况下重新选择舵机电机。
三、数码舵机的反应速度为何比模拟舵机快
很多模友错误以为:“数码舵机的PWM驱动频率300Hz比模拟舵机的50Hz高6倍,则舵机电机转速快6倍,所以数码舵机的反应速度就比模拟舵机快6倍” 。这里请大家注意占空比的概念,脉宽为每周期有效电平时间,占空比为脉宽/周期的百分比,所以大小与频率无关。占空比决定施加在电机上的电压,在负载转矩不变时,就决定电机转速,与PWM的频率无关。
模拟舵机是直流伺服电机控制器芯片一般只能接收50Hz频率(周期20ms)~300Hz左右的PWM外部控制信号,太高的频率就无法正常工作了。若PWM外部控制信号为50Hz,则直流伺服电机控制器芯片获得位置信息的分辨时间就是20ms,比较PWM控制信号正比的电压与反馈电位器电压得出差值,该差值经脉宽扩展(占空比改变,改变大小正比于差值)后
贡献者:LINBINCC
喜欢此文档的还喜欢51单片机超高精度6路舵机控制程序_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
51单片机超高精度6路舵机控制程序
上传于||暂无简介
阅读已结束,如果下载本文需要使用3下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩1页未读,继续阅读
你可能喜欢51单片机舵机控制,出问题了!请帮我看看_百度知道
51单片机舵机控制,出问题了!请帮我看看
LCD_Write_String(0;
TL1=0x00!OUT1,0);5void Init_Timer0(void){
TMOD=0x11,0;
if(num==123)
DataPro(1500;i++)
num1=ReadADC(1),DisTempData);S=%4;
TL_L=(45536+temp)%256,num1);
TRIG=0; Init_Timer0();
if(num==0)
DataPro();
TL0=0x00,x=0;
LCD_fenjie(3;}main(){ u8 num=0;
sprintf(DisTempD
while(,为什么啊!ECHO);
TL0=TL_H;58!OUT2;
TH1=0x00;i& DelayMs(20);
TH_L=(45536+temp)&#47,舵机就是正常的;
TL1=0,num);5;
x=0,S),1);256,&quot,1); DataPro(1500;
for(i=0,1,加了超声波;
if(num1==131)
DataPro(1500,u8 add){
LCD_fenjie(10;
TL_H=(65536-temp)%256,1);
if(num==255)
DataPro(450;i++)
num=ReadADC(0); DelayMs(20); DataPro(1500,0;}void DataPro(u16i&
}}void chao_sheng_bo(){
TR1=0; DelayMs(20); }}字多了放不下,num1=0;
while(ECHO);
TH_H=(65536-temp)/256; DelayMs(20); } if(Flag==0) {
chao_sheng_bo();
TH0=TH_H;,只要不加超声波模块,temp=1500;}void Timer0_isr(void) interrupt 1{
if(Flag==1) {
S=TH1*256+TL1; LCD_setup();
if(num1==0)
DataPro(2000;
if(num1==255)
DataPro(1000;while (1)
x++,1).1f CM
&quot,等一会儿舵机就没反应了;
Delayus();
提问者采纳
检查1 超声波单独是否能正常测回来数据2 加上超声波后测量电压是否正常3 智能小车在运行中是否程序停在某个地方。
延时函数也用不到,
如果单独测量都是正常的,那就把用到的函数屏蔽了(除了控制舵机的程序),看看哪里出问题了,以后遇到出问题的地方也是这样,通过屏蔽函数来看问题 出在哪个地方。
提问者评价
其他类似问题
为您推荐:
51单片机的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁大家来帮我看看51控制舵机的问题,它怎么就转不对(有程... - 单片机论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
大家来帮我看看51控制舵机的问题,它怎么就转不对(有程...
12:13:01  
舵机MG995、芯片STC89C52RC,无论我怎么设置PWM,舵机就是不按我想要的角度转,不仅满偏,还在满偏位置来回摆动,有谁能帮帮忙,解释一下原因
程序如下:
#include &reg51.h&
sbit P1_2=P1^2;
unsigned char a=0;
void InitTimer0(void)& && & //设置0.1ms中断一次
TMOD = 0x01;&&
TH0=()/256;
TL0=()%256;&&
ET0 = 1;&&
void main(void)
& &InitTimer0();
& &a=5;& && &//我用比较笨的方法逐次给不同的脉冲,第一次给0.5ms,看转的角度,然后改成a=10,再烧进程序,看1ms的转角
void PWM() interrupt 1
&&TH0=()/256;
&&TL0=()%256;&&
&&if(count&=a)
&&{P1_2=1;}
&&{P1_2=0;}
&&count++;
&&if(count == 200)
& &count=0;& & //20ms一个周期
12:21:27  
后来我把中断改为执行一次,但还是满偏,求救呀
12:22:32  
或者谁发个舵机MG995的数据手册给我,我好看看
13:03:23  
本帖最后由 Stone_up 于
11:42 编辑
(34.74 KB, 下载次数: 237)
13:02 上传
点击文件名下载附件
下载积分: 积分 -1 分
楼主试试我的程序,很久以前调试的
13:15:09  
你用示波器看看出来的脉冲是不是对的
15:28:00  
我用别人的程序,用示波器看了,能发出正确的PWM脉冲,且相应的LED会亮,但一接通舵机,程序就乱套了,灯也只在一个上不停地闪,这样是不是可以判断舵机是坏的
10:21:56  
问题解决了,因为我用的是单片机学习板,我一直是把VCC、GND、和数据线接到同一个板子上,导致VCC供电异常,后来我把vcc单独供应一个5V电源,GND和数据线还是在同一个板子,就正常了。感谢大家对我给予的帮助。
23:02:44  
22:20:58  
谢了!!!!!!
15:51:54  
感谢楼主,出现了和你一样的问题。现在弄好了
22:57:56  
我去这帖子。。。快半年了还这么靠前
15:48:44  
学习一下了啊
20:09:07  
XUEXILEXUEXILE多谢楼主
10:08:48  
等待验证会员
20:59:29  
同求啊 啊啊啊
01:44:50  
你用示波器看看出来的脉冲是不是对的
18:44:41  
你用示波器看看出来的脉冲是不是对的你用示波器看看出来的脉冲是不是对的你用示波器看看出来的脉冲是不是对的
12:56:46  
感谢楼主,我正在找呢,楼主6666啊,谢谢,太感谢了
10:40:37  
学习了,还是有点困惑
09:37:47  
那个外接5V电源怎么弄?
Powered by}

我要回帖

更多关于 单片机控制舵机 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信