首页 > 其他分享 >嵌入式教程_电机控制:2-24 步进电机控制实验

嵌入式教程_电机控制:2-24 步进电机控制实验

时间:2023-08-03 17:06:44浏览次数:137  
标签:24 定时器 电机 StarterWare 配置 嵌入式 步进 GPIO

2-24 步进电机控制实验

实验目的

本节视频的目的是掌握GPIO模拟输出PWM的方法,学习步进电机的控制原理,并实现步进电机的控制。

实验原理

先来看一下硬件原理图,可看到控制步进电机的管脚分别为:GPIO6[2]、GPIO6[3]、GPIO6[4]和GPIO1[15]。使用的是一路四相五线步进电机,使用的电机驱动芯片是L9110。

嵌入式教程_电机控制:2-24 步进电机控制实验_步进电机

嵌入式教程_电机控制:2-24 步进电机控制实验_串口_02

四相五线步进电机的控制方法有两种,四相四拍和四相八拍。本实验中使用的是四相四拍,称为全步控制。

四相:步进电机中有四组线圈。

四拍:步进电机A,B,C,D四组线圈的通电时序,四拍的驱动正转通电顺序为A-B-C-D-A-B-C-D-……循环往复,-A-B-C-D-四拍为一个循环周期。

五线:步进电机引出的接线数量为五根。

嵌入式教程_电机控制:2-24 步进电机控制实验_API_03

步进电机工作原理

步进电机是利用电磁铁原理,将脉冲信号转换成线位移或角位移的电机。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载信号的影响。每给电机加一个脉冲信号,电机就转过一个步距角,带动机械移动一小段距离。

步进电机的速度控制:通过输入的脉冲频率快慢实现的。当发生脉冲的频率减小时,步进电机的速度就下降;当频率增加时,速度就加快。还可以通过频率的改变而提高步进电机的速度或位置精度。

步进电机的位置控制:靠给定的脉冲数量控制的。给定一个脉冲,转过一个步距角,当停止的位置确定以后,也就决定了步进电机需要给定的脉冲数。

程序流程

程序流程设计中首先要进行UART2初始化和DSP中断初始化,接着进行矩阵键盘初始化和外设使能配置,然后进行管脚复用配置和定时器初始化,接着初始化定时器中断,最后进行矩阵键盘扫描并控制步进电机的转动。

嵌入式教程_电机控制:2-24 步进电机控制实验_API_04

管脚复用源码

嵌入式教程_电机控制:2-24 步进电机控制实验_步进电机_05

管脚复用配置

GPIO复用配置操作直接封装成了函数,使用时,相关函数通过“gpio.h”文件引用。

StarterWare API 接口:GPIOBank0Pin0PinMuxSetup();

方向配置源码

第一个参数时GPIO的基地址,第二个参数是GPIO的编号,第三个参数设置GPIO的方向

嵌入式教程_电机控制:2-24 步进电机控制实验_串口_06

管脚方向配置

使用StarterWare 的库将 GPIO 口配置为输出或输入。使用时,直接包含“gpio.h”文件即可。

StarterWare API 接口:GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);

数据配置源码

第一个参数是GPIO的基地址,第二个参数是GPIO的编号,第三个参数设置GPIO的电平

嵌入式教程_电机控制:2-24 步进电机控制实验_API_07

数据寄存器配置

使用 StarterWare 的库来设置GPIO的值。

使用时,直接包含“gpio.h”文件即可。

StarterWare API 接口:GPIOPinWrite(SOC_GPIO_0_REGS, 105, GPIO_PIN_LOW);

定时器配置源码

第一个参数是定时器模块寄存器的基地址,第二个参数是用于配置定时器模块。

嵌入式教程_电机控制:2-24 步进电机控制实验_步进电机_08

定时器配置

使用 StarterWare 的库来配置定时器。

使用时,相关函数通过“timer.h”文件引用。

StarterWare API 接口:void TimerConfigure(unsigned int baseAddr, unsigned int config)

周期配置源码

第一个参数是定时器模块寄存器的基地址,第二个参数是要设置周期的定时器,第三个参数是设置的周期大小

嵌入式教程_电机控制:2-24 步进电机控制实验_串口_09

定时器周期配置

使用 StarterWare 的库来配置定时器周期。

使用时,相关函数通过“gpio.h”文件引用。

StarterWare API 接口:void TimerPeriodSet(unsigned int baseAddr, unsigned int timer, unsigned int period)

定时器使能源码

第一个参数是定时器模块寄存器的基地址,第二个参数是要使能的定时器,第三个参数是配置使能定时器的模式。

嵌入式教程_电机控制:2-24 步进电机控制实验_API_10

定时器使能配置

使用 StarterWare 的库来使能定时器。

使用时,相关函数通过“gpio.h”文件引用。

StarterWare API 接口:void TimerEnable(unsigned int baseAddr, unsigned int timer, unsigned int enaMode)

操作现象

硬件连接

本实验使用的硬件接口为步进电机和UART2 RS232接口,所需硬件为实验板、仿真器、RS232 交叉串口母母线、USB转RS232串口线和电源。

嵌入式教程_电机控制:2-24 步进电机控制实验_API_11

(1)使用 RS232 交叉串口母母线和 USB 转 RS232 串口线连接实验板的UART2串口和电脑的 USB口。

(2)连接仿真器和电脑的USB接口,

(3)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。

嵌入式教程_电机控制:2-24 步进电机控制实验_API_12

串口调试工具调节

(1)先在设备管理器查看串口的端口号;

(2)再设置串口调试工具,

嵌入式教程_电机控制:2-24 步进电机控制实验_串口_13

软件操作

设置好串口调试工具后,在CCS里进行相关操作

导入工程,选择Demo文件夹下的对应工程

编译工程

将CCS连接实验箱并加载程序

点击运行程序,实验板上步进电机开始转动,串口调试终端打印步进电机转动的信息。

Direction 表示转动方向,正方向转动为 Forward,反方向转动为 Backward;

SpeedLevel表示转速,最慢为 0,最快为 5;

按键 7 控制转方向。

按键 8 控制加速。

按键 9 控制减速。

按下按键 7 调转方向,按下按键 8 加速,实验板上步进电机开始反方向转动

嵌入式教程_电机控制:2-24 步进电机控制实验_串口_14

标签:24,定时器,电机,StarterWare,配置,嵌入式,步进,GPIO
From: https://blog.51cto.com/u_16123606/6950820

相关文章

  • IU5530支持48V输入,输出12V-24V,3.5A异步降压DC-DC转换器
    IU5530E是一款具有集成型高侧MOSFET的48V、3.5A降压稳压器。能够耐受的抛负载脉冲高达50V。一个低纹波脉冲跳跃模式将无负载时的电源电流减小至180μA。当启用引脚被拉至低电平时,关断电源电流被减少至4μA。欠压闭锁在内部设定为4.3V,但可用使能引脚将之提高。可在内部控制输出电压......
  • nflsoj 5924 选排列
    与全排列略微有些不同,只需要将退出条件需要改成u==r#include<iostream>usingnamespacestd;constintN=15;intr,n;intpath[N];boolst[N];voiddfs(intu){if(u==r){for(inti=0;i<r;i++)printf("%d",path[i]);printf("\n&......
  • C语言嵌入式面试
    指针1.数组指针与指针数组,函数指针与指针函数区别?答:函数指针指向函数的指针变量,即本质是一个变量。指针函数是指返回值是指针的函数,即本质是一个函数。数组指针是指向数组首元素的地址的指针,其本质为指针。(这个指针存放的是数组首地址的地址,相当于2级指针,这个指针不可移动)指......
  • C语言嵌入式开发
    第一类问题:专业考察题在下面问题中,我附上自己的理解,可能不全面,用到的话再自行补充一些。问题1:问你写在简历上的项目经历,一般问的很细很细,在此基础上考察你项目里用到的技术知识。问题2:IIC协议(1)I2C使用两条线在主控制器和从机之间进行数据通信。一条是SCL(串行时钟线),另外一条......
  • C语言嵌入式面试3
    第一章、进程与线程1、什么是进程、线程,有什么区别?进程是资源(CPU、内存等)分配的基本单位,线程是CPU调度和分配的基本单位(程序执行的最小单位)。同一时间,如果CPU是单核,只有一个进程在执行,所谓的并发执行,也是顺序执行,只不过由于切换速度太快,你以为这些进程在同步执行而已。多核CPU可以......
  • 嵌入式软件开发就业面试题。2022最新,最全总结
    1.select和epoll的区别解题思路(这个我在找面试题之前没了解过,还是学的太少了,多学!!!)select的时间复杂度O(n)。它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O......
  • 16道嵌入式C语言面试题
    预处理器(Preprocessor)1.用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)  #defineSECONDS_PER_YEAR(60*60*24*365)UL  我在这想看到几件事情:  1).#define语法的基本知识(例如:不能以分号结束,括号的使用,等等) ......
  • EEZ H24005开源电源升级版EEZ BB3,性能更强,电压支持0-80V,电流0-10A
    软件包:https://github.com/eez-open/modular-psu-firmware硬件包:https://github.com/eez-open/modular-psu地址来源:https://www.crowdsupply.com/envox/eez-bb3视频展示:http://v.qq.com/x/page/u0957v1u11y.html规格:产品效果:基于自家的开源跨平台GUI设计平台EEZStudio设计的界面效......
  • 嵌入式教程_电机控制_DSP教学实验箱操作教程: 2-23直流电机控制实验
    2-23直流电机控制实验实验目的本节视频的目的是掌握GPIO模拟输出PWM的方法,学习直流电机的控制原理,并实现直流电机的控制。实验原理硬件原理图,看到有2个直流电机接口,可分别连接直流有刷电机和直流无刷电机。实验箱上只预留一个直流电机的位置,出货默认配置的是直流有刷电机。其中驱......
  • 新能源物流车电机行业市场调研报告:研究分析及发展策略2023-2029
    2023-2029全球新能源物流车电机行业调研及趋势分析报告2022年全球新能源物流车电机市场规模约亿元,2018-2022年年复合增长率CAGR约为%,预计未来将持续保持平稳增长的态势,到2029年市场规模将接近亿元,未来六年CAGR为%。从核心市场看,中国新能源物流车电机市场占据全球约%的市场份......