51单片机15(直流电机实验)

一、序言:我们知道在单片机当中,直流电机的控制也是非常多的,所以有必要了解一些这个电机相关的一些知识,以及如何使用单片机来控制这个电机,那么在没有学习PWM之前,我们先简单的使用GPIO这个管脚来控制电机的这个旋转和停止,不能直接使用这个GPIO来驱动电机。而是需要相应的驱动电路来驱动我们的电机,而我们的单片机管脚只是用来做控制,那么我们的板子已经绑载了一个驱动芯片URN2013这个芯片,那么这个芯片是一个单片高电压高电流的一个达林顿晶体管的一个集成电路,不仅可以用来驱动我们的直流电机,还可以用来驱动步进电机,那么在后面学习步进电机的时候,我们同样还会用到这个电路。

二、直流电机介绍

1、直流电机是指能将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋转电机。

2、

(1)

(2)像我们普通的电机大多是通过这个电能转换成机械能让它转动,像也有一些发电机,它是通过机械能转换成电能,那么这张图当中,我们可以看到上面这两张图就是我们的直流电机,这个直流电机的个体积还是比较小的。这是我们的普通的一些玩具上的一些直流电机,直流电机,它的一个结构,它是有一个定子和转子这两部分所组成。

(3)直流电机,它运行的时候静止不动,静止不动的部分我们称为定子,定子的主要作用是产生磁场,那么由基座主磁场主磁极,还有换向极以及端盖轴承和电机装置等组成,那么运行的时候,转动的部分,我们称为转子,那其主要的作用是产生这个电子转矩和感应电动势,是直流电机进行能量转换的一个枢纽,我们称之为电枢,由转轴电枢,铁芯电枢老组以及换向器和风扇等组成,这是它的一个内部的一些构造。

(4)直流电机没有正负极之分,没有正负极,只要在这个电机的两端,加上一个直流电,他就能工作,需要知道直流电的这个额定电压和额定功率,不能使之长时间超额的一个运行,比如说我们这个直流电机,它的额定电压是5V,如果在直流电机的两端接入一个9V或者是12V的,如果你长时间工作,可能会把这个芯片或者直流电机里面的一些东西给烧坏。

(5)那么,我假设这里连接一个管脚连接正极,那里连接一个负极,也是给我们的这两个管脚通电,这样电机就能实现转动,因为它没有正负极,所以这里可以接正,这里也可以接负。如果反过来这里接负,那里接正,那它的电机旋转方向就跟刚才的方向是相反的。假入我们刚才还在这里接正,接负,他是处于一个正正转的一个过程。那如果这里接正,这里接负。那它就是反转。所以改变它的一个电流,它的一个方向就会变化这是直流电机。

3、

(1)

(2)那旁边这张图,就是直流电机的一个内部的一个结构,简化图,那我们来看一下,这是AB级,AB两个级,那这里我们给AB电级接了一个电源,我们的A接正,B接负,那这里两片,下面就是我们的这个转子。转子上面有这一个线圈,那这里通入电流的时候,那电流是从正极往下,它就有一个力,产生一个旋转,那根据右手定则,自己看一下电流方向是这样的,那它的力是这样的,所以它会绕这个方向进行一个旋转,那么磁场也是这样的,N级到S级,这是我们直流电机的一个简单的一个示意图。

(3)那如果是这里接正,这里接负呢,那这里的电流方向是这样的,它的一个旋转方向就会反过来,这是我们的直流电机,大家知道我们的直流电机的一个控制方式,只要给这个电机两端一个电压,一个电流过来,它就会实现旋转,那么这个电流的方向不同,那它的旋转方向也就不同。

三、ULN2003芯片介绍

1、ULN2003这是一种可以用来驱动这种大功率器件的一种芯片,如果说直接用芯片的GPL管脚来驱动这种大功率器件,比如说电机,那么它将会让我们的芯片烧坏,要么驱动不起来,或者是直接烧坏,所以要驱动大功率器件,比如电机,那么就必须搭载相应的一些驱动电路,那么开放板上面,板载的驱动芯片是ULN2003这个芯片,那么这个芯片是一个单片的高电压,高电流的达林顿晶体管集成电路,不仅可以用来驱动直流电流,直流电机,还可以驱动步进电机,像五线四相的一个步进电机,28-BYJ-48这种步进电机都可以使用这个芯片来驱动,那我们这里呢,介绍的是使用UN2003这个芯片来驱动我们的直流电机。那下面就来介绍这个芯片的一个使用。

2、UN2003这个芯片,它是一个单片高电压高电流的一个达林顿晶体管的一个阵列集成电路,它是由七对NPN的一个达林顿管所组成,这是它的一个内部结构。

(1)

(2)它的高电压输出特性和阴级嵌位这个二极管可以转换感应负载,单个的独立达林顿管的集电极电流它是500毫安,那达林顿管它并联可以承受更大的电流。这个电路主要是用来驱动继电器,像比较驱动一些继电器,那么像还有一些电灯的一些驱动,还有显示屏的一些驱动LED的一些驱动,以及一些电机的驱动,都可以使用ULN2003来实现,那么这个芯片可以直接和这个TDL或者是5V的CMOS装置来进行对接。

(3)

3、我们知道ULN2003由7对NPN的一个达林顿管,那么这里呢就是它的七个输入通道1到7,然后对应它有输出12345567,那么1B对1C,2B对2C,以此类推。那么E跟COM是它的一个电源角,第八角它是一个GND,第九角是一个电源,也就是我们达林顿管的一个公共端的一个电源。

(1)

(2)这个ULN2003它的一个输出特性有这么一个特性,相当于一个非门,输入为低,输出为高,这个是我们高电平的一个5V,通过这一端连接的电压,如果说这里连接的是24V,那么输入是零,输出是高电平,这个高电平就是24V。

(3)比如说我现在要用ULN2003来驱动我们的直流电机,那我们知道直流电机,它是没有正负极的,那要给它一个电压,那我这里是不是直接可以这样去连接我们的这个直流电机,这里,给一个高电平,让它输出高电平,这里是给它一个输出低电平是不可以的。因为这个ULN2003它是输出,有相当于一个漏极开路,跟我们的P0口一样,它不能直接让它输出高电平,刚才我们说的输入为低,输出为高,是类似于我们的非门,他是需要外部接上拉电阻才可以。但是我们这个使用ULN2003,外部的输出并没有接上拉电阻,这个从我们的原理图可以看到,这是我们的原理图,输出我们并没有接上拉,所以你输出是不能直接输出高电平,那么你要让它连接到直流电机,那你要让它这两个关节连接直流电机肯定是不行的。因为它不能一端输出高,一段输出低,输出低是可以的。因为它输入高,这里输出低是可以的。漏极开路的电路在我们前面介绍P0端口的时候,已经介绍过。

(4)然后接下来怎么用这个芯片来驱动我们的直流电机,既然不能两个管脚连接,那我怎么来驱动它,那COM这个公共端我们知道它是连接到VCC的,所以我可以将我的直流电机一端接到公共端这里,VCC通过这个电源就是相当于我们直接给它一个电源,一个电机上面一个电源,另一端我可以连接这七路当中的某一路的一个输出管脚,这样一来,当我输入为高输出为低电平,那这里为低电平,这里是为VCC,那这里是不是就有电了,电机就会旋转,那你电机就是固定的一个方向旋转,它不能反方向,如果要反方向,除非改变它的电流,但是这里是改变不了的。因为我们知道ULN2003这个输出没有外接上拉电阻,它不能输出高,除非你自己在设计电路的时候,这里再连接一些上拉电阻,在每一个通道上面连接一个上拉电阻,这样一来,我直接就可以利用这两个管脚来进行输出,这里输入高,这里输入低,那这样就对应的,这里输出低,这里输出高,这样电机就会得电进行旋转,那如果这里输入低,这里输入高,那这样对应的就是这里输出高,这里输入低,那这个方向呢又会变化。

四、硬件设计

1、

2、因为我们的A2到A4的产品是集成,也就是说各个资源都已经固定连接到对应的单片机的IO口,从这一张连接图当中,我们可以看到ULN2003的输入我们只用到了五路,其中第五路IN5,它是连接控制我们的蜂鸣器的,这个在前面介绍蜂鸣器实验的时候,我们已经说过,而前面的四路也就是IN1到IN4,他是连接在我们的P10到P13四个管脚,那么这四个管脚对应的输出就是这四个OUT1和OUT4,那么OUT1和OUT4他连接在哪里呢,它是通过一个端子排针引出来,为什么要引出来,我可以方便接这个电机,我这两个管脚是不是就可以接我们的直流电机,那这个固定的是不是VCC,前面也介绍了,为什么要让这个直流电机一端固定VCC,这是根据我们ULN2003这个输出特性决定的。然后这个OUT1,OUT2,OUT3,OUT4可以选择任意一个管脚来连接直流电机的另一端,不能将这个OUT1,OUT2,OUT3,OUT4中的两个连接在直流电机上面,这个前面面也介绍了,为什么不能直接接,然后这是我们的直流电机,它的一个驱动电路。

3、那下面这里呢,是针对我们的A5到A7,因为我们的A5到A7的产品是各个模块独立的,所以它的控制管脚也是通过这种排针这种端子引出来,方便我们用户自己去搭配对应的IO口,你如果是要兼容我们这一套程序,那可以对应到我们的P10,P11,P12,P13这样的对应的连接,那同理,它的输出,也跟这里是一样,这是我们的ULN2003这一个电路驱动的一个电路,从这个驱动电路当中,我们也看到它的输出并没有外接上拉电阻的,如果外接上拉电阻了,我们就可以使用这种ULN2003当中的两个管脚来驱动我们的这个直流电机来实现正反转的一个控制,只实现正反转,但我们现在没有加,所以它只能实现单方向的一个旋转,如果说我们使用这个ULN2013这个芯片来驱动步进电机,它是可以实现正反转。在后面我们学习步进电机的时候,我们会说到为什么要引出一个VCC,引出一个VCC或者说用到了五个管脚,这是因为配合我们后面的这个步进电机,五线四相的一个步进电机来介入这个接口当中就可以控制这个五线四相的步进电机旋转。

五、软件设计

1、本章所要实现的功能是:直流电机工作约5s后停止。

2、

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3270286.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

女人内裤怎么洗才是最干净?内衣裤洗衣机怎么样?哪个牌子更好?

最近刚好用到一款比较好用的洗内衣裤洗衣机!如果你也和我一样有洗内衣裤烦恼的,或者可以看看! 内衣裤作为贴身穿的衣服,我是不会把它和外衣一起清洗的,而家里面的大洗衣机已经担起了清洗外衣的工作! 朋友们…

jdk的major version和minor version是啥意思?

写在前面 1:正文 major version是大版本号,minor version是小版本号,但目前minor version都是0(也可能是我没有发现😅),如jdk8就是52,如下表: 可以看到jdk版本号和ma…

优思学院:六西格玛黑带的价值仍在吗?

六西格玛自20世纪80年代由摩托罗拉提出以来,已经深刻地影响了全球的质量管理实践。六西格玛方法论中的一个关键角色就是“黑带”,这些人经过培训,能够领导问题解决项目。随着进入数字化时代,自动化和数据分析在商业运营中变得越来…

【区块链】JavaScript连接web3钱包,实现测试网络中的 Sepolia ETH余额查询、转账功能

审核看清楚了 ! 这是以太坊测试网络!用于学习的测试网络!!! 有关web3 和区块链的内容为什么要给我审核不通过? 别人凭什么可以发! 目标成果: 实现功能分析: 显示账户信…

第N8周:图解NLP中的注意力机制

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 一、前期知识储备 注意力机制是一种模拟人类大脑注意力分配方式的计算模型,它能够在处理大量信息时,聚焦于重要的部分,而忽…

打卡第二十五天:递增子序列、全排列、全排列II、重新安排行程、N皇后、解数独

1、递增子序列 题目 文章 视频 这个递增子序列比较像是取有序的子集。而且本题也要求不能有相同的递增子序列。在子集一题中通过排序,再加一个标记数组来达到去重的目的。而本题求自增子序列,是不能对原数组进行排序的,排完序的数组都是自…

数据结构:(1)线性表

一、基本概念 概念:零个或多个数据元素的有限序列 元素之间是有顺序了。如果存在多个元素,第一个元素无前驱,最后一个没有后继,其他的元素只有一个前驱和一个后继。 当线性表元素的个数n(n>0&am…

NzN的C语言全解析--C语言常见概念

目录 1. C语言是什么? 2. C语言的历史 3. 编译器的选择--VS2022 (1) 编译和链接 (2) VS2022 的优缺点 4. VS项目和源文件、头文件介绍 5. 第一个C语言程序 6. main函数 7. printf和库函数 8. 关键字 9. 字符和ASCII编码 10. 字符串和\0 11. 转义字符 …

文件系统基础(一)

目录 一 . 文件的基本概念文件的结构文件的属性文件的分类 二. 文件控制块和索引节点文件控制块(FCB)索引节点磁盘索引节点内存索引节点 三. 文件的操作文件的基本操作文件的打开与关闭文件打开文件关闭文件名与文件描述符的应用 四. 文件的保护访问类型…

用PyTorch从零开始编写DeepSeek-V2

DeepSeek-V2是一个强大的开源混合专家(MoE)语言模型,通过创新的Transformer架构实现了经济高效的训练和推理。该模型总共拥有2360亿参数,其中每个令牌激活21亿参数,支持最大128K令牌的上下文长度。 在开源模型中&…

Godot入门 02玩家1.0版

添加Node2D节点,重命名Game 创建玩家场景,添加CharacterBody2D节点 添加AnimatedSprite2D节点 从精灵表中添加帧 选择文件 设置成8*8 图片边缘模糊改为清晰 设置加载后自动播放,动画循环 。动画速度10FPS,修改动画名称idle。 拖动…

数据结构之探索“堆”的奥秘

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏:数据结构(Java版) 目录 堆的概念 堆的创建 时间复杂度分析: 堆的插入与删除 优先级队列 PriorityQ…

学习大数据DAY23 Linux基本指令4与ngnix安装以及Shell,python编写环境配置

目录 其他扩展类 echo 输出字符串 date 显示当前日期 (用于日期转字符串) date -d 日期解析(用于字符串转日期) date 设置日期 linux 网络对时 cal 查看日历 wget 命令 seq 命令 Linux 定时执行计划 特殊符号说明 linux 添加硬盘分区挂载 上…

【QT】QT 系统相关(事件、文件、多线程、网络、音视频)

一、Qt 事件 1、事件介绍 事件是应用程序内部或者外部产生的事情或者动作的统称。在 Qt 中使用一个对象来表示一个事件。所有的 Qt 事件均继承于抽象类 QEvent。事件是由系统或者 Qt 平台本身在不同的时刻发出的。当用户按下鼠标、敲下键盘,或者是窗口需要重新绘制…

初阶数据结构完结 图解所有初阶数据结构 顺序表

1数据结构 1.线性表 线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是⼀种在实际中⼴泛使 ⽤的 数据结构,常⻅的线性表:顺序表、链表、栈、队列、字符串… 线性表在逻辑上是线性结构,也就说是连…

Centos7_Minimal安装Cannot find a valid baseurl for repo: base/7/x86_6

问题 运行yum报此问题 就是没网 解决方法 修改网络信息配置文件,打开配置文件,输入命令: vi /etc/sysconfig/network-scripts/ifcfg-网卡名字把ONBOOTno,改为ONBOOTyes 重启网卡 /etc/init.d/network restart 网路通了

SSRF中伪协议学习

SSRF常用的伪协议 file:// 从文件系统中获取文件内容,如file:///etc/passwd dict:// 字典服务协议,访问字典资源,如 dict:///ip:6739/info: ftp:// 可用于网络端口扫描 sftp:// SSH文件传输协议或安全文件传输协议 ldap://轻量级目录访问协议 tftp:// 简单文件传输协议 gopher…

Python | TypeError: ‘float’ object is not subscriptable

Python | TypeError: ‘float’ object is not subscriptable 在Python编程中,遇到“TypeError: ‘float’ object is not subscriptable”这一错误通常意味着你尝试对浮点数(float)使用了下标访问(如数组或列表那样的访问方式&a…

Typecho仿百度响应式主题Xaink源码

新闻类型博客主题,简洁好看,适合资讯类、快讯类、新闻类博客建站,响应式设计,支持明亮和黑暗模式 直接下载 zip 源码->解压后移动到 Typecho 主题目录->改名为xaink->启用。 源码下载:https://download.csdn…

【秋招笔试题】小Q的树

解析&#xff1a;分析易得走过的路中至多存在一个分叉&#xff0c;则维护每个结点接下来的路的最大值与次大值然后相加即可。 #include <iostream> #include <vector> #include <algorithm> using namespace std; #define int long long const int MAXN 1…