C51直流电机

直流电机

1.ULN2003芯片:驱动芯片,可用来驱动直流电路。
在这里插入图片描述假设:
输入为低“0”,输出为高“1”。
1B——0;1C——1;
例:正转
输入为高“1”,输出为低“0”。
1B——1;1C——0;
例:反转
直流电机没有正负极,连接两个输出端。
COM——VCC
直流电机一端固定连接COM——VCC,另一端连接一个输出端。

2.硬件设计
在这里插入图片描述A2-A4

3.软件设计
P0口输入高电平“1”,对应OUT1口输出低电平“0”。
电动机有电流转动。
P0口输入低电平“0”,对应OUT1口输出高电平“1”高阻态不会得电。
电动机无电流停止转动。
效果1:
电动机转动五秒后停止
代码:
#include <REGX51.H>

typedef unsigned char u8;
typedef unsigned int u16;

sbit DC_Motor=P1^0;
#define DC_MOTOR_RUN_TIME 5000

void delay_10us(u16 ten_us)
{
while(ten_us–);
}

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);//宏定义控制时间
//delay_ms(5000);
DC_Motor=0;
while(1)
{

	}

}

**效果2:**电动机一直转动
代码:
#include <REGX51.H>

typedef unsigned char u8;
typedef unsigned int u16;

sbit DC_Motor=P1^0;
#define DC_MOTOR_RUN_TIME 5000

void delay_10us(u16 ten_us)
{
while(ten_us–);
}

void delay_ms(u16 ms)
{
u16 i,j;
for(i=ms;i>0;i–)
for(j=110;j>0;j–);
}

void main()
{

	while(1)
	{
		DC_Motor=1;//输入高电平电动机转动
		delay_ms(DC_MOTOR_RUN_TIME);//宏定义控制时间
		//delay_ms(5000);
		DC_Motor=0;//输入低电平电动机停止转动
	}

}

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值