风筝
发表于: 2020-2-4 15:56:20 | 显示全部楼层

本篇文章介绍了如何使用Arduino控制仙女灯串(Fairy LED)。这个想法是让多个仙女LED灯串根据特定的模式打开和关闭。通常,这些电池串由电池组或USB电源供电。在这里,我们重点介绍USB供电的LED,因为它们更容易与Arduino配合使用。 Arduino通常无法通过其数字信号输出为这种仙女灯条提供足够的功率。因此,在本文中,我们还将使用继电器模块。


所需的材料清单:

–  跳线

–  面包板

–  仙女LED灯串

–  Arduino开发板

–  继电器模块

–  USB端子适配器


组件介绍

仙女LED灯串。

仙女LED灯串(Fairy LED Strings)的名字来由是因为从远处观看时它们看起来像是小精灵。在许多商店中,它们都放在罐子里,这可能使人想起流行的视频游戏系列“塞尔达”(Zelda)中的仙女(仙女通常由主角“ Link”装在罐子中运输)。

通常,仙女LED灯串由通过绝缘铜线连接的一串简单的LED组成。为了使LED更坚固,它们被包裹在某种干热胶中。

fairy_led_strings.jpg


Arduino(Seeeduino Nano)

在本文中,我们使用的是Seeed Studio公司的Seeeduino Nano,它采用漂亮的红色PCB。此外,它与传统的Arduino Nano兼容。与普通的Arduino Nano相比,它使用USB Type-C接口而不是USB Mini接口。在本文中,Seeedunio Nano用于控制仙女LED灯串。

seeeduino_arduino_nano.jpg


继电器模块

为了点亮LED灯条,Seeeduino需要将5V电压插入到仙女LED灯串的USB连接器。据我所知,普通的Arduino仅能通过数字输出引脚提供40mA的电流。通常,这不足以为为多个LED的灯串供电。为了解决这个问题,我们使用了继电器模块。继电器模块可以支持1路、2路、4路、8路端口。在本文中,使用具有4个端口的HL-545为两个童话LED灯串供电。

relay_module_arduino.jpg


USB端子适配器。

现在,问题是如何将基于USB的仙女LED灯串连接到面包板。本文中,母头USB端子适配器非常有用。这些适配器使您可以插入USB电缆,然后在端子块上也具有相应的信号。幸运的是,跳线可以轻松地连接到端子块。

usb_terminal_adapter.jpg


连接方式

在此设置中,存在两个5V电路。第一个是为仙女LED灯串供电。第二个是为Arduino和继电器模块供电。

wiring_arduino_fairy_led_bb.jpg

接线原理图。

setup_wiring.jpg


源代码

该程序非常基础,因为没有用于继电器模​​块或仙女LED灯串的特殊代码……仅需要设置了两个输出引脚。该程序的想法是执行一些“灯光秀”。在第一阶段,没有任何仙女LED灯亮。然后,仅显示黄色字符串。接下来,仅显示蓝色字符串。最后,显示两个字符串。此外,每个阶段显示两秒钟。


在setup函数中,数字引脚2和3被声明为输出引脚。然后在loop函数中,通过设置两个输出引脚并增加两秒钟的延迟来表示“灯光秀阶段”。例如,如果两个LED都设置,则输出引脚设置为两个低电平。由于继电器模块是低电平有效,因此控制引脚输出低电平是正确的!

  1. // (c)
  2. // This program shows how to switch on two different "fairy LEDs" by utilizing a relay module.
  3. // In particular, the program resembles a small "lighting program":
  4. // Both LEDs are off, only first LED is switched on, only the second LED is switched on, both LEDs are switched on.
  5. // Each "light mode" shows up for two seconds.
  6. void setup() {
  7.   pinMode(2, OUTPUT); // Digital pin 2 is an output pin
  8.   pinMode(3, OUTPUT); // Digital pin 3 is an output pin
  9. }
  10. void loop() {
  11.   // keep in mind: relay module "switches on" if signal is LOW
  12.   
  13.   // nothing is switched on
  14.   digitalWrite(2, HIGH);
  15.   digitalWrite(3, HIGH);
  16.   delay(2000); // wait for two seconds.
  17.   // LED is switched on
  18.   digitalWrite(2, LOW); //Fairy LED on digital output 2 is switched on
  19.   digitalWrite(3, HIGH);
  20.   delay(2000); // wait for two seconds.
  21.   // the other LED is switched on
  22.   digitalWrite(2, HIGH);
  23.   digitalWrite(3, LOW); //Fairy LED on digital output 3 is switched on
  24.   delay(2000); // wait for two seconds.
  25.   // both LEDs are switched on
  26.   digitalWrite(2, LOW);  //Fairy LED on digital output 2 is switched on
  27.   digitalWrite(3, LOW); //Fairy LED on digital output 3 is switched on
  28.   delay(2000); // wait for two seconds.
  29. }
复制代码

将程序上传到Seeeduino Nano开发板,则“灯光秀”应如下所示:

fairy_led_string_arduino_program_relay.jpg

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 700 | 回复: 1483



手机版|

GMT+8, 2024-5-18 13:03 , Processed in 0.036277 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表