Arduino RGB小夜灯



可能每个儿童时代都有一个梦想(而不是一个梦想)。您甚至可以回忆起在实现梦想时使孩子的灵魂不知所措的感觉,或者在他的眼睛中遥远的熟悉的光芒。

现在我正在BSUIR的四年级学习,当我们得知电路设计课程项目不能在纸上完成,而可以在一块铁板上完成时,它扑朔迷离:我小时候希望的夜灯可以自己完成。不仅要制造可以在黑暗中照亮房间的物体,还可以制造一种可以轻松控制任何情绪的设备。为什么不呢我决定增加使用双手更改颜色的功能:将手靠近夜灯时,一种颜色(RGB)越亮。而且我还想使用遥控器控制夜灯。

马上承认我在cxem.net监视了这个想法简而言之,该示例使用了一个RGB矩阵,该矩阵通过移位寄存器和超声波距离传感器进行控制。但是我认为矩阵只在一个方向发光,但是我希望夜灯在两侧都发光。

电路元件的证实


Arduino Uno我将注意力转向了Arduino微控制器。 UNO非常适合我的想法,首先是因为它是最受欢迎的平台,并且针脚的数量不是太大(与Mega不同),其次,您可以将外部电源连接到它,在我的情况下,它是12V,而不是Nano。第三...好吧,我认为您可以专注于这两点。该平台由于编程语言的便利性和简单性以及其开放的体系结构和程序代码而在全世界非常受欢迎。

可以在Internet上轻松找到有关该板的更多信息,因此我不会在本文中超负荷。

因此,对于系统的基本要求。必填项:
-传感器将跟踪到障碍物的距离以控制系统;
-用于读取遥控器信号的传感器;
-LED,将提供必要的照明功能;
-控制整个系统的控制单元。

电路图

该项目需要距离传感器作为距离传感器,每种传感器都将对应一种特定的颜色:红色,绿色,蓝色。距离传感器将监视手与夜灯之间的距离,并且将手靠近特​​定传感器的距离越远,对应于此测距仪的颜色将越燃烧。相反,手越远,对与传感器相对应的颜色施加的电压就越少。

目前最受欢迎的测距仪是Sharp GP2Y0A21YK和HC-SR04。夏普GP2Y0A21YK是红外测距仪。它配备了一个红外发射器和一个红外接收器:第一个用作光束的源,第二个反射的光束被反射。同时,在此强度下,人眼传感器的红外线不可见且无害。

与HC-SR04超声波传感器相比,该传感器既有优点也有缺点。优点包括中立和无害。缺点是范围更短并且依赖于外部噪声,包括某些类型的照明。

HC-SR04超声波测距仪HC-SR04用作该项目的距离传感器。
HC-SR04的作用原理是基于回声定位的众所周知的现象。使用时,发射器会产生声音信号,该声音信号会从障碍物反射回传感器,并由接收器记录下来。知道超声波在空气中的传播速度(大约340 m / s)以及发射和接收信号之间的延迟时间,就很容易计算出到声屏障的距离。

TRIG输入连接到微控制器的任何引脚。该输出需要持续时间为10μs的脉冲数字信号。输入TRIG传感器上的信号会发送一组超声波脉冲。接收到反射信号后,传感器会在ECHO输出端生成脉冲信号,其持续时间与到障碍物的距离成正比。

红外传感器红外传感器。当然,将需要从该传感器读取和解码遥控所需的信号。 TSOP18的区别仅在于频率。该项目选择了传感器VS1838B TSOP1838。

该项目基于以任何颜色为房间照明的想法,这表明需要从中获得照明的三种原色:红色,绿色,蓝色。因此,选择了SMD 5050RGB LED型号,可以完美地完成任务。

根据提供给每个LED的电压量,它们将改变这种照明的强度。 LED必须通过电阻器连接,否则我们不仅有可能损坏它,还可能损坏Arduino。为了将LED上的电流限制在可接受的值,需要一个电阻。事实是,LED的内部电阻非常低,如果不使用电阻,则电流会流过LED,这只会烧毁LED和控制器。

LED灯条项目中使用的带有LED的灯条由12V供电。

由于处于“关闭”状态的LED上的电压为6V,并且有必要调节超过5V的电源,因此必须在键控模式下将晶体管添加到电路中。我的选择落在BC547c上。

对于那些已经忘记的人,请简要考虑一下npn晶体管的工作原理。如果您根本不施加电压,而只是简单地接上基极和发射极的结论,即使不是很短,也要通过几欧姆的电阻,那么结果证明基极-发射极的电压为零。因此,没有基极电流。晶体管关闭,集电极电流可忽略不计,只是初始电流相同。在这种情况下,可以说晶体管处于截止状态。相反的状态称为饱和:当晶体管完全打开时,无处可开。在这样的开度下,集电极-发射极部分的电阻是如此之小,以至于在没有集电极电路负载的情况下根本不可能导通晶体管,它会立即燃烧。在这种情况下,集电极上的残留电压只能为0.3 ... 0.5V。

当晶体管处于键模式(如正常继电器触点)时,将使用饱和和截止这两种状态。此模式的要点是,较小的基极电流控制较大的集电极电流,该电流是基极电流的几十倍。由于外部能源的缘故,可获得大的集电极电流,但正如他们所说,电流增益是显而易见的。在我们的例子中,工作电压为5V的微电路包括3条带,LED的工作电压为12V。

我们计算键级联的操作模式。需要计算基本电路中的电阻值,以便LED满功率点亮。计算中的必要条件是电流增益大于或等于将最大可能的集电极电流除以最小可能的基极电流的商:
增益
因此,条带可以具有220 V的工作电压,并且可以由5 V的微电路控制基极电路。如果晶体管设计为在集电极上具有这样的电压,则LED会毫无问题地点亮。
假设基极电流为5mA,集电极电流为0.1A,则基极-发射极结的压降为0.77V。
基极电阻上的电压为:

根据欧姆定律:

从标准电阻系列中,我们选择一个8.2 kOhm的电阻器。现在计算已完成。

我想提请您注意我遇到的一个问题。使用IRremote库时,Arduino在调整蓝色时崩溃。在Internet上进行了长期彻底的搜索后,事实证明该库对该Arduino模型使用默认计时器2。定时器用于控制PWM输出。

定时器0(系统时间,PWM 5和6);
定时器1(PWM 9和10);
定时器2(PWM 3和11)。

最初,我使用PWM 11来调整蓝色。因此,在使用PWM,定时器和可以使用它们的第三方库时要小心。奇怪的是,在github的主页上没有对这种细微差别进行任何评论。如果愿意,可以取消注释计时器1和注释2 。试验

板上的连接元素如下所示:



在试验板上进行测试之后,开始了“在板上放置元件”和“使用烙铁工作”阶段。在对成品板进行第一次测试之后,这种想法就渗入了我的脑海:出了点问题。然后开始熟悉的阶段“与测试人员一起辛苦工作”。但是,故障(几个相邻的触点被意外焊接)很快被修复,这就是人们期待已久的调皮的LED灯。



此外,只有这种情况。因此,用于传感器的带孔胶合板被切割了。后盖经过特别拆卸,因此您可以从内部欣赏风景,并且可以根据需要完成或重新制作某些东西。它还有2个用于重新编程电路板和电源的孔。

该主体被胶粘在两组分环氧粘合剂上。值得一提的是,对于以前从未使用过的胶水,它的特殊性。该伴侣在两个单独的容器中交付,当其中的内容物混合时,立即发生化学反应。混合后,您必须在3-4分钟内迅速采取行动。为了进一步使用,您需要混合新的部分。因此,如果您想重复一遍,我对您的建议是将零散的部分混合在一起,并迅速采取行动,这将没有太多时间思考。因此,值得提前考虑如何以及在何处粘贴外壳。一坐就是行不通的。

为了用LED固定灯条,将一根管子插入顶盖,所有电线都穿过该管。



带着灯罩出现问题时,我想起了我小时候是如何用简单的线,胶水和气球制作工艺品的,这些都是基础。灯罩的原理是相同的,但是包裹多面体比球要难。由于螺纹施加在结构上的压力,其开始逐渐变细并且螺纹开始下降。紧急情况下,人们决定用手上胶,从上方加强结构。然后CD出炉了。结果,我们得到了这样的夜灯:



结果你想说什么


我应该在项目中更改什么?为了向TRIG距离传感器发送信号,可以使用一个Arduino输出而不是三个。我还会为红外线传感器提供一个孔(我忘记了),可惜的是,它隐藏在无法从遥控器读取信号的情况下。但是,谁说您不能焊接和钻孔任何东西?



我想指出,这是一个有趣的学期,也是一次尝试做一些纸面上的事情的绝好机会,因此我可以在“童年梦想”项目旁边再打一个勾号。而且,如果您觉得尝试新事物很困难,并且您不知道首先要做什么,请不要担心。这种想法在许多人的脑海中飞过:从哪里开始以及如何做到这一点?在生活中,您可能会困惑许多任务,但是,如果您尝试尝试,您会发现眨眼之间就可以翻山越岭,即使您需要为此付出一点努力。

链接到源代码

文章作者:Anastasia Kovsh

Source: https://habr.com/ru/post/zh-CN388573/


All Articles