单片机控制直流电机调速,求程序!!

2024-12-03 11:51:11
推荐回答(2个)
回答(1):

#include"reg51.h"
#define uchar unsigned char
sbit EA1=P1^6;
sbit EA2=P1^7;
sbit C1=P3^0;
sbit C2=P3^1;
sbit C3=P3^2;
sbit C4=P3^3;
delay (int t)
{
int i,j;
for(i=0;i for(j=0;j<120;j++)
;
}
void main()
{
EA1=1;
EA2=1;
C1=1;
C2=0;
C3=1;
C4=0;
while(1)
{
EA2=1; //调节 占空比=10/(10+4)减速(高电平:低电平=10:4)
EA1=0;
delay(10);
EA2=0;
EA1=0;
delay(4);

}
}
希望对你有点帮助。单片机不能直接输出那么大的电流,所以得有驱动板。没有电机转不了。

回答(2):

直流电机 单片机端口是不能直接供电的 电流太小 带动不了直流电机

要用电机驱动芯片

比较简单和常用的是 l298 电机驱动芯片

关于它的data sheet 网上很多 小搜索一下就有了
引脚资料和电机连接方式上面都有

l298 可以控制两个电机的正反转 如果你不用调速的话那就相当简单了
程序例如:
input a ,input b,enable(这三个都是芯片引脚的名字) 分别用单片机的
p1.0 p1.1 p1.2控制 output a(引脚名字) 接电机

程序:
clr p1
setb p1.0
setb p1.1(正转)

clr p1
setb p1.1
setb p1.1 (反转)

超简单的 电机控制芯片还有很多例如 摩托罗拉公司的 mc33886 也可以

祝你好运
很高兴回答楼主的问题 如有错误请见谅