通过串口控制电机转速 下载本文

内容发布更新时间 : 2024/5/22 1:32:19星期一 下面是文章的全部内容请认真阅读。

精心整理

嵌入式原理考查项目报告

题目通过串口控制电机转速 系(部)电子与信息工程系 班级12级电本(1)班 姓名吴赵崧林 学号 指导教师邹圣雷 2014年12月

通过串口控制电机转速

吴赵崧林

1、项目要求:

串口发送SPEED0,电机停止; 串口发送SPEED1,电机低速运转; 串口发送SPEED2,电机中等速度运转; 串口发送SPEED3,电机高速运转;(通过串口接收的数据不同,发出不同的PWM波) 2、原理和涉及知识点(寄存器) (1)寄存器是cpu的一部分,是计算机中速度最快的存储器,分为通用寄存器、专用寄存器、段寄存器、其他寄存器,每个寄存器存储一种类型的变量,各司其职,这样说来,又分为累加器、源变址寄存器、基址寄存器、计数寄存器、状态寄存器等等寄存器变量,顾名思义,就是存贮在寄存器里的变量。 (2)步进电机控制的基本原理:? 步进电机的基本控制包括转向控制和速度控制2个方面。从结构上看,步进电机分为三相、四相、五相等类型,常用的则以三相为主。三相步进电机的工作方式有三相单三拍、三相双三拍和三相六拍3种,下面具体加以阐述。? a换相顺序的控制? 步进电机通电换相这个过程称为脉冲分配。例如,三相步进电机在单三拍的工作方式下,其各相的通电顺序为A-B-C-A,通电控制脉冲必须按照这一顺序分别控制A、B、C相得通断。三相双三拍的通电顺序为AB-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() 进行电机初始化 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);break;//停止转动

case1:SetPWM(500);break;//电机低速运转; case2:SetPWM(700);break;//电机中等速度运转; case3:SetPWM(900);break;//电机高等速度运转; default:break;//默认处理方式 } }