🌈 رنگین‌کمان نئوپیکسل با آردوینو و کتابخانه‌ی Adafruit_NeoPixel

✍️ تیم ووکوی فارسی ·

نئوپیکسلها LEDهای رنگی هوشمندی هستند که می‌توانی ده‌ها تایشان را پشت سر هم ببندی و همه را فقط با یک پایهی آردوینو کنترل کنی. در این آموزش روی یک حلقه‌ی ۱۲تایی نئوپیکسل یک رنگین‌کمان چرخان می‌سازیم؛ از آن افکت‌هایی که همه را جلوی پروژه‌ات نگه می‌دارد. اگر قبلاً در wokwi یا ویدیوهای خارجی این افکت را دیده‌ای، این نسخه‌ی فارسی و خط‌به‌خطش است.

نئوپیکسل چطور کار می‌کند؟

داخل هر نئوپیکسل (اسم فنی‌اش WS2812) سه LED قرمز، سبز و آبی و یک چیپ کوچک هست. آردوینو یک رشته‌ی داده به اولین LED می‌فرستد؛ آن LED رنگ خودش را برمی‌دارد و بقیه را به بعدی می‌دهد، مثل نامه‌ای که دست‌به‌دست می‌شود. برای همین با یک سیم داده می‌شود صدها LED را جداگانه رنگ کرد.

قطعه‌ها و اتصال

پایه‌ی نئوپیکسلآردوینو
DIN (ورودی داده)پایه‌ی دیجیتال 6
5V / VCC5V
GNDGND

کد کامل

#include <Adafruit_NeoPixel.h>

#define LED_PIN   6
#define NUM_LEDS  12

Adafruit_NeoPixel ring(NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  ring.begin();
  ring.setBrightness(60);   // از 255؛ کم نگه دار تا چشمت و منبع تغذیه راحت باشند
  ring.show();              // همه خاموش
}

void loop() {
  for (long firstHue = 0; firstHue < 65536; firstHue += 256) {
    for (int i = 0; i < ring.numPixels(); i++) {
      long hue = firstHue + (i * 65536L / ring.numPixels());
      ring.setPixelColor(i, ring.gamma32(ring.ColorHSV(hue)));
    }
    ring.show();
    delay(15);
  }
}

توضیح خط‌های مهم

برای این‌که فقط یک LED قرمز شود بنویس: ring.setPixelColor(0, ring.Color(255, 0, 0)); ring.show();. شماره‌ی LEDها از ۰ شروع می‌شود.

اجرا در شبیه‌ساز

در تینکرکد فارسی مثال آماده‌ی رنگین‌کمان نئوپیکسل و نسخه‌ی ساده‌ترش نئوپیکسل هست. درس‌های رنگ‌های نئوپیکسل و رنگین‌کمان قدم‌به‌قدم همین را یاد می‌دهند. حلقه و نوار نئوپیکسل جزو ماژول‌های حرفه‌ای اشتراک پلاس هستند؛ مثال‌ها برای خواندن رایگان باز می‌شوند و برای اجرا پلاس لازم است.

اشکال‌های رایج

نئوپیکسل را با میکروپایتون هم امتحان کن: OLED و نئوپیکسل روی پیکو. پروژه‌های بیشتر آردوینو در صفحه‌ی شبیه‌ساز آردوینو منتظرت هستند.

رنگین‌کمان نئوپیکسل را باز کن 🌈

مقاله‌های مرتبط

🦾

سروو موتور با آردوینو: جاروب ۰ تا ۱۸۰ درجه و کنترل با پتانسیومتر

📟

نمایشگر LCD کاراکتری ۱۶×۲ با ماژول I2C در آردوینو

🦇

فاصله‌سنج اولتراسونیک HC-SR04 با آردوینو

🐞

دیباگ قدم‌به‌قدم کد آردوینو در شبیه‌ساز آنلاین: بریک‌پوینت و دیدن متغیرها

همه‌ی آموزش‌های سنسورها و ماژول‌ها ← · همه‌ی مقاله‌ها