如何用单片机控制继电器?

如何用单片机控制继电器?,第1张

不要用三极管放大,接上拉电阻即可。

做实验直接选用线圈电压为5V的继电器就可以。单片机输出引脚与继电器之间要接一个三极管,单片机I/O直接继电器电流不够。

单片机是一个弱电器件,一般情况下它们大都工作在5V甚至更低。驱动电流在mA级以下。而要把它用于一些大功率场合,比如控制电动机,显然是不行的。

在这里,继电器驱动含有两个意思:一是对继电器进行驱动,因为继电器本身对于单片机来说就是一个功率器件。

扩展资料:

现在,单片机的某一个需要控制这个继电器电路的输出引脚就是一只"手",当单片机的这个引脚输出低电平的时候,就像"手"在打开三极管"水龙头",水就从上往下流,继电器"水轮机"就开始转起来了。

反之,如果是输出高电平,"手"就开始关"水龙头",继电器"水轮机"因为没有水流下来,就会停止。

这就是三极管的开关作用。

简单的理解和记忆就是:三极管是一个开关器件,其实真的可以将它看成是一个开关,只不过它不是用手来控制,而是用电压(电流)来控制的,因此,三极管有些时候也被称做电子开关(与机械开关相区别)。

参考资料来源:百度百科——单片机控制器

这个是简单的电路图,因为单片机上电时,各IO口有个瞬间高电平脉冲;这里选用PNP三极管来驱动。至于你说的按任意键启动。。。。这个没多大意义了,这里给你的是按键开、关继电器。 //按K1 继电器吸合

//按K2 继电器断开

/*********************************************************/#include <reg52.h>

sbit K1 =P3^2//K1

sbit K2 =P3^3//K2

sbit JDQ=P1^0 //继电器/*********************************************************/

void Delay(unsigned int ii) //1MS

{

unsigned int jj

for(ii>0ii--)

for(jj=0jj<125jj++)

{}

}

void main()

{ while(1){

if (K1==0)

{

Delay(10)

if(K1==0){

JDQ=0//吸合

P0=0x00//P0口LED亮

}

}if (K2==0){

Delay(10)

if(K2==0){

JDQ=1//释放

P0=0xff//P0口LED灯灭

}

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11174746.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存