在这个项目中,我们将5个RGB(红绿蓝)LED连接到Arduino Uno。这些LED并联连接,以减少Uno的PIN使用。
下图显示了一个典型的RGB LED:
RGB LED将具有四个引脚,如图所示。
PIN1:颜色1负极端子或颜色1正极端子
PIN2:所有三种颜色的公共正极或所有三种颜色的公共负极
PIN3:2号负极端子或2号正极端子
PIN4:颜色3的负极端子或颜色3的正极端子
因此,有两种类型的RGB LED,一种是共阴极型(共阴),另一种是共阳极型(共正)。在CC(公共阴极或公共负极)中,将有三个正端子,每个端子代表一种颜色,一个负端子代表所有三种颜色。CC RGB LED的内部电路可以表示如下。
如果我们希望上面的RED亮起,则需要给RED LED引脚供电,并将公共负极接地。所有LED都一样。在CA(公共阳极或公共正电极)中,将有三个负端子,每个端子代表一种颜色,一个正端子代表所有三种颜色。CA RGB LED的内部电路可以如图所示。
如果我们希望RED处于上述状态,则需要将RED LED引脚接地并为公共正极供电。所有LED都一样。
在我们的电路中,我们将使用CA(公共阳极或公共正极)类型。要将5个RGB LED连接到Arduino,我们通常需要5x4 = 20 PINS,这是通过并行连接RGB LED并使用一种称为多路复用的技术来将PIN的使用减少到8个。
组件
硬件: UNO,电源(5v),1KΩ电阻(3个),RGB(红色,绿色,蓝色)LED(5个)
软体: Atmel studio 6.2或每晚的Aurdino。
电路及工作说明
RGB LED Arduino接口的电路连接 如下图所示。
现在,对于棘手的部分,假设我们要转动SET1中的红色LED和SET2中的绿色LED。我们为UNO的PIN8和PIN9供电,并为PIN7,PIN6接地。
有了这个流程,我们在第一个SET中将具有RED,在第二个SET ON中将具有GREEN,但与此同时,SET1中的GREEN和SET2 ON中将具有RED。通过简单的类比,我们可以看到所有四个LED以上述配置关闭电路,因此它们都发光。
因此,为消除此问题,我们一次只能打开一个SET。假设在t = 0m SEC时SET1调为ON。在t = 1m SEC时,SET1调整为OFF,SET2转换为ON。再次在t = 6m SEC时,SET5变为OFF,SET1变为ON。这样下去。
这里的窍门是,人眼无法捕获超过30 HZ的频率。也就是说,如果LED以30HZ或更高的频率连续打开和关闭。眼睛看到LED持续亮着。然而,这种情况并非如此。LED将不断地打开和关闭。这种技术称为多路复用。
简单地说,我们将以1毫秒的速度为5个SET的每个公共阴极供电,因此在5毫秒的时间内,我们将完成循环,然后该循环再次从SET1开始,直到永远。由于LED SET的开和关过快。人们预测所有SET一直处于打开状态。
因此,当我们在t = 0毫秒时为SET1供电时,我们将RED引脚接地。在t = 1毫秒时,我们为SET2供电,并将GREEN引脚接地(此时RED和BLUE被拉至高电平)。循环快速进行,眼睛在“第一设定”中看到红色发光,在“第二设定”中看到绿色发光。
这就是我们对RGB LED进行编程的方式,我们将在程序中缓慢发光所有颜色以查看多路复用的工作方式。