单片机的IO驱动LED灯电路,需要用到三极管,求原理图,并说明

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单片机的IO驱动LED灯电路,需要用到三极管,求原理图,并说明相关的知识,希望对你有一定的参考价值。

搞不明白单片机I/O口驱动LED为什么要用到那么复杂的电路,是单纯的为了复杂而复杂吗?很晕!如果一个I/O口驱动一个LED,只要I/O口低电平有效LED串一个470Ω的电阻即可,如果驱动多个LED只要按下图即可:

如果Vcc=5v;则R0=1KΩ-5.1KΩ;Rn=470Ω。如果晶体管用S8550,那么同时点亮5个LED是没问题的。

参考技术A I/O口驱动LED灯是不需要三极管的。
将I/O口直接接LED灯的负极,LED灯的正极接一限流电阻(330欧),电阻另一端接电源(3.3V或者5V根据I/O的电压为准)就可以了。
当I/O的电压为低时,LED灯亮;
当I/O的电压为高时,LED灯灭。
参考技术B 单片机I/O口驱动LED是否用三极管以及具体电路,和LED的功率、单片机的工作电压、I/O口的驱动能力都有关联。你得提供更详尽的具体细节才能给出答复或实用电路。追问

这个电路R17是做什么用的

追答

R17是用来调节三极管Q2的静态工作点的,R17的阻值越小,Q2的静态工作电流也越小。
但是这个电路用来驱动LED是有问题的,就是我前边所说的电压问题。LED的工作电压通常都在3V以上、4V以下,而这里Q2的集电极电压只有3V,就算Q2进入深度饱和状态,剩下的电压也只有2.7V,在加上Q2的发射极电阻阻值有1kΩ之大,即使只流过1mA的电流也会产生1V的电压降,LED肯定不能被正常驱动发光。

参考技术C 你问度娘吧,搜“单片机驱动LED灯电路” 很多。

51单片机学习——点亮LED灯

51单片机学习——点亮LED灯

 

1、对照开发板原理图对端口进行赋值

如下图,要使LED2点亮,需要在其正极输入高电平,在负极输入低电平。而这需要PNP型三极管Q16导通,即标点LEDS6要为低电平。

根据标点找到对应控制元件。图中,要使74HC138起作用,其ENLED要为低电平,ADDR3要为高电平。要使LED6为低电平,则A2A1A0的值分别为110,即ADDR0=0,ADDR1=1,ADDR2=1。

控制ADDR0、R1、R2、R3电平的端口为P1.0、P1.1、P1.2、P1.3

控制ENLED电平的端口为P1.4

找到对应的控制端口后,将P1.0、P1.1、P1.2、P1.3、P1.4 分别赋值01110就可让PNP型三极管Q16导通。

再通过标点DB0找到对应控制端口P0.0

将P0.0赋值为0 就可以让LED2点亮 

 2、程序代码

完整代码如下:

#include <reg52.h>

sbit ADDR0=P1^0;  
sbit ADDR1=P1^1;
sbit ADDR2=P1^2;
sbit ADDR3=P1^3;
sbit ENLED=P1^4;
sbit LED2=P0^0;

void main()

	ADDR0=0;  //端口初始化
	ADDR1=1;
	ADDR2=1;
	ADDR3=1;
	ENLED=0;
	while(1)
			
		LED2=0;
	

本篇为记录学习过程,如有错误,欢迎指正。 

 

以上是关于单片机的IO驱动LED灯电路,需要用到三极管,求原理图,并说明的主要内容,如果未能解决你的问题,请参考以下文章

单片机驱动多个LED

STM32怎么实现单片机控制LED灯常亮10S后熄灭?

想用一个mos管做开关,单片机的I/O口控制一个5V/3W的led灯,用p沟道好还是n沟道的好。应用电路是怎么样?

如何使两个LED灯循环亮灭?或者交替亮灭?最好有电路图。大一小白求助,

如何巧妙利用4个IO口驱动12个LED灯

单片机中LED显示电路用三极管驱动电路怎么连接啊?四个数码管。