51单片机(6)-----直流电机的介绍与使用(通过独立按键控制电机的运行)

 

前言:感谢您的关注哦,我会持续更新编程相关知识,愿您在这里有所收获。如果有任何问题,欢迎沟通交流!期待与您在学习编程的道路上共同进步。

 

目录

一.  直流电机模块介绍 

1.直流电机介绍 

2.电机参数

二.  程序设计及原理介绍 

1.ULN2003芯片介绍

2.电机模块图 

3.程序设计 

三.  实验现象

1.实验现象 

2.实验视频 


 

 

一.  直流电机模块介绍 

 

1.直流电机介绍 

  直流电机是指能将直流电能转换成机械能(直流电动机)或将机械能转换成 直流电能(直流发电机)的旋转电机。它是能实现直流电能和机械能互相转换的 电机。当它作电动机运行时是直流电动机,将电能转换为机械能;作发电机运行 时是直流发电机,将机械能转换为电能。

  直流电机的结构应由定子和转子两大部分组成。直流电机运行时静止不动的 部分称为定子,定子的主要作用是产生磁场,由机座、主磁极、 换向极、 端盖、 轴承和电刷装置等组成。运行时转动的部分称为转子,其主要作用是产生电磁转 矩和感应电动势,是直流电机进行能量转换的枢纽,所以通常又称为电枢,由转 轴、电枢铁心、电枢绕组、换向器和风扇等组成。

  直流电机没有正负之分,在两端加上直流电就能工作。需要知道直流电机的 额定电压和额定功率,不能使之长时间超负荷运作。 在交换接线后,可以形成 正反转。

 

2.电机参数

开发板配置的直流电机为 5V 直流电机,其主要参数如下:                                                           轴长:8mm                                                                                                                                         轴径:2mm                                                                                                                                         电压:1-6V                                                                                                                                        参考电流:0.35-0.4A                                                                                                                          3V 转速:17000-18000 转每分钟 

 外观实物图如下:

其内部结构如下图所示:

 

 

二.  程序设计及原理介绍 

 

    51 单片机主要是用来控制而非驱动,如果直接使用芯片的 GPIO 管脚去驱动大功率器件,要么将芯片烧坏,要么就驱动不起来。所以要驱动大功 率器件,比如电机。就必须搭建驱动电路,开发板上板载的驱动芯片是 ULN2003, 该芯片是一个单片高电压、高电流的达林顿晶体管阵列集成电路。不仅可以用来 驱动直流电机,还可用来驱动五线四相步进电机,比如 28BYJ-48 步进电机。

 

1.ULN2003芯片介绍

下面来具体介绍下 ULN2003 芯片:

ULN2003 是一个单片高电压、高电流的达林顿晶体管阵列集成电路。它是由 7 对 NPN 达林顿管组成的,它的高电压输出特性和阴极箝位二极管可以转换感应 负载。单个达林顿对的集电极电流是 500mA。达林顿管并联可以承受更大的电流。 此电路主要应用于继电器驱动器,字锤驱动器,灯驱动器,显示驱动器(LED 气 体放电),线路驱动器和逻辑缓冲器。ULN2003 的每对达林顿管都有一个 2.7k 串联电阻,可以直接和 TTL 或 5V CMOS装置。

(1)主要特点

①500mA 额定集电极电流(单个输出)

②高电压输出:50V

③输入和各种逻辑类型兼容

④继电器驱动器

 

(2)逻辑框图

 

 

注意:其内部相当于非门电路,即输入 高输出为低,输入为低输出是高,这里要注意:因为 ULN2003 的输出是集电极开 路,ULN2003 要输出高电平,必须在输出口外接上拉电阻。这也就能解释在后面 连接直流电机时为什么不能直接将 ULN2003 的 2 个输出口接电机线,而必须一 根线接电源,另一个才接 ULN2003 。

 

2.电机模块图 

 

 

   从上图可知,ULN2003 的输入口与单片机的 P1.0-P1.3 连接,对应输出则是 OUT1-OUT4,而 J47 则是提供给外部连接电机的接口,可以支持直流电机、五线 四相步进电机 28BYJ-48 连接。本实验使用的是直流电机,电机的一根线连接在 VCC 上,另一根连接在 OUT1 上,因此可通过单片机 P1.0 口输出高电平来控制电 机旋转,输出低电源控制电机停止。注意:单片机 P1.0 输出低电平时,ULN2003 的 OUT1 并不会输出高电平导致停止,而是因为集电极开路,导致电机无电流流 入致使停止。

 

3.程序设计 

#include <REGX52.H>
//延时函数
void Delay(unsigned int xms)	//@11.0592MHz
{unsigned char data i, j;while(xms){i = 2;j = 199;do{while (--j);} while (--i);xms--;}
}sbit DC_Motor=P1^0;    //定义直流电机为P1^0口void main()
{	DC_Motor=0;  //首先让电机停止转动while(1){if(P3_1==0)  //检查按键是否按下{Delay(20);   //延时消抖if(P3_1==0)  //再次检查按键是否按下{DC_Motor=~DC_Motor;  //电机状态取反}}while(~P3_1)  //用于检查是否松开按键{}}		
}

具体可见上面的注释。 

 

三.  实验现象

 

1.实验现象 

    当烧录进程序后,电机开始转动,转一会儿后停止转动,接着通过独立按键K1实现对电机的开关控制。 

 

2.实验视频 

 

51单片机直流电机

 

感谢老铁的浏览,希望老铁可以一键三连加个关注,您的支持和鼓励是我前进的动力,后续会分享更多学习编程的内容 。

 

 

 

 

 

 

 

 

 

 

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

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

相关文章

C语言创建json数据

在C语言中创建JSON数据可以使用第三方库&#xff0c;比如 cJSON。cJSON是一个轻量级的JSON解析器和生成器&#xff0c;可以用于创建、解析和操作JSON数据。 以下是使用cJSON库创建JSON数据的步骤&#xff1a; 首先&#xff0c;你需要下载并包含cJSON库的头文件。你可以在cJSO…

Python set 集合中的内置方法介绍及其示例

python set 的所有内置方法 本文详细介绍了Python中set集合的内置方法及其示例。Set&#xff08;集合&#xff09;是Python中一种无序且不重复的数据结构&#xff0c;用于存储唯一的元素。它提供了一系列内置方法&#xff0c;用于操作集合&#xff0c;如添加、删除、交集、并集…

JAVA泛型浅析

Java范型generics&#xff0c;是JDK1.5引入的新特性&#xff0c;是一种编译时类型安全检测机制&#xff0c;可以在编译时检测到非法的类型。范型的本质是将类型参数化&#xff0c;将类型指定成一个参数。java中的集合就有使用&#xff0c;并且对外提供的三方库和SDK中使用也极为…

返回数据(返回视图所需要的数据)

在上篇文章中&#xff0c;小编带领大家了解到&#xff1a;返回静态数据-CSDN博客&#xff0c;但是&#xff0c;仅仅返回一个静态页面&#xff0c;对于静态页面的数据没正常返回&#xff01; 所以&#xff0c;本篇文章便讲述如何返回数据&#xff1f;&#xff1f; 还是先不管前…

从win11切换到ubuntu20的第1天

我不想做双系统&#xff0c;反正win11也没有意思&#xff0c;打游戏直接去网吧&#xff0c;所以电脑直接重装了ubuntu20&#xff0c;为什么不是ubuntu22&#xff1f;因为版本太新&#xff0c;很多东西不支持。为什么不装ubuntu18&#xff1f;因为我电脑装完了之后不支持外界显示…

敏捷开发最佳实践:质量维度实践案例之软硬一体持续交付

在过去的Top敏捷实践案例中&#xff0c;我们可以看到企业或团队在敏捷质量管理上的创新&#xff0c;包括场景化测试、迭代T1自动化覆盖、一套自动用例到处运行、用例持续运行可视化等&#xff0c;而这也进一步促进了价值流动。本文将继续给大家带来全新的质量维度实践案例&…

【MySQL】_外连接

目录 3.1 情况一&#xff1a;两个表数据一一对应 3.2 情况二&#xff1a;两个表数据并非一一对应 本专栏关于联合查询已建立相应库与表&#xff0c;原文链接如下&#xff1a; 【MySQL】_联合查询基础表-CSDN博客 内连接原文如下&#xff1a; 【MySQL】_内连接-CSDN博客 基…

react 路由的基本原理及实现

1. react 路由原理 不同路径渲染不同的组件 有两种实现方式 ● HasRouter 利用hash实现路由切换 ● BrowserRouter 实现h5 API实现路由切换 1. 1 HasRouter 利用hash 实现路由切换 1.2 BrowserRouter 利用h5 Api实现路由的切换 1.2.1 history HTML5规范给我们提供了一个…

Android studio (一) 新建一个Android项目 编程语言为Java

一、下载Android studio 下载 Android Studio 和应用工具 - Android 开发者 | Android Developers 这里我下载的是2023年的 二、新建项目 选择如下模板。 填写项目名、项目保存位置、编程语言、最低支持Android API的版本、打包编译模式 三、报错Connection refused: no …

GO语言学习笔记(与Java的比较学习)(四)

结构体 一个结构体&#xff08;struct&#xff09;就是一组字段&#xff08;field&#xff09;。 package main ​ import "fmt" ​ type Vertex struct {X intY int } ​ func main() {fmt.Println(Vertex{1, 2}) } 结构体中的字段用 . 访问 package main ​ im…

【GB28181】wvp-GB28181-pro快速适配 连接SQlite3数据库

引言 wvp最新项目支持mysql等数据库, 如果本地没有安装mysql等数据库,并想直接可以运行wvp项目,需要进行二次修改。 本文包含:WVP最新代码适配SQlite3数据库 运行平台:windows或linux 文章目录 一、为何使用SQlite二、配置修改2.1 添加SQlite3依赖2.2 修改SQlite3不支持的…

进程的通信以及信号的学习

一&#xff0c;进程的通信&#xff1a; 种类&#xff1a;1.管道 2.信号 3.消息队列 4.共享内存 5.信号灯 6.套接字 1.管道: 1.无名管道 无名管道只能用于具有亲缘关系的进程间通信 pipe int pipe(int pipefd[2]); 功能: 创建一个无名管道 …

Rust 交叉编译 macOS 为 Linux 和 Windows

文章目录 前言环境案例macOS 编译为 Linux 和 Windows 可用二进制程序编译为 Linux 平台编译为Windows平台 最后 前言 鉴于 rust 中文资料较少&#xff0c;遇到问题的解决方案更少。这里记录遇到的一些问题。 Rust 支持交叉编译&#xff0c;可以在 macOS 平台编译出 Linux 或者…

机器学习——CBOW基于矩阵(手动实操)

基于矩阵的CBOW基础算法&#xff0c;其实是负采样的前提算法。 主要是根据 预测准确率为22%左右 说实话。。。我已经很满意了&#xff0c;至少这个东西是可以去预测的&#xff0c;至于预测为什么不正确&#xff0c;我目前猜测主要还是跟词频有关。 在结果中&#xff0c;an…

uniapp:启动图 .9png 制作教程

1、工具安装&#xff1a;自行下载Android Studio 2、制作.9png 注意上图3条黑线的位置&#xff0c;意思是&#xff1a;标注黑线的位置可以进行缩放。 对其大多数启动图来说&#xff0c;标注以上3条黑线即可。

一周掌握【机器学习】入门知识

学习目标&#xff1a; 一周掌握 机器学习 入门知识 学习内容&#xff1a; 1.了解机器学习的基本概念&#xff1a; 阅读由 Keras 的创建者 Francois Chollet 编著的《使用 Python进行深度学习》。这本书从程序员的角度介绍了机器学习的基础知识。您可以阅读第 1-4 章&#xff…

ETH开源PPO算法学习

前言 项目地址&#xff1a;https://github.com/leggedrobotics/rsl_rl 项目简介&#xff1a;快速简单的强化学习算法实现&#xff0c;设计为完全在 GPU 上运行。这段代码是 NVIDIA Isaac GYM 提供的 rl-pytorch 的进化版。 下载源码&#xff0c;查看目录&#xff0c;整个项目…

创新之巅 健康之选 森歌集成灶智能水洗新揭秘

2024年2月27日&#xff0c;一场引领智能厨电风潮的盛会在杭州隆重召开。森歌集成灶以“勠力同心 共生共歌”为主题&#xff0c;成功举办了2024森歌智能厨电优秀经销商峰会。此次峰会上&#xff0c;森歌集成灶发布了令人瞩目的奥运冠军同款智能厨电新品——森歌鲸洗小灶Z60&…

前端架构: 脚手架之多package项目管理和架构

多package项目管理 1 &#xff09;多package项目管理概述 通常来说&#xff0c;当一个项目变大了以后&#xff0c;我们就要对这个项目进行拆分在前端当中&#xff0c;对于项目进行拆分的方式&#xff0c;通常把它称之为javascript包管理需要使用一个工具叫做 npm (Node Packag…

JS二进制文件转换:File、Blob、Base64、ArrayBuffer

类型转换 1. Blob、File → Base64 function fileToDataURL(file) {let reader new FileReader();reader.readAsDataURL(file);reader.onload function (e) {return reader.result;}; }2. Base64 → Blob、File // Base64 转为 Blob function dataURLToBlob(fileDataURL) …