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

51单片机-驱动直流电机模块教程

本章概述思维导图:

 51单片机驱动直流电机模块

直流电机简介

直流电机是指能将直流电与机械能相互转换的核心设备,其结构复杂且精密。通俗来说有两大板块:1、直流电能转换为机械能(直流电动机);2、机械能转换为直流电能(直流发电机);直流电机实物图如下:

以下从定子、转子、辅助系统及励磁方式四个维度,对直流电机关键元器件进行系统性介绍:

一、定子系统(静止部分)

1、主磁极

        结构:由铁芯(硅钢片叠压)和励磁绕组组成,极靴宽于极身以优化磁场分布。

        材料:铁芯用0.5-1.5mm厚硅钢片,绕组为绝缘铜线。

        作用:产生主磁场,与电枢电流相互作用形成转矩。

2、换向极

        结构:铁芯(整块钢或硅钢片)与绕组(铜线)组成,位于主磁极间。

        作用:通过产生反向磁场抵消电枢反应,减少换向火花。

3、机座

        材料:铸钢或钢板焊接。

        作用:固定磁极、支撑电机,并作为磁路的一部分(磁轭)。

4、电刷装置

        组成:电刷(石墨/金属石墨)、刷握(金属)、弹簧(恒压/可调式)、刷杆及刷杆座。

        作用:将电流引入或引出电枢绕组,确保与换向器稳定接触。

二、转子系统(旋转部分,电枢)

1、电枢铁芯

        材料:0.5mm硅钢片叠压,表面涂绝缘漆。

        作用:嵌放电枢绕组,减少涡流损耗(铁损)。

2、电枢绕组

        结构:高强度漆包线或玻璃丝包扁铜线绕制,嵌入铁芯槽后用槽楔固定。

        作用:产生感应电动势和电磁转矩,实现能量转换。

3、转向器

        结构:梯形铜片与云母绝缘层组成圆柱体,与电枢绕组端头连接。

        作用:周期性切换电流方向,维持转矩方向恒定。

4、转轴

        材料:优质碳钢(如45#钢),经调质处理。

        作用:支撑转子,传递机械转矩。

三、辅助系统

1、轴承

        类型:滚动轴承(球轴承或滚子轴承)与滑动轴承(含油轴承)。

        作用:减少摩擦,支撑转子旋转。

2、风扇

        类型:离心式或轴流式,材质为塑料或铝合金。

        作用:冷却电机,防止过热。

3、端盖

        材料:铸铁或铝合金。

        作用:封闭电机内部,固定轴承,部分设计含观察窗以检查电刷状态。

四、励磁系统

1、 励磁绕组

连接方式:

        他励式:独立电源供电,适用于精密调速场景。

        并励式:绕组与电枢并联,电压稳定性好。

        串励式:绕组与电枢串联,启动转矩大(如电车驱动)。

        复励式:结合并励与串励,兼具高启动转矩与稳压特性。

        材料:高强度漆包线,绝缘等级通常为F级(155℃)。

2.、励磁电源

        类型:独立直流电源(他励)或电枢回路取电(并励/串励)。

        控制:通过调节励磁电流可调整电机转速(他励式调速范围可达1:20)。

直流电机工作原理

        能量转换:定子磁场与电枢电流相互作用,产生洛伦兹力驱动转子旋转。

        换向机制:换向器随转子旋转,动态切换电枢绕组电流方向,确保转矩方向恒定。

        调速控制:通过改变励磁电流或电枢电压,实现宽范围无级调速。


ULN2003芯片简介

ULN2003是一款高压大电流达林顿晶体管阵列芯片,由七个独立的NPN达林顿管单元组成,专为驱动高电压、大电流负载设计。其核心功能是将低电平逻辑信号(如TTL/CMOS)转换为高功率输出,广泛应用于继电器、步进电机、LED显示等场景。ULN2003芯片实物图如下:

ULN2003芯片的特点

ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路 直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。

ULN2003 工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V的电压,输出还 可以在高负载电流并行运行。

ULN2003 采用DIP—16或SOP—16塑料封装。

ULN2003芯片核心特性

特性

参数

通道数

7通道(达林顿阵列)

最大输出电流

单通道500mA,峰值600mA(多通道并联可提升)

工作电压

5V至50V(COM引脚需接负载电源正极)

输入电平

兼容TTL/CMOS(3.3V/5V逻辑)

饱和压降

约1V(集电极-发射极)

内置保护

反电动势吸收二极管(续流二极管)

封装

DIP-16(直插式)或SOP-16(贴片式)

工作温度

-40℃至85℃(工业级)

ULN2003芯片引脚配置与功能

引脚说明:

1、输入引脚(编号1~7)

        接收微控制器(如Arduino、单片机)的逻辑信号,高电平触发输出导通。

        每个输入引脚串联2.7kΩ基极电阻,可直接与TTL/CMOS接口连接。

2、输出引脚(编号10~16)

        集电极开路输出,低电平时导通(吸收电流),高阻态时断开。

        单个通道最大灌电流500mA,多通道并联可提升至1A。

3、COM引脚(编号9)

        关键功能:连接感性负载(如电机、继电器)的电源正极,形成续流回路,吸收反电动势。

        VCC:通过COM引脚间接供电(负载电源),无需单独供电。

        电阻负载:可悬空不接。

4、地GND(编号8)

        GND(引脚8):芯片参考地,需与微控制器共地。


直流电机硬件电路原理图分析

分析电路原理图:

ULN2003芯片的IN输入脚分别连接MCU的IO引脚,IN1-P10、IN2-P11、IN3-P12、IN3-P13、IN5-P25;

ULN2003芯片的OUT输出脚分别引出座子和连接蜂鸣器引脚,OUT1~OUT4引出座子,OUT5连接蜂鸣器(本章不考虑此引脚);

ULC2003芯片的GND引脚连接公共地,COM引脚连接开发板的VCC电源引脚;

这直流电机元器件中有两个引脚用杜邦线与ULN2003芯片的VCC引脚和OUT1引脚进行连接;

这里有小伙伴会有疑问:

为什么不可以让直流电机的两个引脚与ULN2003芯片的OUT引脚进行连接,还要其中一个引脚特意连接VCC?

这是因为:ULN2003的每个输出脚(OUT)内部藏着一个达林顿晶体管。当输入为低电平时,达林顿晶体管会断开,让OUT引脚变成悬空状态。无法与电机形成电流回路。当输入为高电平时,达林顿晶体管会闭合,相当于OUT输出引脚接地;小伙伴们就简单记住ULN2003芯片的输出脚是个单向开关,当输入为高电平时,对应输出引脚接地。当输入为低电平时,对应输出引脚断开;

小伙伴们还有有一个疑问,为什么ULN2003芯片可以通过小电流(如3.3V和5V逻辑信号)控制大电流负载(如继电器、电机)呢?

这是因为:ULN2003的输入引脚(IN1-IN7)兼容3.3V/5V TTL/CMOS逻辑电平,接受微控制器(如STM32、Arduino)的低压控制信号。输出引脚(OUT1-OUT7)为集电极开路结构,通过外部电源(如5V、12V)为负载供电,输出电压由负载电源决定,而非芯片内部转换。而ULN2003芯片就相当于一个单向开关啦!


驱动直流电机软件编程设计

我们做两个实验:第一个实验直流电机驱动5秒后自动关闭;第二个实验独立按键控制直流电机工作

这里我们直流电机为单向转动模式,我们就无需刻意区分电机正负啦。实现直流电机独立驱动5秒后自动关闭控制实验

代码示例:

#include "reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
void Delay_ms(u16 ms) //毫秒延时函数:输入1大概延时时间为1ms
{u16 i,j;for(i=ms;i>0;i--){for(j=110;j>0;j--){}}
}
sbit FS=P1^0;    //ULN2003输入控制脚
int main()															 
{u8 KEY=0;FS=0;		//直流电机初始化,为静止状态FS=1;      //直流电机开始工作Delay_ms(5000);    //延时时间为5秒FS=0;              //关闭直流电机while(1){}
}

这里我们直流电机为单向转动模式,我们就无需刻意区分电机正负啦。实现直流电机独立按键控制实验

第一步:实现独立按键检测功能;

第二步:实现直流电机驱动功能;

第三步:在主函数中实现独立按键控制直流电机驱动和静止;

代码示例:

#include "reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
void Delay_10us(u16 us)//延时函数:输入1大概延时时间为10us
{while(us--);
}
#define KEY_matrix	P1
sbit KEY1=P3^1;//定义检测独立按键的各个引脚输入状态
sbit KEY2=P3^0;
sbit KEY3=P3^2;
sbit KEY4=P3^3;
#define KEY1_return 1//定义检测独立按键函数检测的状态变量返回值,按键按下分别返回1,2,3,4;没有按键按下返回0;
#define KEY2_return 2
#define KEY3_return 3
#define KEY4_return 4
#define KEY_return 0
u8 KEY_detect(u8 mode)//按键检测函数,返回值为判断是否有按键按下:有按键按下返回值为1-4,无按键按下返回值为:0;
{	static u8 flag=1;if(mode){flag=1;}if((!KEY1 || !KEY2 || !KEY3 || !KEY4) && flag==1)//一次判断是否有按键按下{flag=0;Delay_10us(1000);//延时消抖if(!KEY1)	return KEY1_return;//二次判断else if(!KEY2)	return KEY2_return;else if(!KEY3)	return KEY3_return;else if(!KEY4)	return KEY4_return;}else if(KEY1 && KEY2 && KEY3 && KEY4)//判断所有按键是否松开{flag=1;}return KEY_return;
}
sbit FS=P1^0;
int main()															 
{u8 KEY=0;FS=0;		//直流电机初始化,为静止状态while(1){KEY=KEY_detect(0);if(KEY == 1){FS=1;//按键一按下,直流电机驱动}else if(KEY == 2){FS=0;//按键二按下,直流电机停止工作}	}
}

独立按键控制直流电机驱动效果展示

独立按键控制直流电机效果展示


制作不易!喜欢的小伙伴给个小赞赞!喜欢我的小伙伴点个关注!有不懂的地方和需要的资源随时问我哟!

http://www.dtcms.com/a/342850.html

相关文章:

  • 单片机\物联网\51单片机\嵌入式开发\软硬件结合的基于STM32的电梯管理系统的设计/基于STM32的电梯运行系统的设计
  • 【华为OD-C卷-020 -关联端口组合并 100分(python、java、c++、js、c)】
  • 解决 uniapp 修改index.html文件不生效的问题
  • PCB文件怎么快速判断是通孔还是盲孔呢?
  • Git 2.15.0 64位安装步骤Windows详细教程从下载到验证(附安装包下载)
  • 14、外部中断
  • 【科普向-第三篇】汽车电子MCU操作系统详解:CP AUTOSAR与FreeRTOS
  • 1688电商商品大数据采集之路 技术篇
  • 嵌入式接口通识知识之PWM接口
  • 机器学习聚类与集成算法全解析:从 K-Means 到随机森林的实战指南
  • 从系统漏洞归零到候诊缩短20%:一个信创样本的效能革命
  • 播放器视频后处理实践(一)
  • 视频加水印 视频加水印软件 视频加动态水印
  • 音视频面试题集锦第 29 期
  • 如何有效防止视频在浏览器播放时被录屏?
  • 全媒体人才培育对接会:国际数字影像产业园赋能企业发展
  • 如何学习编程
  • 完全背包(模板)
  • Mysql基础(③事务)
  • [ Servlet 服务器]
  • LTM框架Letta
  • Java项目:基于SpringBoot和VUE的在线拍卖系统(源码+数据库+文档)
  • 【leetcode】202. 快乐数
  • IKE工作过程
  • 树表转换成有层次的List列表(无限层级)
  • 北京-15k测试-入职甲方金融-上班第二天
  • Python面向对象高级编程——多重继承
  • (LeetCode 面试经典 150 题) 129. 求根节点到叶节点数字之和 (深度优先搜索dfs)
  • 麒麟系统播放图片 速度比较
  • 【Python代码】谷歌专利CSV处理函数