Digital-Lantern: Adafruit Gemma 和 NeoPixel Ring 的数字灯笼程序

作者:暴富20212024.02.28 15:30浏览量:25

简介:本文将介绍如何使用 Adafruit Gemma 和 NeoPixel Ring 创建数字灯笼程序,通过编程控制 LED 灯的亮度和颜色,以创造出独特的视觉效果。我们将使用 Arduino IDE 进行编程,并简要解释代码中的关键部分。

一、简介

数字灯笼是一种创意照明装置,通过编程控制 LED 灯的亮度和颜色,可以实现多种动态效果和场景模式。Adafruit Gemma 和 NeoPixel Ring 是数字灯笼的常用硬件组件,它们可以方便地与微控制器连接,并通过编程实现各种创意照明效果。

二、所需材料

  1. Adafruit Gemma 开发板
  2. NeoPixel Ring LED 灯带
  3. USB 电源适配器
  4. Arduino IDE
  5. 杜邦线(用于连接 Adafruit Gemma 和 NeoPixel Ring)

三、硬件连接

将 NeoPixel Ring 的 VCC 引脚连接到 Adafruit Gemma 的 5V 引脚,将 GND 引脚连接到 Adafruit Gemma 的 GND 引脚。然后使用杜邦线将 Adafruit Gemma 的 A1 引脚与 NeoPixel Ring 的数据引脚相连。

四、Arduino IDE 设置

  1. 打开 Arduino IDE,选择正确的板卡和端口。
  2. 在 Arduino IDE 中,将以下代码复制到新文件中,并保存为“digital_lantern.ino”。

代码示例:

  1. #include <Adafruit_NeoPixel.h>
  2. #define PIN A1 // 数据引脚
  3. #define NUM_LEDS 60 // LED 灯带长度(根据实际情况修改)
  4. #define BRIGHTNESS 128 // 亮度等级(0-255)
  5. Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);
  6. void setup() {
  7. strip.begin(); // 初始化 NeoPixel Ring
  8. strip.setBrightness(BRIGHTNESS);
  9. }
  10. void loop() {
  11. // 循环控制 LED 灯的亮度和颜色变化
  12. for (int i = 0; i < NUM_LEDS; i++) {
  13. strip.setPixelColor(i, strip.Color(255, 0, 0)); // 设置第 i 个 LED 为红色
  14. }
  15. strip.show(); // 更新 LED 灯带显示
  16. delay(100); // 延迟 100 毫秒
  17. }

五、编程控制 LED 灯的亮度和颜色变化

在代码示例中,我们使用了 Adafruit_NeoPixel 类来控制 NeoPixel Ring LED 灯带。通过设置 PIN 常量来指定连接的数据引脚,NUM_LEDS 常量指定了 LED 灯带的长度,BRIGHTNESS 常量则控制了 LED 的亮度等级。在 setup() 函数中,我们初始化了 NeoPixel Ring 并设置了亮度等级。在 loop() 函数中,我们使用一个循环来控制每个 LED 的亮度和颜色变化。在本例中,我们简单地将所有 LED 设置为了红色。你可以根据需要修改代码,实现不同的颜色和动态效果。例如,你可以使用 strip.Color() 函数来设置不同颜色的 LED,或者使用条件语句和延迟来实现更复杂的动态效果。