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

news2024/11/13 13:03:29

一、序言:我们知道在单片机当中,直流电机的控制也是非常多的,所以有必要了解一些这个电机相关的一些知识,以及如何使用单片机来控制这个电机,那么在没有学习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://www.coloradmin.cn/o/1945419.html

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

相关文章

【MySQL】Ubuntu22.04 安装 MySQL8 数据库详解

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《C》 《Linux》《MySQL》《Qt》 ❤️感谢大家点赞👍收藏⭐评论✍️ 一、安装目录 1.1 更新软件源 sheepAron:/root$ sudo apt update1.2 安装mysql_ser…

手持式气象监测设备

手持式气象监测设备以其小巧轻便、功能齐全的特点,逐渐成为了现代气象观测的便携新选择。 一、手持式气象监测设备的优势 手持式气象监测设备最大的优势在于其便携性。相比传统的气象监测站,手持式气象监测设备体积小巧、重量轻,用户可以轻松…

聊一聊 Node.js V22.5 有啥重要更新

大家好,今天我们来聊聊 Node.js 最新发布的 V22.5 版本。作为一名开发者,每次看到新的版本更新,总是让人期待不已。V22.5 中新增了许多强大且实用的功能,让我们的开发工作更加高效便捷。在这篇文章中,我们将重点讨论以…

压测实操--kafka-consumer压测方案

作者:九月 环境信息: 操作系统centos7.9,kafka版本为hdp集群中的2.0版本。 Consumer相关参数 使用Kafka自带的kafka-consumer-perf-test.sh脚本进行压测,该脚本参数为: thread:测试时的单机线程数&…

心率血氧传感器 - 从零开始认识各种传感器【第十三期】

1、什么是心率血氧传感器 心率传感器是一种用于测量人体心跳频率的设备或传感器。由于脉搏或者心率是生命体征的重要参数之一,所以心率测量是目前可穿戴产品必备的一个测量和健康监控功能。 而血氧传感器是一种用于测量人体血液中氧气饱和度的设备或传感器。血氧饱…

c# 端口监控 Helper 以及写一个端口监控工具

c# 端口监控 Helper 以及写一个端口监控工具 介绍核心代码:工具完整编码:1、编写界面2、打开定时控件的属性设置。3、编写定时控件的 Tick 事件结果(运行效果) 介绍 由于最近做上架比较多,会经常来确保服务器的服务&a…

分享从零开始学习网络设备配置--任务6.1 实现计算机的安全接入

项目描述 随着网络技术的发展和应用范围的不断扩大,网络已经成为人们日常生活中必不可少的一部分。园区网作为给终端用户提供网络接入和基础服务的应用环境,其存在的网络安全隐患不断显现出来,如非人为的或自然力造成的故障、事故&#xff1b…

第八讲:Sysmac Studio控制器设置

控制器设置 一、控制器设定-操作设置 1、启动模式(运行模式/编程模式) 控制器上电后,希望程序运行还是不运行。如果说希望程序运行,那么就选择运行模式。如果说希望上电后程序不运行就选择编程模式。 通常情况下选运行模式可能会比较多一些。 2、SD内存卡设置 当控制…

科研绘图系列:R语言和弦图 (Chord diagram)

介绍 和弦图(Chord Diagram)是一种用于展示多个实体之间相互关系的数据可视化方法。它通常用于表示网络或系统中不同节点(实体)之间的连接强度或流量。和弦图由一个圆形布局组成,每个节点在圆周上占据一个扇形区域,节点之间的连接通过圆内的线条(和弦)来表示。 特点:…

获取本地时间(Linux下,C语言)

一、函数 #include <time.h> time_t time(time_t *tloc);函数功能&#xff1a;获取本机时间&#xff08;以秒数存储&#xff0c;从1970年1月1日0:0:0开始到现在&#xff09;。返回值&#xff1a;获得的秒数&#xff0c;如果形参非空&#xff0c;返回值也可以通过传址调用…

判断字符串,数组方法

判断字符串方法 在JavaScript中&#xff0c;可以使用typeof操作符来判断一个变量是否为字符串。 function isString(value) {return typeof value string; } 判断数组 在JavaScript中&#xff0c;typeof操作符并不足以准确判断一个变量是否为数组&#xff0c;因为typeof会…

Soul App创始人张璐团队参与公益活动,帮助年轻人正视并管理情绪需求

最近,“脆皮年轻人”在社交平台上持续走红。该词指年轻人常因别人一些无意的动作而导致身体或心理创伤,反映出“Z世代”年轻人面临着心理健康挑战。在此背景下,Soul APP创始人张璐团队携手上海市精神卫生中心(宛平南路600号),共同发起了一场别开生面的青年心理健康公益活动,旨在…

JDBC操作MySQL数据

一准备、 1、首先在IDEA中导入导入包&#xff1a;mysql-connector-java-8.0.23 2、写初始化语句 &#xff08;1&#xff09;在目录下找到driver类 &#xff08;2&#xff09;在JDBCUtil函数中把驱动器的类路径改掉 ①打开driver类 ②按住类名 Driver用快捷键 CtrlAltshiftC …

学懂C语言(十八):C语言中数组及其应用

目录 一、数组的概念 二、数组的声明、初始化及访问 1、声明 2、初始化 3、访问数组元素 三、数组的应用 1. 存储和处理数据 2. 字符串处理 3. 多维数组 4. 函数参数 5、注意事项 一、数组的概念 C语言中的数组是一种数据结构&#xff0c;用于存储一…

开源邮箱套件介绍系列1:SOGo

项目网站&#xff1a;SOGo | Free Open Source Webmail 提示&#xff1a;如下内容大部分来自官方网站&#xff0c;通过AI智能翻译而来。 1. SOGo功能概述 SOGo提供了多种访问日历和消息数据的方式。您的用户可以使用网页浏览器、Microsoft Outlook、Mozilla Thunderbird、Ap…

连接hive库增加相关包

连接hive库增加相关包 例如&#xff1a;java.lang.NoClassDefFoundError: com/ctc/wstx/io/InputBootstrapper org.apache.hadoop.hive.common.auth.HiveAuthUtils java.lang.NoClassDefFoundError: org/codehaus/stax2/XMLInputFactory2

Windows系统上Git详细图文安装及使用教程

Git 是一种高效、分布式的版本控制系统&#xff0c;用于代码的跟踪、分支管理和协同工作&#xff0c;支持快速提交、合并和回滚操作。它是开发者工具箱中必不可少的工具之一&#xff0c;广泛应用于软件开发和其他需要版本控制的领域。 1. Git的安装 1.1 Git下载 可以通过以下…

ESXi 虚拟机迁移,版本不兼容问题处理

背景描述 已知要被迁移的虚拟机的兼容性版本较高&#xff0c;如下图所示&#xff1a; 这个兼容性版本&#xff0c;是在创建虚拟机的时候&#xff0c;我们手工选择的&#xff0c;如下图所示&#xff1a; 当我们需要将一个虚拟机迁移到另外一个 ESXi 主机时&#xff0c;能否正常…

【计算机网络】三次握手、四次挥手

问&#xff1a;三次握手 四次挥手 TCP 连接过程是 3 次握手&#xff0c;终止过程是 4 次挥手 3次握手 第一步&#xff1a;客户端向服务器发送一个带有 SYN&#xff08;同步&#xff09;标志的包&#xff0c;指示客户端要建立连接。 第二步&#xff1a;服务器收到客户端的请求…

Shiro安全框架(上)

目录 第一章 权限概述 1、什么是权限 2、身份认证概念-Authentication 【1】什么是认证 【2】对象 2、用户授权概念-Authorization 【1】什么是授权 【2】授权流程 第二章 Shiro概述 1、Shiro简介 【1】什么是Shiro? 【2】Shiro 的特点 2、核心组件 第三章 Shiro…