当前位置: 首页 > news >正文

STM32单片机基本原理与应用(四)

直流电机驱动控制原理

1、电机正反转控制
在STM32中,直流电机的正反转控制主要通过改变电机输入电源的极性来实现。当电机的电压极性发生变化时,电机的旋转方向也会相应改变。在硬件电路中,可以通过继电器或晶体管等电子开关来切换电机的电源极性。
在软件层面,STM32可以通过GPIO引脚的高低电平来控制电机的正反转。例如,当GPIO引脚输出高电平时,电机正转;当输出低电平时,电机反转。通过改变GPIO引脚的电平状态,可以实现电机的正反转控制。

2、电机速度控制
直流电机的速度控制可以通过PWM技术实现。通过调节PWM方波的占空比,可以改变电机输入电压的平均值,从而控制电机的转速。占空比越大,电机转速越快;占空比越小,电机转速越慢。

实验案例

采用ULN2003芯片驱动,通过对ULN2003芯片的输入引脚的电源极性控制,从而控制直流电机的正反转。

  • 实验模块:STM32核心板+直流电机

  • 电路原理图

在这里插入图片描述
两路直流电机通过ULN2003芯片驱动,控制引脚分别为ULN-O5 ULN-O6

程序源码:

int main(void){delay_init();	    	 //延时函数的初始化	  DCMOTOR_Init();         	//初始化直流电机端口while(1){DCMOTOR1=1;DCMOTOR2=0;		delay_ms(1800);//延时1800msDCMOTOR1=0;  DCMOTOR2=1;delay_ms(1800);//延时1800ms	}

实验现象:
程序运行后,直流电机先正向转动后,停止1.8秒后再反方向转动。

步进电机驱动控制原理

步进电机是通过控制脉冲信号来驱动电机的。在STM32中,控制器通过输出一系列的脉冲信号来控制步进电机的转动。每个脉冲信号对应步进电机的一个步进角度,控制脉冲的数量和频率可以控制电机的转动速度和位置。
STM32控制器通过定时器产生精确的脉冲信号,并通过GPIO引脚输出到步进电机驱动器,其驱动器输入引脚接收。在每个脉冲信号的上升沿或下降沿作用下,步进电机转动一定的角度,从而实现电机的连续或间歇转动。

实验案例

步进电机驱动器是连接控制器和步进电机的中间设备。它接收来自控制器的脉冲信号,并转换为合适的电流和电压,驱动步进电机转动。在实验中ULN2003就是起这个作用,作为“连接的桥梁”——步进电机驱动器。

  • 实验模块:STM32核心板+步进电机
  • 电路原理图
    在这里插入图片描述

步进电机简而言之就是能够通过输入脉冲的个数,确定旋转的角位移,一般用他来控制小车轮子的偏移角度等。步进电机由驱动芯片ULN2003驱动,利用ULN2003与MCU引脚相连,可以驱动步进电机。主要在于放大驱动电流。
其中ULN2003的控制端与单片机的PG6、PG7、PG8、PG9相连接。
程序源码:
1、步进电机驱动函数

void stepper(uint8_t dir,int speed)
{if(dir == Pos){IN1_HIGH;delay_ms(speed);IN1_LOW;IN2_HIGH;delay_ms(speed);IN2_LOW;IN3_HIGH;delay_ms(speed);IN3_LOW;IN4_HIGH;delay_ms(speed);IN4_LOW;}else{IN1_HIGH;delay_ms(speed);IN1_LOW;IN4_HIGH;delay_ms(speed);IN4_LOW;IN3_HIGH;delay_ms(speed);IN3_LOW;IN2_HIGH;delay_ms(speed);IN2_LOW;}
}

2、主函数

int main(void){	delay_init();	    //延时函数初始化	  	 MOTOR_Init();  //步进电机IO初始化 while(1){int i;for(i = 0;i < 1000;i++)      //电机正转stepper(Pos,8);    //间隔最少是5ms  delay_ms(1000);    //延时for(i = 0;i < 1000;i++)      //电机反转stepper(Neg,8); delay_ms(1000);    //延时}}

实验现象:
可以观察到步进电机首先顺时针运转,随后逆时针运转。

相关文章:

STM32单片机基本原理与应用(四)

直流电机驱动控制原理 1、电机正反转控制 在STM32中&#xff0c;直流电机的正反转控制主要通过改变电机输入电源的极性来实现。当电机的电压极性发生变化时&#xff0c;电机的旋转方向也会相应改变。在硬件电路中&#xff0c;可以通过继电器或晶体管等电子开关来切换电机的电源…...

elk之安装和简单配置

写在前面 本文看下elk的安装和简单配置&#xff0c;安装我们会尝试通过不同的方式来完成&#xff0c;也会介绍如何使用docker&#xff0c;docker-compose安装。 1&#xff1a;安装es 1.1&#xff1a;安装单实例 下载es安装包 在这里 下载&#xff0c;下载后解压到某个目录…...

springboot(ssm环保网站 绿色环保宣传系统Java系统

springboot(ssm环保网站 绿色环保宣传系统Java系统 开发语言&#xff1a;Java 框架&#xff1a;springboot&#xff08;可改ssm&#xff09; vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.7&#xff0…...

【MBtiles数据索引和服务发布】GeoServer改造Springboot番外系列二

xyz地图服务访问示例&#xff1a;http://192.168.1.240:8081/gmserver/raster/xyz/firstWP:Imagery-raster/{z}/{x}/{y}.jpg 访问示例如下&#xff1a; mbtiles目录结构 根据z&#xff0c;x&#xff0c;y获取对应mbtiles文件路径的工具方法 说明&#xff1a;重点是使用getMb…...

Redis抓取数据到Logstash再推到Elasticsearch集群

一、安装Logstash 前面安装过Logstash了,不做解释直接跳过 参考:上一篇文章 二、配置Logstash 在logstash目录下,编辑我们之前的配置文件logstash.conf vim logstash.confinput、output字面意思,从redis去拿取数据,输出到Elasticsearch data_type:数据类型为list k…...

【代码随想录-链表】反转链表

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…...

32GPIO输入LED闪烁蜂鸣器

一.GPIO简介 所有的GPIO都挂载到APB2上&#xff0c;每个GPIO有&#xff11;&#xff16;个引脚 内核可以通过APB&#xff12;对寄存器进行读写&#xff0c;寄存器都是32位的&#xff0c;但每个引脚端口只有&#xff11;&#xff16;位 驱动器用于增加信号的驱动能力 二.具体…...

Qt|QPushButton控件讲解

前提 按钮分为了四种状态&#xff1a;常态、聚焦、按下、禁用 前一段时间更新了MFC框架下CButton的自绘。因为MFC框架下的按钮限制性很高&#xff0c;所以只能由自绘实现各种风格&#xff0c;但是QT框架完美的解决了这个问题&#xff0c;我们只需要了解如何调用&#xff0c;就…...

再学webpack

1 优化 webpack 打包体积的思路 优化 webpack 打包体积的思路包括&#xff1a; 提取第三方库或通过引用外部文件的方式引入第三方库&#xff1a;将第三方库单独打包&#xff0c;并通过 CDN 引入&#xff0c;减少打包体积。使用代码压缩插件&#xff1a;例如 UglifyJsPlugin&a…...

systemd:service与target使用及相关命令

文章目录 一、 unit1.1 unit常用命令 二、 service系统服务2.1 unit service配置文件2.1.1 [Unit]区块2.1.2 [Service]区块2.1.3 [Install]区块2.1.4 示例介绍 2.2 service常用命令 三、target3.1 tartget有关命令 四、其他系统命令4.1 systemctl 相关系统管理命令4.2 journalc…...

FairGuard游戏加固入选《CCSIP 2023中国网络安全行业全景册(第六版)》

2024年1月24日&#xff0c; FreeBuf咨询正式发布《CCSIP 2023中国网络安全行业全景册(第六版)》。本次发布的全景图&#xff0c;共计展示20个一级分类、108个细分安全领域&#xff0c;旨在为广大企业提供网络安全产品选型参考&#xff0c;帮助企业了解中国网络安全技术与市场的…...

文心一言 VS ChatGPT :谁是更好的选择?

前言 目前各种大模型、人工智能相关内容覆盖了朋友圈已经各种媒体平台&#xff0c;对于Ai目前来看只能说各有千秋。GPT的算法迭代是最先进的&#xff0c;但是它毕竟属于国外产品&#xff0c;有着网络限制、注册限制、会员费高昂等弊端&#xff0c;难以让国内用户享受。文心一言…...

七街八巷×实在RPA丨财务凭证录入零出错,效率提升8倍

在如今的数字化时代&#xff0c;企业财务面临着海量且复杂的数据流程。特别是在凭证录入这一看似简单却又频繁的环节中&#xff0c;传统的手工操作已无法满足日益增长的业务需求。 中国轻食知名品牌七街八巷&#xff0c;通过部署实在智能集“自动化平台开箱即用解决方案咨询”…...

线性代数----------学习记录

线性代数发展历程 &#xff08;1&#xff09;线性方程组&#xff1a;例如二元一次方程组&#xff1b; &#xff08;2&#xff09;行列式&#xff1a;determinant,克莱默&#xff0c;莱布尼兹&#xff1b; &#xff08;3&#xff09;矩阵&#xff1a;方程个数与未知数的个数可…...

Ubuntu如何安装使用Nginx反向代理?

在Ubuntu上安装Nginx并配置使其生效是相对简单的过程。以下是一步一步的指南&#xff1a; 步骤 1&#xff1a;安装 Nginx 打开终端&#xff0c;并执行以下命令来安装 Nginx&#xff1a; sudo apt update sudo apt install nginx步骤 2&#xff1a;启动 Nginx 服务 安装完成…...

Linux系统——正则表达式

有一段时间本机访问量过高&#xff0c;如何查看日志提取出访问量前十的信息 1.使用提取命令&#xff08;cut、awk、sed&#xff09;提取出ip地址的那一列 2.使用sort按数字排序&#xff0c;将相同的地址整合到一起 3.使用uniq -c统计出数量 4.使用sort 数字 数字倒序排序 5.最…...

【文本到上下文 #9】NLP中的BERT和迁移学习

​ ​ 一、说明 ​BERT&#xff1a;适合所有人的架构概述&#xff1a;我们将分解 BERT 的核心组件&#xff0c;解释该模型如何改变机器理解人类语言的方式&#xff0c;以及为什么它比以前的模型有重大进步。    ​BERT的变体&#xff1a; 在BERT取得成功之后&#xff0c;已…...

github单文件下载——DownGit

记录一下一个好用的网站&#xff0c;支持github中某一特定文件夹下文件的下载 选择一个合适的梯子&#xff0c;访问Downgit网址 https://minhaskamal.github.io/DownGit/#/home 将所需网站连接粘贴到这里&#xff0c;点击download即可...

Java之Stream的应用与原理分析

前言 stream是怎么做到一次迭代中将所有流操作进行叠加&#xff1f;stream怎么做到只有在终止操作时进行元素遍历&#xff1f;那中间操作是做了些什么&#xff1f; Stream 与集合的区别 集合是内存中的数据结构抽象&#xff0c;描述了数据在内存中是如何存储的。流描述了对数据…...

Git 实战场景过程(工作总结篇)

目录 前言1. Git远程仓库建立分支&#xff0c;本地未显示1.1 问题所示1.2 知识补充 2. Git暂存内容切换分支2.1 问题所示2.2 知识补充 3. Git放弃修改数据3.1 问题所示3.2 知识补充 前言 主要总结工作中的疑惑点&#xff0c;如果你也有相应的场景&#xff0c;可以评论区见&…...

企业级AI智能体平台技术评测:9款产品架构差异与生产落地能力分析

现在&#xff0c;大模型已经从“会聊天”进化到了“会干活”&#xff0c;AI智能体&#xff08;AI Agent&#xff09;成为这场变革的核心载体。麦肯锡数据显示&#xff0c;2025年已有62%的组织开展AI智能体相关实践&#xff0c;64%的企业认为AI提升了组织创新能力&#xff0c;其…...

ExplorerPatcher使用指南:3步恢复Windows经典界面体验

ExplorerPatcher使用指南&#xff1a;3步恢复Windows经典界面体验 【免费下载链接】ExplorerPatcher This project aims to enhance the working environment on Windows 项目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher ExplorerPatcher是一款强大的…...

Fast Video Cutter Joiner(视频剪切合并软件)

链接&#xff1a;https://pan.quark.cn/s/fb790471c8c6Fast Video Cutter Joiner是一款强大的视频剪切合并工具&#xff0c;可以帮助用户对视频进行剪切或者合并处理&#xff0c;并支持编辑常见视频格式。这是一个快速的视频剪辑和加入软件&#xff0c;具有易于使用的界面。它允…...

Spring AI 助力 Java 开发者构建全功能 AI 智能体

【导语&#xff1a;随着人工智能的迅速发展&#xff0c;Java 开发者在将 AI 能力集成到基于 Spring 的应用程序方面选择有限。Spring AI 的出现改变了这一局面&#xff0c;本文详细介绍了如何使用 Spring AI 构建基于 Java 的全功能 AI 智能体。】Spring AI 打破 Java 集成 AI …...

图卷积神经网络安全最佳实践:7大关键漏洞防范与代码审计终极指南 [特殊字符]️

图卷积神经网络安全最佳实践&#xff1a;7大关键漏洞防范与代码审计终极指南 &#x1f6e1;️ 【免费下载链接】pygcn Graph Convolutional Networks in PyTorch 项目地址: https://gitcode.com/gh_mirrors/py/pygcn 图卷积神经网络&#xff08;GCN&#xff09;作为处理…...

第四天(实习无忧)

##文件结束的判定&#xff0c;编译与链接##1.文件结束的判定&#xff1a;fgetc(pf)读取结束返回EOF&#xff0c;fgets(arr,100,pf)读取结束返回NULL&#xff0c;fread(arr,sizeof(int),n,pf)读取结束返回对应的n。而成功读取到文件尾结束可以用feof(pf)判断&#xff0c;若中途因…...

AI建站工具怎么选?一篇讲透选型标准与对比逻辑

面对市面上五花八门的“智能建站”、“免代码建站”宣传&#xff0c;很多人越看越糊涂&#xff1a;到底哪个才是真的适合我&#xff1f;是选AI自动生成的&#xff0c;还是拖拽式更灵活&#xff1f;这篇不直接给答案&#xff0c;而是先提供一套通用的筛选标准&#xff0c;再帮你…...

深入理解Vue的响应式原理:从Object.defineProperty到Proxy

Vue的响应式系统是其核心特性之一&#xff0c;它使得数据变化能够自动驱动视图更新。从Vue 2.x的Object.defineProperty到Vue 3.x的Proxy&#xff0c;这一演进不仅是技术实现上的突破&#xff0c;更体现了Vue对性能、兼容性和开发体验的深度思考。以下从技术原理、实现差异、性…...

用风水学重构代码:周易卦象优化系统架构

在软件工程领域&#xff0c;系统架构的优化与性能调优一直是技术专家们不懈探索的核心课题。传统的优化思路往往聚焦于算法效率、资源调度、中间件配置等技术维度。然而&#xff0c;一个更具颠覆性的视角正在悄然兴起&#xff1a;将源自古老东方智慧的《周易》卦象体系&#xf…...

2026网盘风云再起:告别“传不动”,这两款不限速良心网盘实测解析

近些年&#xff0c;网盘市场经历了一轮又一轮的洗牌。从早年各大云盘陆续关停&#xff0c;到后来现有网盘部分服务全面转向收费模式&#xff0c;甚至对非会员进行严苛的网速阉割。用户常常面临「存不下、传不动、下不来」的窘境。 如今已是2026年&#xff0c;网盘市场看似被少…...