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

内容

直流电机工作约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
  • 输入和各种逻辑类型兼容
  • 继电器驱动器

原理图

嵌入式开发学习(STC51-10-直流电机)_第1张图片
由逻辑图可知,其内部相当于非门电路,即输入高输出为低,输入为低输出是高;

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

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

若想控制五线四相步进电机,则可将四路输出接到步进电机的四相上,电机另一条线接电源正;
嵌入式开发学习(STC51-10-直流电机)_第2张图片
从上图可知,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后停止

你可能感兴趣的:(嵌入式开发学习,学习,51单片机)