一、直流电机介绍
直流电机没有正负之分,在两端加上直流电就能工作。需要知道直流电机的额定电压和额定功率,不能使之长时间超负荷运作。在交换接线后,可以形成正反转。
开发板配置的直流电机为 5V 直流电机,其主要参数如下:
轴长:8mm
轴径:2mm
电压:1-6v
参考电流:0.35-0.4A
3v 转速:17000-18000 转每分钟,
外观实物图如下
二、ULN2003 芯片
ULN2003 是一个单片高电压、高电流的达林顿晶体管阵列集成电路。它是由 7 对 NPN 达林顿管组成的,它的高电压输出特性和阴极箝位二极管可以转换感应负载。单个达林顿对的集电极电流是 500mA。达林顿管并联可以承受更大的电流。此电路主要应用于继电器驱动器,字锤驱动器,灯驱动器,显示驱动器(LED 气体放电),线路驱动器和逻辑缓冲器。
ULN2003 的每对达林顿管都有一个 2.7k 串联电阻,可以直接和 TTL 或 5V CMOS 装置。 (1)主要特点
①500mA 额定集电极电流(单个输出)
②高电压输出:50V
③输入和各种逻辑类型兼容
④继电器驱动器
内部实际上就相当于非门 电路,即输入高输出为低,输入低输出高。 若使用该芯片驱动直流电机,只可实现单方向控制,电机一端接电源正极,另一端接芯片的输出口。
三、板子设计
注意:直流电机无方向,线接反只是转动方向不同而已
四、代码
#include"reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
sbit moto=P1^0;
void delay(u16 sec);
void main()
{
while(1) //电机间歇性转动
{
moto=1;
delay(50000);
moto=0;
delay(50000);
}
//moto=0;//仅运行该行,电机不转动
//moto=1;//仅运行该行,电机转动
}
void delay(u16 sec)
{
while(sec--);
}
五、乱七八糟的
如果仅设置moto=0,即P10口为低电平,那么电机不转。用万用表测电压:
黑表笔接J47模块的04针脚,红表笔接01针脚,得到电压差为0.73伏,红表笔接5v针脚可得电压差为4.31v;黑表笔接01针脚,红表笔接5v针脚,得到电压差为0.5v,不足以让电机运转。
单片机针脚默认输出高电平,即P13为1,令P10为0,两者通过ULN2003芯片后取反,04针脚=0,01针脚=1,因此5v针脚与01针脚便不能驱动直流电机,而5v针脚和04针脚可以驱动直流电机。
用万用表测P10口和5v针脚电压差,为4.9v,但直接用P10口和5v针脚,依然不能让电机旋转,不太清楚原因,以后明白了再补上。
版权声明:本文为CSDN博主「大家好我是小菜鸡」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/l2431595558/article/details/122547344
一、直流电机介绍
直流电机没有正负之分,在两端加上直流电就能工作。需要知道直流电机的额定电压和额定功率,不能使之长时间超负荷运作。在交换接线后,可以形成正反转。
开发板配置的直流电机为 5V 直流电机,其主要参数如下:
轴长:8mm
轴径:2mm
电压:1-6v
参考电流:0.35-0.4A
3v 转速:17000-18000 转每分钟,
外观实物图如下
二、ULN2003 芯片
ULN2003 是一个单片高电压、高电流的达林顿晶体管阵列集成电路。它是由 7 对 NPN 达林顿管组成的,它的高电压输出特性和阴极箝位二极管可以转换感应负载。单个达林顿对的集电极电流是 500mA。达林顿管并联可以承受更大的电流。此电路主要应用于继电器驱动器,字锤驱动器,灯驱动器,显示驱动器(LED 气体放电),线路驱动器和逻辑缓冲器。
ULN2003 的每对达林顿管都有一个 2.7k 串联电阻,可以直接和 TTL 或 5V CMOS 装置。 (1)主要特点
①500mA 额定集电极电流(单个输出)
②高电压输出:50V
③输入和各种逻辑类型兼容
④继电器驱动器
内部实际上就相当于非门 电路,即输入高输出为低,输入低输出高。 若使用该芯片驱动直流电机,只可实现单方向控制,电机一端接电源正极,另一端接芯片的输出口。
三、板子设计
注意:直流电机无方向,线接反只是转动方向不同而已
四、代码
#include"reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
sbit moto=P1^0;
void delay(u16 sec);
void main()
{
while(1) //电机间歇性转动
{
moto=1;
delay(50000);
moto=0;
delay(50000);
}
//moto=0;//仅运行该行,电机不转动
//moto=1;//仅运行该行,电机转动
}
void delay(u16 sec)
{
while(sec--);
}
五、乱七八糟的
如果仅设置moto=0,即P10口为低电平,那么电机不转。用万用表测电压:
黑表笔接J47模块的04针脚,红表笔接01针脚,得到电压差为0.73伏,红表笔接5v针脚可得电压差为4.31v;黑表笔接01针脚,红表笔接5v针脚,得到电压差为0.5v,不足以让电机运转。
单片机针脚默认输出高电平,即P13为1,令P10为0,两者通过ULN2003芯片后取反,04针脚=0,01针脚=1,因此5v针脚与01针脚便不能驱动直流电机,而5v针脚和04针脚可以驱动直流电机。
用万用表测P10口和5v针脚电压差,为4.9v,但直接用P10口和5v针脚,依然不能让电机旋转,不太清楚原因,以后明白了再补上。
版权声明:本文为CSDN博主「大家好我是小菜鸡」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/l2431595558/article/details/122547344
暂无评论