78、基于STM32单片机步进电机速度调速控制系统设计(程序+原理图+PCB源文件+参考论文+开题报告+流程图+元器件清单等)

news/2024/11/18 2:31:34/

摘 要

伴随着时代的快速发展,单片机的应用也越来越广泛,促进了微电子和计算机的快速发展。我们日常生活中步进电机扮演着很重要的角色在我们身边随处可以见。因为步进电机本身的结构组成相对于比较简单、价格也比较便宜廉价。比如压榨机,打印机、玩具和许多办公自动化设备或者控制设备中都运用到步进电机。我们使用单片机编程软件控制,用软件代替上述步进控制器,使得线路比较简单,成本较低,可靠性也大大增加。研究步进电机的意义在于提供控制精度和步进电机的反应时间,节约资源等。

步进电机的主要工作原理是通过单片机IO口输出不同的时序和PWM脉冲来控制步进电机的转速,加速,减速等功能。

关键词:步进电机,单片机,LCD1602显示屏,电机驱动,

1.1  步进电机及其发展

伴随着科技的高速发展,单片机在我们日常生活中出现的频率也越来越多。其中单片机控制的步进电机也被广泛的应用于机器人、照相机、卫星天线、工业上的自动控制、组合机床等设备。

1.2  步进电机在我国的发展应用及前景

在目前,我国使用步进数量是很庞大的,导致生产电机的商家也非常多,但是我们反观现状,很多生产步进电机的厂家其实无论是从规模上还是技术上都比较小,真正拥有此类型的研究人员或者是开发人员是非常少的。大多数厂家就人员上可能就是一个小作坊,最基本专业测试设备都很少。这些公司仅仅是对步进电机进行模仿或者是仿制,技术上比较落后,发展也比较慢。所以我们对于步进电机的开发还有待加强和跟新,满足跟多不同的需求。我们都知道使用步进电机的条件是电机必须由双环形成的脉冲信号、功率驱动和组成控制系统等条件下才可以使用。它涉及到比较复杂的机械、电机、电子等许多比较专业知识点。

1.3  设计研究内容

STM32单片机步进电机控制系统采用的的步进电机类型是四相8拍步进电机,采用单片机输出不同的时序和脉冲来驱动步进电机实现不同的功能要求。此类型的步进电机主要工作原理是将电脉冲信号转化成角位移的信号,然后来执行。当步进电机的驱动芯片ULN2003接收到一个脉冲信号后,它就会用来驱动步进电机按照我们程序设定的其中一个方向来转动,步进电机旋转的角度(称为“步距角”),我们可以采用通过控制脉冲数量来控制选择的角位移量,这样就可以准确达到我们设定的目标值;在控制电机旋转的速度上,我们采用的是脉冲控制的方法。脉冲其实就是一个频率。说简单一点就是高低电平在一端时间内出现的次数。如果我们要加速控制电机转动,这段时间内,我们就让高低电平出现的频率增多,如果是减速,就让频率相对降低。这样我们就可以达到调速的功能。本次设计通过改变脉冲频率从而达到来调节步进电机转速,并且通过LCD1602来显示当前的信息。步进电机广泛应用于各种开环控制。

一、硬件方案

硬件构成:STM32单片机+最小系统+LCD1602液晶显示+功能按键+ULN2003驱动+步进电机(4相8拍)

二、设计功能

1.   LCD1602液晶显示当前电机旋转速度和方向

2.   按键可以设置电机正转和反转

3.   按键控制当前电机旋转速度

三、实物图


 

 

STM32STM32概述
STM32系列是为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。按性能分成两个不同的系列:“增强型”STM32F103系列和“基本型”STM32F101系列。增强型系列的时钟频率能达到72MHz,是同类产品中频率最高的;基本型的时钟频率为36MHz,用16位产品一样的价格得到比16位产品更大的性能,是16位产品的最好选择。两个系列都有内置的32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。时钟频率为72MHz时,从闪存执行代码来看,STM32功耗36mA,是32位市场上功耗最低的产品,相当于0.5mA/MHz[6]。
以STM32103C8T6单片机为处理器,该单片机为32位处理器。内核为Cortex-M3,其并行总线结构,嵌套中断向量控制单元,调试系统和它标准的存储映射。嵌套中断向量控制器(Nested Vector Interrupt Controller,简称NVIC)是Cortex-M3处理器中一个比较关键的组件,它为基于Cortex-M3的微控制器提供了标准的中断架构和优秀的中断响应能力,为超过240个中断源提供专门的中断入口,而且可以为每个中断源赋予单独的优先级。采用NVIC可以达到非常快的中断响应速度,从收到中断请求到执行中断服务的第一条指令仅需12个周期。这种极快的响应速度一方面得益于Cortex-M3内核对堆栈的自动处理机制,这种机制是通过固化在CPU内部的微代码实现的。另一方面,在中断请求连续出现的情况下,NVIC使用一种称为“尾链”的技术,使连续而来的中断可以在6个时钟周期内得到服务。在中断的压栈阶段,更高优先级的中断可以不耗费任何额外的CPU周期就能完成嵌入低优先级中断的动作。具体的细节后面我会继续总结的。用户可以通过设置CPU自动进入低功耗状态,而使用中断来将其唤醒,CPU在中断时间来临之前会一直保持睡眠状态[7]。
  Cortex-M3的CPU支持两种运行模式:线程模式(Thread Mode)与处理模式(Handler Mode)并且需要注意的是,这两种模式都拥有各自独立的堆栈。这种设计使得开发人员可以进行更为精密的程序设计,对实时操作系统的支持也就更好了。Cortex-M3处理器还包含了一个24位可自动重装载定的定时器,可以为内核(RTOS)提供一个周期中断。
在指令集方面,ARM7和ARM9都有两种指令集(32位指令集和16位指令集),而Cortex-M3系列处理器支持Thumb-2指令集。由于Thumb-2指令集融合了Thumb指令集和ARM指令集,使得32位指令集的性能和16位指令集的代码密度之间取得了平衡[5]。 专业嵌入式、单片机技术实训。而且,ARM Thumb-2 专门为C/C++编译器设计,这就意味着Cortex-M3系列处理器的开发应用可以全部在C语言环境中完成。

四、原理图

在本设计做的过程中,硬件和软件方面都遇到了许多问题,但是相比于软件,在硬件方面还是比较快解决的方面,因为硬件是比较容易检查出来错误的,软件比较晦涩难懂,还是有一定难度。
在硬件调试问题上,首先焊接好了元器件实物板后,先用万用表测量这个工业板子的电源方面,电源方面是最重要的问题,应该是特别需要检查的地方,以防止电源的短路和正负极的错误。然后在仔细检查电路的连接是否有问题,或者有没有虚焊或者没有焊接到的地方,然后核对一下元器件的安装是否有问题,安装上去是否符合规定,由于已经是大学四年都是做过了很多实训过来了,对于这些还是游刃有余的,但是在上机调试后还是发现了很多的问题。


 

五、PCB图

在本设计做的过程中,硬件和软件方面都遇到了许多问题,但是相比于软件,在硬件方面还是比较快解决的方面,因为硬件是比较容易检查出来错误的,软件比较晦涩难懂,还是有一定难度。
在硬件调试问题上,首先焊接好了元器件实物板后,先用万用表测量这个工业板子的电源方面,电源方面是最重要的问题,应该是特别需要检查的地方,以防止电源的短路和正负极的错误。然后在仔细检查电路的连接是否有问题,或者有没有虚焊或者没有焊接到的地方,然后核对一下元器件的安装是否有问题,安装上去是否符合规定,由于已经是大学四年都是做过了很多实训过来了,对于这些还是游刃有余的,但是在上机调试后还是发现了很多的问题。


 

六、程序源码  

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。


 

 资料包括: 

 

 

需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。 

 


http://www.ppmy.cn/news/687885.html

相关文章

pyspider 爬取bing壁纸

附pyspider安装过程 目标页面 https://bing.gifposter.com/list/new/desc/classic.html?p1 #!/usr/bin/env python # -*- encoding: utf-8 -*- # Created on 2020-05-13 09:56:10 # Project: bingfrom pyspider.libs.base_handler import * from time import strftime, strp…

获取bing壁纸php,php获取bing每日壁纸的示例

php获取bing每日壁纸的示例 这篇文章主要介绍了使用php获取bing每日壁纸的示例,需要的朋友可以参考下 代码如下: $strfile_get_contents(http://cn.bing.com/HPImageArchive.aspx?idx0&n1); if(preg_match("/(.?)/ies",$str,$matches)){ $imgurlhttp://cn.bing…

动态获取Bing每日壁纸

我们可以通过访问:http://cn.bing.com/HPImageArchive.aspx?formatxml&idx0&n1获得一个XML文件,里面包含了图片的地址。 上面访问参数的含义分别是: 1、format,非必要。返回结果的格式,不存在或者等于xml时…

Python爬虫实战(2):自定义年月日国别抓取Bing壁纸

写完程序的最深体会。 就是大概我python水平可能也就停留在这半死不活,写几十行都要各种翻资料的状态上了吧。 令人悲伤。 言归正传,代码地址。 Bing壁纸有API接口,也有不同网站提供浏览服务,其中本例使用的是Long Zheng老师的…

随机切换必应美图html代码,Python之自动爬取每日bing壁纸并更换

[PHP] 纯文本查看 复制代码Microsoft Windows [版本 10.0.17134.1304] (c) 2018 Microsoft Corporation。保留所有权利。 (venv) D:\Pycharm 2020.3>pyinstaller -D photo_get.py 1465 INFO: PyInstaller: 4.2 1465 INFO: Python: 3.8.3 1465 INFO: Platform: Windows-10-10…

bing每日壁纸客户端

写了个bing每日壁纸的安卓客户端。可以查看历史壁纸,相关讯息,设置壁纸,下载壁纸。 代码已开源到github ,欢迎start github地址 网页版在这 www.rampage.xin/bing/

官方bing壁纸软件-bing wallpaper

更新内容:官方bing壁纸软件-bing wallpaper 官方发布了一款bing壁纸软件:bing wallpaper 下载安装中会有两个选项:将bing设为首页和将bing设为默认搜索。根据个人打勾或取消。软件是英文版的,不能设置中文。 功能很简单&#xff1…

bing壁纸获取(Java)

获取bing壁纸 接口及实现 简单的demo,将所有的方法都复制到一个Controller里面了。 /img/url (通过流的方式,可以直接读取到图片) /img/info (返回图片的信息以json的形式,采用异步非阻塞的方式执行代码) import com.alibaba.fastjson.JSON; import com.alibaba.fastjso…