嵌入式开发学习(STC51-10-直流电机)

news2024/12/25 14:19:59

内容

直流电机工作约5S后停止

直流电机简介

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

直流电机的结构应由定子和转子两大部分组成;

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

直流电机没有正负之分,在两端加上直流电就能工作;在交换接线后,可以形成正反转;

使用前需要知道直流电机的额定电压和额定功率,不能使之长时间超负荷运作;

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

ULN2003芯片简介

由于51单片机主要是用来控制而非驱动,如果直接使用芯片的GPIO管脚去驱动大功率器件,要么将芯片烧坏,要么就驱动不起来;

所以要驱动大功率器件,比如电机,就必须搭建驱动电路,开发板上板载的驱动芯片是ULN2003,该芯片是一个单片高电压、高电流的达林顿晶体管阵列集成电路;

不仅可以用来驱动直流电机,还可用来驱动五线四相步进电机,比如28BYJ-48步进电机;

ULN2003是一个单片高电压、高电流的达林顿晶体管阵列集成电路;

它是由7对NPN达林顿管组成的,它的高电压输出特性和阴极箝位二极管可以转换感应负载;

单个达林顿对的集电极电流是500mA,达林顿管并联可以承受更大的电流;

此电路主要应用于继电器驱动器,字锤驱动器,灯驱动器,显示驱动器(LED气体放电),线路驱动器和逻辑缓冲器等;

ULN2003的每对达林顿管都有一个2.7k串联电阻,可以直接和TTL或5V CMOS装置相连;

主要特点:

  • 500mA额定集电极电流(单个输出),
  • 高电压输出:50V
  • 输入和各种逻辑类型兼容
  • 继电器驱动器

原理图

在这里插入图片描述
由逻辑图可知,其内部相当于非门电路,即输入高输出为低,输入为低输出是高;

这里要注意:因为ULN2003的输出是集电极开路,ULN2003要输出高电平,必须在输出口外接上拉电阻;

若使用该芯片驱动直流电机,只可实现单方向控制,电机一端接电源正极,另一端接芯片的输出口;

若想控制五线四相步进电机,则可将四路输出接到步进电机的四相上,电机另一条线接电源正;
在这里插入图片描述
从上图可知,ULN2003的输入口与单片机的P10-P13连接,对应输出则是OUT1-OUT4,而J47则是提供给外部连接电机的接口,可以支持直流电机、五线四相步进电机28BYJ-48连接;

我们使用的是直流电机,可以将电机的一根线连接在VCC上,另一根连接在OUT1上,因此可通过单片机P10口输出高电平来控制电机旋转,输出低电源控制电机停止;

注意:单片机P10输出低电平时,ULN2003的OUT1并不会输出高电平导致停止,而是因为集电极开路,导致电机无电流流入致使停止;

思路

P10口输出高电平即开启电机,输出低电平就关闭电机;

编码

main.c

/*
 * @Description: 使直流电机启动5秒后关闭
 */
#include "reg52.h"

typedef unsigned int u16; // 对系统默认数据类型进行重定义
typedef unsigned char u8;

// 定义直流电机控制管脚
sbit DC_Motor = P1 ^ 0;

/**
 * @description: 延时函数(循环一次大约10us)
 * @param {u16} ten_us
 * @return {*}
 */
void delay_10us(u16 ten_us)
{
	while (ten_us--)
		;
}

/**
 * @description: 延时函数(循环一次大约1ms)
 * @param {u16} ms
 * @return {*}
 */
void delay_ms(u16 ms)
{
	u16 i, j;
	for (i = ms; i > 0; i--)
		for (j = 110; j > 0; j--)
			;
}

void main()
{
	DC_Motor = 1;	// 开启电机
	delay_ms(5000); // 直流电机运行时间为5000ms
	DC_Motor = 0;	// 关闭电机
	while (1)
	{
	}
}

编译和结果

按F7编译,无错误,生成.hex文件,使用pz-isp将hex文件下载到单片机

(将电机的电源线接到J47的01口和5v口)

结果:直流电机工作约5S后停止
在这里插入图片描述

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

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

相关文章

AI:01-基于机器学习的深度学习的玫瑰花种类的识别

深度学习技术在图像识别领域有着广泛的应用,其中一种应用就是玫瑰花种类的识别。在本文中,我们将介绍如何使用机器学习和深度学习技术来实现玫瑰花种类的识别,并提供相应的代码实现。 一、数据集介绍 在进行机器学习和深度学习模型的训练之前,我们需要先准备好相应的数据集…

3dmax好用插件CG Magic专业版上线,批量渲染,智能优化

CG Magic是一款基于3ds Max深度开发的智能化辅助插件,上千项实用功能,降低渲染时长,节省时间和精力,最大程度简化工作流程,助力高效完成创作。 CG MAGIC是基于3ds Max深度开发的智能化辅助设计插件,目前有两…

java.lang.IllegalStateException: 不允许修改锁定的参数映射

问题描述: 这个问题是在我写javaweb项目,做敏感词过滤时出现的 需求是:如果是由 getParameter(String s) 得到的数据,可以直接修改value值,将含有敏感词的部分替换为 *** request.getParameterMap() 方法返回一个包…

三、 mysql 事务

三、 mysql 事务 061 什么是数据库事务?事务的特性是什么? 事务: 是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作; 这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行&am…

仅使用 CSS 创建打字机动画效果

创建打字机效果比您想象的要容易。虽然实现这种效果的最常见方法是使用 JavaScript,但我们也可以使用纯 CSS 来创建我们的打字机动画。 在本文中,我们将了解如何仅使用 CSS 创建打字机动画效果。它简单、漂亮、容易。我们还将看看使用 CSS 与 JavaScrip…

Java分布式微服务1——注册中心(Eureka/Nacos)

文章目录 基础知识注册中心Eureka注册中心与Ribbon负载均衡1、Eureka注册中心2、Eureka的搭建3、Eureka服务注册4、复制服务实例5、拉取服务6、Ribbon负载均衡的流程及Eureka规则调整:7、Ribbon负载均衡饥饿加载 Nacos注册中心1、服务端Nacos安装与启动2、客户端Nac…

MinIO:微服务中上传图片流程

1、在nacos中配置minio参数 2、controller层 package com.heima.wemedia.controller.v1;import com.heima.model.common.dtos.ResponseResult; import com.heima.wemedia.service.WmMaterialService; import org.springframework.beans.factory.annotation.Autowired; import …

瑞数系列及顶像二次验证LOGS

瑞数商标局药监局专利局及顶像二次验证 日期:20230808 瑞数信息安全是一个专注于信息安全领域的公司,致力于为企业和个人提供全面的信息安全解决方案。他们的主要业务包括网络安全、数据安全、应用安全、云安全等方面的服务和产品。瑞数信息安全拥有一支…

AMASS database

AMASS是一个由不同的光学标记运动捕捉数据集统一表示在一个公共框架和参数化下的大型人体运动数据库。它包含了超过40小时的运动数据,涵盖了300多个主体和11000多个运动。它使用了SMPL人体模型,它是一种基于混合形状和姿态空间的生成式人体模型&#xff…

用html+javascript打造公文一键排版系统15:一键删除所有空格

现在我们来实现一键删除所有空格的功能。 一、使用原有的代码来实现,测试效果并不理想 在这之前我们已经为String对象编写了一个使用正则表达式来删除所有空格的方法: //功能:删除字符串中的所有空格 //记录:20230726创建 Stri…

WPF上位机9——Lambda和Linq

Lambda Linq 操作集合 使用类sql形式查询 Linq To SQL

PCB电路板设计基础入门学习笔记

文章目录: 一:Arduino线路板绘制(原理图库、PCB库、原理图、PCB图绘制) 1.原理图库绘制Schematic Library(有现成库,没有就自己画)[SCH Library] 方法一:自己依次画 ATMEGA328P-…

滑动窗口(全面清晰/Java)

数组模拟单调队列 分析 以k3举例&#xff1a; (1)利用单调队列的性质&#xff1a; <1>最小值&#xff1a;确保队列单调递增&#xff0c;处理后&#xff0c;队头即是最小值。 <2>最大值&#xff1a;确保队列单调递减&#xff0c;处理后&#xff0c;队头即是最大值…

【CSS】文本效果

文本溢出、整字换行、换行规则以及书写模式 代码&#xff1a; <style> p.test1 {white-space: nowrap; width: 200px; border: 1px solid #000000;overflow: hidden;text-overflow: clip; }p.test2 {white-space: nowrap; width: 200px; border: 1px solid #000000;ove…

Prometheus技术文档--基本安装-docker安装并挂载数据卷-《十分钟搭建》

一、查看可安装的版本 docker search prom/prometheus 二、拉取镜像 docker pull prom/prometheus 三、查看镜像 docker images 四、书写配置文件-以及创建挂载目录 宿主机挂载目录位置&#xff1a; 以及准备对应的挂载目录&#xff1a; /usr/local/docker/promethues/se…

【LeetCode每日一题】——219.存在重复元素II

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 哈希表 二【题目难度】 简单 三【题目编号】 219.存在重复元素II 四【题目描述】 给你一个…

[考研机试] KY20 完数VS盈数 清华大学复试上机题 C++实现

描述 一个数如果恰好等于它的各因子(该数本身除外)子和&#xff0c;如&#xff1a;6321。则称其为“完数”&#xff1b;若因子之和大于该数&#xff0c;则称其为“盈数”。 求出2到60之间所有“完数”和“盈数”。 输入描述&#xff1a; 题目没有任何输入。 输出描述&#…

体验自制免费开源闯关学SQL

文章目录 前言mac安装nodejs启动体验 前言 sql是常用必不可少的一种语言&#xff0c;我们都或有各种各样的学习经历&#xff0c;最近看鱼皮大佬开源了一款自制的闯关学SQL项目&#xff0c;该项目是纯前端语言&#xff0c;不需要太多依赖以及前置知识&#xff0c;直接下载就可以…

flutter开发实战-video_player视频播放功能及视频缓存

flutter开发实战-video_player视频播放功能及视频缓存 最近开发过程中video_player播放视频&#xff0c; 一、引入video_player 在pubspec.yaml引入video_player video_player: ^2.7.0在iOS上&#xff0c;video_player使用的是AVPlayer进行播放。 在Android上&#xff0c;…

python中文官网下载安装,python官方中文文档下载

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;python官网下载步骤图解&#xff0c;python官方中文文档下载&#xff0c;现在让我们一起来看看吧&#xff01; python官网网址 python官方网站 python官网网址中文。像我们想要抓住一门好的编程语言&#xff0c;如何开始…