舵机的角度控制.doc

舵机的角度控制.doc

ID:58800467

大小:117.50 KB

页数:10页

时间:2020-09-27

舵机的角度控制.doc_第1页
舵机的角度控制.doc_第2页
舵机的角度控制.doc_第3页
舵机的角度控制.doc_第4页
舵机的角度控制.doc_第5页
资源描述:

《舵机的角度控制.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、计算机控制实验报告题目:舵机的角度控制院(系):电子工程与自动化学院专业:智能科学与技术学生姓名:学号:指导教师:赵学军2016年7月02日一、实验题目舵机的角度控制二、实验内容在PROTEUS软件下用MOTOR-PWMSERVO作为控制对象,单片机发送PWM信号给舵机实现转角控制,4*4键盘给定,参数LCD显示;三、实验要求1、根据给定题目设计Proteus仿真原理图;2、根据给定题目设计有关的C语言源程序,并编译成可执行文件;3、在Proteus仿真界面下运行程序实现给定的功能四、实验设计(一)实验思路1.14*4矩阵键盘概述1.2

2、舵机的基本概述舵机是一种位置伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。其工作原理是:控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。舵机的控制信号是PWM信号,利用占空比的变化改变舵机的位置;五、具体设计思路 例如想让舵机转向左极限的角度,它的正脉冲为

3、2ms,则负脉冲为20ms-2ms=18ms,所以开始时在控制口发送高电平,然后设置定时器在2ms后发生中断,中断发生后,在中断程序里将控制口改为低电平,并将中断时间改为18ms,再过18ms进入下一次定时中断,再将控制口改为高电平,并将定时器初值改为2ms,等待下次中断到来,如此往复实现PWM信号输出到舵机。用修改定时器中断初值的方法巧妙形成了脉冲信号,调整时间段的宽度便可使伺服机灵活运动。五、心得体会本次实验中,通过实际动手自己设计并实现在PROTEUS软件下用MOTOR-PWMSERVO作为控制对象,单片机发送PWM信号给舵机实现

4、转角控制,4*4键盘给定,参数LCD显示,不仅加深了我对计算机控制课程理论知识的理解,同时也进一步认识到了计算机的广泛应用。在本次实验设计过程中,从一开始的毫无头绪到慢慢思索并最终实现,过程是艰辛的,谢谢老师和同学帮助额解决了一些不明白的问题。在以后的学习和生活中,我定会更加努力提高自己!附录一实验仿真图图1仿真电路图附录二实验程序清单#includesbitPWM0=P1^0;#defineSCAN_IOP0sbitLCD_E=P1^7;//使能sbitLCD_RS=P1^5;//选择发送命令sbitLCD_RW=P

5、1^6;//选择接收数据sbitADD=P3^6;sbitSUB=P3^7;#defineLCD_DATAPINSP2#defineucharunsignedchar#defineuintunsignedint#include#includeuintt_up0=1500;//舵机PWM高电平时间1000~2000表示1ms到2msuintt_change=63036;//换路周期2.5ms8路uintt0_h;uintt0_l;intA,A1,A2,A3,C1,C2,key;intB1,B2

6、;voiddelayms(uintms){unsignedchara,b,c;while(ms--){for(c=1;c>0;c--)for(b=142;b>0;b--)for(a=2;a>0;a--);}}voidtimer_init(){EA=1;?/总中断打开ET0=1;//定时器中断打开PT0=1;TMOD=0x11;TH0=(65536-t_up0)/256;//给定初值,这里使定时器从0开始计数一直到65536溢出TL0=(65536-t_up0)%256;}uchart0_flag=0;uintnum_max=65535;

7、//直接用65535-t_up不用变量-t_up时,误差较大,原因暂时不明【注:65536不能存到uint类型变量中】ucharerror0=45;ucharerror1=45;voidtimer0()interrupt1{if(t0_flag==0){PWM0=1;TH0=(num_max-t_up0+error0)/256;//+?是为了抵消执行语句花的时间TL0=(num_max-t_up0+error0)%256;t0_flag=1;}elseif(t0_flag==1){PWM0=0;TH0=(t_change+t_up0+e

8、rror1)/256;TL0=(t_change+t_up0+error1)%256;t0_flag=0;}}voidLCDdisplay(intA){A1=A/1000;//个位A2=A/100%10;/

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。