通过串口控制电机转速.doc

通过串口控制电机转速.doc

ID:58001123

大小:1.48 MB

页数:9页

时间:2020-04-06

通过串口控制电机转速.doc_第1页
通过串口控制电机转速.doc_第2页
通过串口控制电机转速.doc_第3页
通过串口控制电机转速.doc_第4页
通过串口控制电机转速.doc_第5页
资源描述:

《通过串口控制电机转速.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、.嵌入式原理考查项目报告题目通过串口控制电机转速系(部)电子与信息工程系班级12级电本(1)班姓名吴赵崧林学号2012020044指导教师邹圣雷2014年12月....通过串口控制电机转速吴赵崧林1、项目要求:串口发送SPEED0,电机停止;串口发送SPEED1,电机低速运转;串口发送SPEED2,电机中等速度运转;串口发送SPEED3,电机高速运转;(通过串口接收的数据不同,发出不同的PWM波)2、原理和涉及知识点(寄存器)(1)寄存器是cpu的一部分,是计算机中速度最快的存储器,分为通用寄存器、专用寄存器、段寄存器、其他寄存器,每个寄存器存储一种类型的变量,各司

2、其职,这样说来,又分为累加器、源变址寄存器、基址寄存器、计数寄存器、状态寄存器等等寄存器变量,顾名思义,就是存贮在寄存器里的变量。(2)步进电机控制的基本原理: 步进电机的基本控制包括转向控制和速度控制2个方面。从结构上看,步进电机分为三相、四相、五相等类型,常用的则以三相为主。三相步进电机的工作方式有三相单三拍、三相双三拍和三相六拍3种,下面具体加以阐述。 a换相顺序的控制 步进电机通电换相这个过程称为脉冲分配。例如,三相步进电机在单三拍的工作方式下,其各相的通电顺序为A-B-C-A,通电控制脉冲必须按照这一顺序分别控制A、B、C相得通断。三相双三拍的通电顺序为A

3、B-BC-CA-AB,三相六拍的通电顺序为A-AB-B-BC-C-CA-A b步进电机的转向控制 如果给定工作方式正序换相通电,步进电机正转。若步进电机励磁方式为三相六拍,即A-AB-B-BC-C-CA-A。如果按反序通电换相,即A-AC-C-CB-B-BA-A,则电机就反转。其它方式的情况类似。 c步进电机的速度控制 如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。2个脉冲的间隔越短,步进电机就转得越快。调整输送给步进电机的脉冲频率,就可以对步进电机进行调速。..3、程序流程图进行s3c2410初始化ARMTargetInit()进行电机初始

4、化init_MotorPort();调用串口函数usb();等待在串口输入数据并接收数据存入table[8]中将table[8]清零将table[8]里面的字符串进行否对比..是返回x的值选择switch语句来控制电机的转动(例x=0,则电机停止)结束4、程序关键代码及注释主函数代码:intmain(void){ARMTargetInit();//开发版初始化init_MotorPort();//电机初始化for(;;)//进入死循环{usb();//调用串口函数,并将发送的数据显示出来switch(x)//x的值由usb()提供出来;{case0:SetPWM(0

5、);break;//停止转动case1:SetPWM(500);break;//电机低速运转;case2:SetPWM(700);break;//电机中等速度运转;case3:SetPWM(900);break;//电机高等速度运转;default:break;//默认处理方式}}}usb.h的代码:..if(strcmp(table0,table)==0)//将接收到的数值和已存在的数值相比较{for(j=0;j<6;j++){Uart_SendByten(0,table0[j]);//如果相同,输出table1}for(j=0;j<6;j++){table[j]

6、='';//循环8次将table[8]数值清零,等待下一次输入。}i=0;x=0;//电机不转标志位break;//跳出循环}elseif(strcmp(table1,table)==0)//将接收到的数值和已存在的数值相比较{for(j=0;j<6;j++){Uart_SendByten(0,table1[j]);//如果相同,输出table2}for(j=0;j<6;j++){table[j]='';}i=0;x=1;//电机低速标志位break;//跳出循环}elseif(strcmp(table2,table)==0)//将接收到的数值和已存在的数值

7、相比较{for(j=0;j<6;j++){Uart_SendByten(0,table2[j]);//如果相同,输出table3}for(j=0;j<6;j++){table[j]='';//将接受的的数据清零}x=2;//电机中速转动标志位i=0;break;//跳出循环}..elseif(strcmp(table3,table)==0)//接收到的数值和已存在的数值相比较{for(j=0;j<6;j++){Uart_SendByten(0,table3[j]);}//如果相同,输出table2for(j=0;j<6;j++){table[j]='';

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

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

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