Neopixel:它是什么,它的用途以及如何将它集成到您​​的项目中

新像素

您肯定已经看到制造商不止一次展示使用这些 RGB LED 组的项目。 这些条带的应用范围从可以根据一些外部事件改变颜色的简单装饰到用于灯光比赛等等。 这就是为什么在本文中,我们将介绍您应该了解的所有最重要的信息 新像素 以及如何集成和 使用 Arduino 进行控制.

什么是新像素?

RGB LED 环

Neopixel 只不过是 Adafruit Industries 的注册商标. 但是,这些组件的通用术语是可单独寻址的 RGB LED(例如:SK6812、WS2811、WS2812...)。 换句话说,它是一个带有这些彩色灯​​的逻辑电路,它将作为控制信号的结果,显示不同的颜色,执行某些上电序列等。

重要的是您知道构成矩阵的每个 RGB LED 都使用 4 个引脚或连接器,所以 你的针脚 是:

  • 5V:高电平供电。
  • GND:电源低电平或地。
  • DIN:接收颜色信息的引脚。
  • DO:pin 发送颜色信息。

除此之外,它还集成了一个带有存储器的电子电路,能够 存储 3 个字节, 每种颜色一个。 有关更多信息,您可以阅读您购买的特定型号的数据表或文档,因为可能存在差异。

哪里可以买到 Neopixel

如果你在看 购买新像素 或您的 DIY 项目的类似元素,您可以在一些专门的电子商店或亚马逊上找到它们。 在这方面的一些建议是:

将 Neopixel 与 Arduino UNO

Neopixel 连接和 Arduino UNO

将 Neopixel 或任何其他品牌与您的 Arduino 板集成 并开始在 Arduino IDE 中创建代码以控制颜色和照明,您将需要:

  • 牌匾 Arduino UNO 版本3
  • Neopixel 型 LED 矩阵
  • 470阻力 Ω
  • 1000 µF 电解电容 6.3V。
  • 面包板
  • 连接电缆
  • 5V at 1A 电源和连接器

Neopixel 矩阵与 Arduino UNO 如上图所示。 连接后,接下来就是从 Arduino IDE 代码. 在这种情况下,您必须使用一个名为 Adafruit NeoPixel,您可以从此处下载,并开始测试和修改它附带的示例。 例如,你可以从 Simple 开始,你会得到类似的东西:

#include <Adafruit_NeoPixel.h>    //Incluir la biblioteca

#define PIN 6   //Pin en el que has conectado el Neopixel

// Número de píxeles encadenados (en este caso 21, pero puedes modificarlo según necesites)
#define NUMPIXELS 21 

// Inicializamos el objeto "pixeles"
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
// Argumento 1 = Número de pixeles encadenados
// Argumento 2 = Número del pin de Arduino utilizado con pin de datos
// Argumento 3 = Banderas de tipo de pixel:
//   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
//   NEO_KHZ400  400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
//   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)
//   NEO_RGB     Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
//   NEO_RGBW    Pixels are wired for RGBW bitstream (NeoPixel RGBW products)

#define DELAYVAL 500 //timpo de espera en ms 

void setup() {
  pixels.begin(); // Inicializamos el objeto "pixeles"
}

void loop() {
  pixels.clear(); // Apagamos todos los LEDs

  // El primer pixel de una cadena es el #0, el segundo es el #1, y así sucesivamente hasta el n-1
  for(int i=0; i<NUMPIXELS; i++) { 
    
    // Modificamos el LED #i, encendiendolo con un color verde moderadamente brillante
    pixels.setPixelColor(i, pixels.Color(0, 150, 0));

    pixels.show();   // Mandamos todos los colores con la actualización hecha

    delay(DELAYVAL); // Pausa antes de modificar el color del siguiente LED
  }
}


成为第一个发表评论

发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。