🌈 نئوپیکسل (WS2812) (NeoPixel (WS2812B))

اسم انگلیسیNeoPixel (WS2812B)
در ووکوی (Wokwi)wokwi-neopixel
دسته💡 LED و نمایشگر
در شبیه‌ساز فارسیمود ساده (بدون کد) و مود آردوینو · رایگان

نئوپیکسل (NeoPixel) اسم خودمانی LEDهای آدرس‌پذیر WS2812 و WS2812B است: هر LED یک تراشه‌ی کوچک دارد که رنگ خودش را از سیم داده برمی‌دارد و بقیه‌ی داده را به LED بعدی تحویل می‌دهد. نتیجه این‌که با یک پین آردوینو ده‌ها LED را هر کدام با رنگ جدا کنترل می‌کنی. نوار نوری اتاق، ساعت حلقه‌ای، چراغ وضعیت ربات و جلوه‌های رنگین‌کمانی از همین‌جا می‌آیند. این صفحه درباره‌ی پیکسل تکی و زنجیر کردن آن است؛ حلقه‌ی ۱۲تایی و نوار ۸تایی صفحه‌ی خودشان را دارند.

نئوپیکسل در ووکوی (Wokwi)

در ووکوی هر نئوپیکسل تکی با شناسه‌ی wokwi-neopixel اضافه می‌شود و چهار پایه دارد: DIN (ورودی داده)، DOUT (خروجی داده برای پیکسل بعدی)، VDD (تغذیه) و VSS (زمین). برای ساختن زنجیر، DOUT هر پیکسل را به DIN بعدی بده. سه پیکسل پشت سر هم روی پین 6:

{
  "version": 1,
  "parts": [
    { "type": "wokwi-arduino-uno", "id": "uno", "top": 100, "left": 0 },
    { "type": "wokwi-neopixel", "id": "px1", "top": -40, "left": 60 },
    { "type": "wokwi-neopixel", "id": "px2", "top": -40, "left": 120 },
    { "type": "wokwi-neopixel", "id": "px3", "top": -40, "left": 180 }
  ],
  "connections": [
    [ "uno:6", "px1:DIN", "green", [] ],
    [ "px1:DOUT", "px2:DIN", "green", [] ],
    [ "px2:DOUT", "px3:DIN", "green", [] ],
    [ "uno:5V", "px1:VDD", "red", [] ],
    [ "uno:5V", "px2:VDD", "red", [] ],
    [ "uno:5V", "px3:VDD", "red", [] ],
    [ "uno:GND.1", "px1:VSS", "black", [] ],
    [ "uno:GND.1", "px2:VSS", "black", [] ],
    [ "uno:GND.1", "px3:VSS", "black", [] ]
  ]
}
پایه در ووکویوصل به
DINuno:6 برای اولین پیکسل؛ DOUT پیکسل قبلی برای بقیه
DOUTDIN پیکسل بعدی (آخری آزاد می‌ماند)
VDD5V
VSSGND

کتابخانه‌ی Adafruit NeoPixel را از Library Manager پروژه اضافه کن (کتابخانه در ووکوی). اگر تعداد زیادی پیکسل مرتب می‌خواهی، به‌جای زنجیر دستی، حلقه‌ی آماده‌ی wokwi-led-ring راحت‌تر است.

سیم‌کشی با آردوینو

پایه‌ی WS2812Bوصل به
DINپین 6 از راه مقاومت حدود ۳۳۰ اهم
5V (VDD)5V؛ برای بیش از حدود ده پیکسل، منبع ۵ ولت جدا
GND (VSS)GND منبع و GND آردوینو، مشترک
DOUTDIN پیکسل بعدی
بین 5V و GND ابتدای نوارخازن حدود ۱۰۰۰ میکروفاراد

حساب جریان را قبل از سیم‌کشی بکن: هر پیکسل در سفید کامل حدود ۶۰ میلی‌آمپر می‌کشد. سه پیکسل یعنی ۱۸۰ میلی‌آمپر که USB راحت می‌دهد، ولی نوار سی‌تایی در روشنایی کامل نزدیک ۱٫۸ آمپر می‌خواهد و پایه‌ی 5V آردوینو را از کار می‌اندازد. مقاومت سری روی DIN لبه‌های تیز سیگنال را نرم می‌کند و خازن بزرگ جلوی جهش ولتاژ لحظه‌ی روشن شدن را می‌گیرد؛ هر دو برای عمر اولین پیکسل مهم‌اند.

کد نمونه

// Three chained NeoPixels on pin 6: red, green and blue walk along the chain.
#include <Adafruit_NeoPixel.h>

const int PIN = 6;
const int COUNT = 3;

Adafruit_NeoPixel pixels(COUNT, PIN, NEO_GRB + NEO_KHZ800);
uint32_t colours[COUNT];

void setup() {
  pixels.begin();
  pixels.setBrightness(60);        // 0..255; keep it low on USB power
  colours[0] = pixels.Color(255, 0, 0);
  colours[1] = pixels.Color(0, 255, 0);
  colours[2] = pixels.Color(0, 0, 255);
}

void loop() {
  for (int shift = 0; shift < COUNT; shift++) {
    for (int i = 0; i < COUNT; i++) {
      pixels.setPixelColor(i, colours[(i + shift) % COUNT]);
    }
    pixels.show();                  // nothing changes until show()
    delay(400);
  }
}

NEO_GRB ترتیب رنگ در خود تراشه است و setBrightness روشنایی کل زنجیر را محدود می‌کند؛ برای مصرف جریان، این عدد از هر چیز دیگری مهم‌تر است.

اشتباه‌های رایج

آموزش‌های مرتبط

سؤال‌های رایج

هر نئوپیکسل چقدر جریان می‌کشد؟

هر رنگ تا حدود ۲۰ میلی‌آمپر، پس یک پیکسل در سفید کامل حدود ۶۰ میلی‌آمپر. برای چند پیکسل USB کافی است، ولی برای نوار بلند منبع ۵ ولت جدا لازم داری و بهتر است setBrightness را پایین نگه داری.

WS2812 با WS2812B فرق دارد؟

پروتکل هر دو یکی است و با کتابخانه‌ی Adafruit_NeoPixel و تنظیم NEO_GRB + NEO_KHZ800 کار می‌کنند. WS2812B نسل جدیدتر و چهارپایه است و امروز رایج‌تر است.

نئوپیکسل را با ESP32 یا پیکو هم می‌شود راند؟

بله. روی ESP32 همین کتابخانه کار می‌کند و روی پیکو با میکروپایتون ماژول neopixel آماده است. چون این بردها ۳٫۳ ولتی‌اند، با نوار بلند گاهی به مبدل سطح منطقی روی سیم داده نیاز می‌شود.

📖 طرز کار، مشخصات فنی و نکته‌های خرید این قطعه در دانشنامه‌ی تینکرکد فارسی: نئوپیکسل (WS2812) آمده است.

آموزش‌هایی که از این قطعه استفاده می‌کنند

🌈

نمایشگر OLED و نئوپیکسل با میکروپایتون روی رزبری پای پیکو

قطعه‌های دیگرِ LED و نمایشگر

🔢

نمایشگر ۴ رقمی TM1637

TM1637 4-Digit Display

🖥️

نمایشگر OLED ۰٫۹۶ اینچ (SSD1306)

SSD1306 OLED Display 0.96"

🔴

ماتریس LED هشت در هشت (MAX7219)

MAX7219 8x8 LED Matrix

📟

نمایشگر LCD 16×2 با ماژول I2C

LCD 16x2 I2C

⭕

حلقه‌ی نئوپیکسل ۱۲ تایی

NeoPixel Ring 12 (WS2812)

🌈

نوار نئوپیکسل ۸ تایی

NeoPixel Strip 8 (WS2812)

همه‌ی ۱۰۵ قطعه ← · آموزش مدار

نئوپیکسل (WS2812) را در شبیه‌ساز امتحان کن 🚀