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

内容发布更新时间 : 2024/9/20 0:33:37星期一 下面是文章的全部内容请认真阅读。

嵌入式原理考查项目报告

题 目 通过串口控制电机转速 系 (部) 电子与信息工程系 班 级 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、程序关键代码及注释 主函数代码:

int main(void) {

ARMTargetInit(); //开发版初始化 init_MotorPort(); //电机初始化 for(;;) //进入死循环 {

usb(); //调用串口函数,并将发送的数据显示出来 switch(x) // x 的值由usb()提供出来; {

case 0: SetPWM(0);break; //停止转动

case 1: SetPWM(500);break; //电机低速运转;

case 2: SetPWM(700);break; //电机中等速度运转; case 3: SetPWM(900);break; //电机高等速度运转; default: break; //默认处理方式 } }