单片机驱动直流电动机

我想用单片机去驱动小功率无刷电动机,只要求可以正反转即可,不要调速的,我在网上搜了好多关于H驱动电路的电路图,都不行,我自己制作电路,最好有参数的,尽量简单;下面是别人给... 我想用单片机去驱动小功率无刷电动机,只要求可以正反转即可,不要调速的,我在网上搜了好多关于H驱动电路的电路图,都不行,我自己制作电路,最好有参数的,尽量简单;
下面是别人给我回答的电路图,自己制作时根本不行,我用的是12v电源,电阻加不加都无法驱动,哪位自己做过的?发一张管用的电路图,谢谢!
为什么要加那两个电阻啊,加电阻单片机中的电流不是更小了?能不能不加啊?
展开
 我来答
做而论道
高能答主

2009-10-17 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部

你用的是12V电源,也就应该使用这个电路了。

问题是单片机输出高电平,提供的电流有限,虽经过8050放大,也难以达到使电机转动的需求。

可以再加一级放大,用8550即可,见图。

原来的1K电阻可以适当的减小,680~470欧姆左右即可。

此时,单片机输出低电平时,电机转动。

--------------------------

加那两个电阻,是进行电流限制,以免烧坏三极管和单片机引脚。

3.3K电阻,是控制8550的基极电流,在1mA左右就基本够用;

减小到1K也可,这时,电流将近5mA了,还可以的。

1K电阻,是控制8050的基极电流的,减小到470欧姆,基极电流就能达到8~10mA,电流再增大,8050有危险。

mcs3000
2009-10-17 · TA获得超过3255个赞
知道小有建树答主
回答量:1045
采纳率:50%
帮助的人:913万
展开全部
你的电机是多大功率的?额定电压、电流时多少?你的三极管的驱动能力是多少?Beta是多少?
有两种可能,
1.三极管驱动能力较差,电机需要的电流较高,这时候相当于电机直接短路,三极管直接烧毁。
2.三极管工作在线性区,电流上不去。你可以量一下正常工作时三极管ce两端的电压电流,如果电压很大,电流很小的话,说明三极管还在线性区工作。

这个问题首先要搞清楚驱动这个电机需要多大的电流。你的电机的额定功率除以额定电压,得到你的额定电流。也就是说,驱动你这个电机需要的电流,然后根据这个电流选择一个合适的三极管。

然后,选择你的三极管和电阻。这种情况,要选择开关管,管子允许的电流最好大于电机额定电流的1.5倍。如果需要带载启动的话,最好在3倍以上。

最后,再说说你的电阻选择。假设你用的是5V的单片机,输出5V高电平,再减去0.3-0.7V的基极压降,除以1K的电阻,也就是4.3-4.7mA的基极电流,一般三极管的Beta大概50左右,那这个时候你的电流只有两百多个毫安,远远没有达到三极管的饱和状态。

现在按照最最极限的情况来计算,假设你的基极电流最大承受20mA,那就干脆给基极电阻取成300欧,这样基极电流有十几mA,乘以四五十倍的Beta值,就达到三极管的饱和电流了。再不够的话,就要用这个三极管驱动继电器,再用继电器来带电机了。

BTW:你的电源能带动你的电动机不???

补充一下,基极电阻是限流用的,如果没有那个电阻的话,你的5V电压直接加在三极管的be之间,这时候,be压降0.7V,剩下4.3V加在导线理论电流无穷大,实际上就看你的单片机和be结谁的电流小了,谁的电流小烧谁。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
elaineliyan
2009-10-17 · TA获得超过446个赞
知道小有建树答主
回答量:384
采纳率:0%
帮助的人:139万
展开全部

//用PWM波控制直流电机的转速,按键123控制它的正反转以及停止.具体电路图在相册里00模拟管用,不知道实际电路中效果咋样.

#include<reg51.h>

#include<intrins.h>

#define uchar unsigned char

#define uint unsigned int

sbit K1=P3^0;

sbit K2=P3^1;

sbit K3=P3^2;

sbit LED1=P0^0;

sbit LED2=P0^1;

sbit LED3=P0^2;

sbit PWM=P2^0;

sbit MB=P2^1;

sbit CLK=P2^4;

sbit ST=P2^5;

sbit EOC=P2^6;

sbit OE=P2^7;

// 延时

void Delay(uchar x)

{

uchar i;

while(x--)for(i=0;i<40;i++);

}

//子程序

PWM00()

{

uchar Val;

TMOD=0x02;

TH0=0x14;

TL0=0x00;

IE=0x82;

TR0=1;

while(1)

{

ST=0;ST=1;ST=0;

while(!EOC);

OE=1;

Val=P1;

OE=0;

if(Val==0)

{

PWM=0;

Delay(0xFF);

continue;

}

if(Val==0xff) //满

{

PWM=1;Delay(0xff);

continue;

}

PWM=1;

Delay(Val);

PWM=0;

Delay(0xff-Val);

}

return PWM;

}

void Timer0_INT()interrupt 1

{

CLK=!CLK;

}

void main(void)

{

LED1=1;LED2=1;LED3=0;

while(1)

{

if(K1==0)

{while(K1==0);

LED1=0;LED2=1;LED3=1;PWM=0;MB=1;

}

if(K2==0)

{

while(K2==0);

LED1=1;LED2=0;LED3=1;PWM00();

MB=0;

}

if(K3==0)

{

while(K3==0);

LED1=1;LED2=1;LED3=0;PWM00();MB=0;

}

}

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
碧白枫费欢
2019-06-21 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:32%
帮助的人:647万
展开全部
1、不用单片机,你直接加电,电机是否运行正常?并测驱动电流是否小于1a。
2、如果正常,建议两级8050放大以达到第二极最大300ma基极,1.5a发射极的效果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
莱以南台雄
2019-04-05 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:34%
帮助的人:659万
展开全部
驱动电压是不会影响到程序的执行的,只能说电压和你的电路上用的器件匹配不?10护揣篙废蕻肚戈莎恭极V的电压直接加到单片机上是不可以的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式