🌈 نوار نئوپیکسل ۸ تایی (NeoPixel Strip 8 (WS2812))
| اسم انگلیسی | NeoPixel Strip 8 (WS2812) |
|---|---|
| در ووکوی (Wokwi) | نسخهی آمادهای سراغ نداریم |
| دسته | 💡 LED و نمایشگر |
| در شبیهساز فارسی | مود آردوینو · رایگان |
نوار نئوپیکسل ۸ تایی (NeoPixel Strip 8)، که به آن NeoPixel Stick هم میگویند، هشت LED رنگی WS2812 در یک ردیف است که همه با یک سیم داده کنترل میشوند. برای نشانگر سطح صدا یا باتری، چراغ رفتوبرگشتی، نوار وضعیت ربات و ساختن نوارهای بلندتر با پشت هم بستن چند تکه عالی است.
نوار نئوپیکسل در ووکوی (Wokwi)
تا جایی که میدانیم ووکوی نسخهی آمادهی این قطعه را ندارد. دو جایگزین داری: چند نئوپیکسل تکی (wokwi-neopixel با پایههای DIN، DOUT، VDD و VSS) را پشت هم ببندی، یا یک wokwi-led-ring با هشت پیکسل بگذاری. نمونهی زنجیر سهتایی:
{
"version": 1,
"parts": [
{ "type": "wokwi-arduino-uno", "id": "uno", "top": 0, "left": 0, "attrs": {} },
{ "type": "wokwi-neopixel", "id": "pix1", "top": -100, "left": 60, "attrs": {} },
{ "type": "wokwi-neopixel", "id": "pix2", "top": -100, "left": 100, "attrs": {} },
{ "type": "wokwi-neopixel", "id": "pix3", "top": -100, "left": 140, "attrs": {} }
],
"connections": [
[ "uno:6", "pix1:DIN", "green", [] ],
[ "pix1:DOUT", "pix2:DIN", "green", [] ],
[ "pix2:DOUT", "pix3:DIN", "green", [] ],
[ "pix1:VDD", "uno:5V", "red", [] ],
[ "pix2:VDD", "uno:5V", "red", [] ],
[ "pix3:VDD", "uno:5V", "red", [] ],
[ "pix1:VSS", "uno:GND.1", "black", [] ],
[ "pix2:VSS", "uno:GND.1", "black", [] ],
[ "pix3:VSS", "uno:GND.1", "black", [] ]
]
}
همین الگو را تا هشت پیکسل ادامه بده: DOUT هر پیکسل به DIN پیکسل بعدی. اگر با سه پیکسل امتحان میکنی، در کد NUM_PIXELS را ۳ بگذار. خود نوار هشتتایی در تینکرکد فارسی شبیهسازی میشود و جزو اشتراک پلاس است؛ مثالهایش برای خواندن رایگان باز میشوند و برای اجرا پلاس لازم داری.
سیمکشی با آردوینو
| پایهی نوار | وصل به |
|---|---|
| DIN | پین 6 (در مدار واقعی از راه یک مقاومت حدود ۳۳۰ اهم) |
| 5V یا VCC | 5V |
| GND | GND |
| DOUT | DIN نوار بعدی، اگر پشت هم میبندی |
روی نوار یک فلش کوچک چاپ شده که جهت حرکت داده را نشان میدهد؛ سیم آردوینو باید به سری برسد که فلش از آن شروع میشود.
کد نمونه: چراغ رفتوبرگشتی
// NeoPixel strip: a red scanner light that bounces back and forth
#include <Adafruit_NeoPixel.h>
#define STRIP_PIN 6
#define NUM_PIXELS 8
Adafruit_NeoPixel strip(NUM_PIXELS, STRIP_PIN, NEO_GRB + NEO_KHZ800);
int pos = 0;
int dir = 1;
void setup() {
strip.begin();
strip.setBrightness(50);
strip.show();
}
void loop() {
strip.clear();
strip.setPixelColor(pos, strip.Color(255, 0, 0)); // bright head
int tail = pos - dir;
if (tail >= 0 && tail < NUM_PIXELS) {
strip.setPixelColor(tail, strip.Color(40, 0, 0)); // dim tail
}
strip.show();
pos += dir;
if (pos == NUM_PIXELS - 1 || pos == 0) dir = -dir;
delay(80);
}
نقطهی قرمز با یک دنبالهی کمنور از یک سر نوار به سر دیگر میرود و برمیگردد. با عوض کردن delay(80) سرعت و با strip.Color رنگ را تغییر بده.
اشتباههای رایج
- سر اشتباه نوار: اگر سیم به سمت DOUT برسد، نوار خاموش میماند. جهت فلش را ببین.
- عدد نامتناسب: وقتی دو نوار را پشت هم بستی و
NUM_PIXELSرا ۸ گذاشتی، نوار دوم هرگز روشن نمیشود. - برد ۳٫۳ ولتی: دادهی ESP32 و پیکو برای نوار ۵ ولتی معمولاً کافی است، ولی تضمینی نیست؛ اگر رنگها میپرند، سیم داده را کوتاه کن یا از مبدل سطح ولتاژ استفاده کن.
- چند نوار از پایهی 5V: هر LED تا حدود ۶۰ میلیآمپر میکشد؛ برای چند نوار منبع ۵ ولت جدا بگذار و زمینش را به GND آردوینو وصل کن.
آموزشهای مرتبط
- حلقهی نئوپیکسل ۱۲ تایی
- رنگینکمان نئوپیکسل با آردوینو
- نئوپیکسل با میکروپایتون روی پیکو
- پروژهی OLED و نوار نئوپیکسل با MicroPython در تینکرکد فارسی
سؤالهای رایج
ووکوی نوار نئوپیکسل ۸ تایی دارد؟
تا جایی که میدانیم نوار آمادهی هشتتایی ندارد. چند wokwi-neopixel را پشت هم ببند (DOUT هر کدام به DIN بعدی) یا از wokwi-led-ring با pixels برابر 8 استفاده کن؛ کد آردوینو در هر دو حالت یکی است.
دو نوار هشتتایی را چطور پشت هم ببندم؟
DOUT نوار اول را به DIN نوار دوم وصل کن، VCC و GND را به هر دو بده و در کد تعداد را ۱۶ بگذار. شمارهی LEDهای نوار دوم از ۸ شروع میشود.