当前位置:首页 > 资格考试 > 正文

用51单片机控制H桥电路来实现直流电机正反转(按下开关正3秒停1秒反3秒循环)

51单片机实现电动机正反转控制如何实现?

51单片机的IO口一般不能直接输出控制电机,必须加装电机驱动电路,常见的如L298N等,电机正反转驱动采用H桥电路。你的要求使用很简单的代码就能实现。

51单片机怎么控制直流电机左转,右转,加速,停止?

直流电机怎么左转右转,单片机输出PWM波就能控制电机转动的速度,要想控制电机正反转就需要一个H桥,H桥对角导通就可以控制电机正反转了,至于H桥就参考百科里面的http://baike.baidu.com/view/2009952.htm

哪位大神有51单片机控制H桥中的直流电机正反转及调速的电路原理

正反转不就是电流流向的问题,调速就是输出电压大小的问题。

用51单片机控制直流电机的转动

电路图就简单了,只要按照程序去连接就不会有问题。这里需要用到一个H桥电路,注意桥电路中Q1和Q3是PNP型三极管,负电导通。Q2和Q4是NPN型三极管,正电导通。Q1和Q4导通是正传,Q3和Q2导通是反转。

#include

#defineucharunsigndechar

#defineuintunsigndeint

sbitzheng=P3^0;//按键正转

sbitfan=P3^1; //按键反转

sbitting=P3^2;//按键停

sbitQ1=P3^4;//定义4个IO控制桥电路

sbitQ2=P3^5;

sbitQ3=P3^6;

sbutQ4=P3^7;

sbitled1=P0^0; //定义3个LED灯

sbitled2=P0^1;

sbitled3=P0^2;

voiddaley(ucharz);//延时函数

voidmain()

{

while()

{

if(zheng==0) //电机正转

{

delay(10);

if(zheng==0);

{

Q2=0;

Q3=1;//这两句是把反转关掉

Q1=0;

Q4=1;//这两句是打开正转

led1=0;//红灯亮

led2=1;//其他等关闭

led3=1;//其他等关闭

}

}

if(fan==0) //电机反转

{

delay(10);

if(fan==0)

{

Q1=1;

Q4=0;//把正转关掉

Q2=1;

Q3=0;//开反转

led1=1;//其他等关闭

led2=0;//绿灯亮

led3=1;//其他等关闭

}

}

if(ting==0) //关掉电机

{

delay(10);

if(ting==0)

{

Q1=1;

Q2=0;

Q3=1;

Q4=0;

led1=1;//其他等关闭

led2=1;//其他等关闭

led3=0;//黄灯亮

}

}

}

}

voiddaley(ucharz) //延时函数

{

uintx,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

用单片机怎么使直流电机正反转

单片机控制直流电机正反转,最简单的方法是 两个I/O口 控制两个继电器(一组常开、常闭)的就可以,电机 两个极 接 两个继电器 的 动触点,两个继电器 的 常开点接+(电机电源),两个常闭点接-,就可以了。 单片机控制接通一个继电器 是正转,控制接通另一个继电器 是反转,两个继电器都不接通(或者都接通)电机不转。
展开全文阅读