大家好!今天是学习51单片机的第十天,今天学习了直流电机。学习笔记如下:
直流电机是指能将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋转电机。直流电机没有正负电极。
ULN2003芯片介绍
ULN2003 是高耐压、大电流达林顿陈列,由七个硅 NPN 达林顿管组成。 该电路的特点如下: ULN2003 的每一对达林顿都串联一个 2.7K 的基极电阻,在 5V 的工作电压下它能与 TTL 和 CMOS 电路 直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。 ULN2003 工作电压高,工作电流大,灌电流可达 500mA,并且能够在关态时承受 50V 的电压,输出还 可以在高负载电流并行运行 。
如果我们直接用I/O口直接驱动大型电器,那么我们就会烧坏芯片。所以我们就需要用到ULN2003芯片,驱动电路。
硬件设计:注意BEEP是蜂鸣器
代码如下:
实验现象:下载程序后,直流电机旋转5S后停止
#include "reg52.h"
typedef unsigned int u16; //对系统默认数据类型进行重定义
typedef unsigned char u8;
//定义直流电机控制管脚
sbit DC_Motor=P1^0;
#define DC_MOTOR_RUN_TIME 5000 //定义直流电机运行时间为5000ms
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(DC_MOTOR_RUN_TIME);
DC_Motor=0;//关闭电机
while(1)
{
}
}