ماژول LED RGB تک پیکسل WS2812B
ماژول نمایشگر LED RGB WS2812 یک قطعه الکترونیکی محبوب است که برای ایجاد نور قابل برنامهریزی از LED استفاده میشود. این ماژول شامل یک LED RGB WS2812 است که یک LED RGB قابل آدرسدهی با یک تراشه درایور یکپارچه است. این تراشه به شما اجازه میدهد رنگ و شدت نور هر LED را به صورت مستقل کنترل کنید.این ماژول به طور معمول شامل یک LED RGB تکرنگ است که با ترکیب نور قرمز، سبز و آبی میتواند مجموعهای گسترده از رنگها را تولید کند.هر LED در این ماژول آدرس منحصربهفردی دارد که به این معناست که میتوانید هر LED را به صورت مستقل یا به عنوان بخشی از یک گروه کنترل کنید تا الگوهای نوری مختلف و اثرات ایجاد کنید.ماژولهای LED RGB WS2812 از پروتکل ارتباط سریال سادهای برای ارسال دادههای رنگ و شدت نور به LEDها استفاده میکنند. این به شما امکان میدهد تا ماژولهای چندگانه را به هم متصل کنید و با حداقل اتصالات سیمی نمایشگرهای LED بزرگی ایجاد کنید. برای کنترل ماژول نمایشگر LED RGB WS2812 نیاز به استفاده از میکروکنترلرها یا بردهای توسعه مانند آردوینو، رزبری پای یا ESP8266/ESP32 دارید. کتابخانهها و نرمافزارهای مختلفی برای برنامهنویسی و کنترل این LEDها بهراحتی وجود دارند.
مشخصات فنی ماژول LED RGB تک پیکسل WS2812B
- ولتاژ تغذیه: 5 ولت DC
- مصرف جریان: متغیر است و به تعداد LEDها و تنظیمات شدت نور آنها بستگی دارد. به طور معمول، هر LED WS2812 حدود 20 میلیآمپر جریان در شدت نور کامل (رنگ سفید) مصرف میکند.
- مصرف توان: وابسته به تعداد LEDها و شدت نور آنها است و میتواند برای نمایشدهندههای بزرگ از چند میلیوات تا چند وات باشد.
- نوع LED: WS2812 RGB LED (قرمز، سبز، آبی)
- تعداد LEDها: 1 (در هر ماژول)
- عمق رنگ: 24 بیت (8 بیت برای هر کانال، که اجازه میدهد 256 سطح شدت نور برای هر رنگ داشته باشیم)
- مخلوط رنگ: مخلوط رنگ کامل RGB با مجموعهای گسترده از رنگهای ممکن.
- قابل آدرسدهی: هر LED در ماژول دارای آدرس منحصربهفردی است که امکان کنترل مستقل آن را فراهم میکند.
- رابط: ارتباط سریال تک سیمی.
- پروتکل داده: پروتکل داده WS2812 (بر اساس زمانبندی).
- نرخ داده: سرعت انتقال دادهها 800 کیلوبیت بر ثانیه است.
- دمای عملیاتی: -20 درجه سانتیگراد تا 60 درجه سانتیگراد (-4 درجه فارنهایت تا 140 درجه فارنهایت)
- دمای ذخیرهسازی: -40 درجه سانتیگراد تا 80 درجه سانتیگراد (-40 درجه فارنهایت تا 176 درجه فارنهایت)
بررسی پایه های ماژول LED RGB تک پیکسل WS2812B
- VCC (تامین برق): این پین برای تامین برق به ماژول WS2812 استفاده میشود. برق مورد نیاز برای این ماژول، تغذیه 5 ولت DC میباشد و ولتاژ باید به این پین متصل شود.
- GND (زمین): پین GND مرجع زمین مشترک برای ماژول است. زمین تغذیه و میکروکنترلر/برد توسعه را به این پین متصل کنید.
- Data Input (ورودی داده): پین ورودی داده برای دریافت دادههای کنترلی که رنگ و شدت نور LED RGB WS2812 را تعیین میکند، استفاده میشود. از پروتکل ارتباط سریال یک سیمی برای انتقال دادهها از میکروکنترلر/برد توسعه به ماژول LED استفاده میکند.
- VCC (تامین برق)
- GND (زمین)
- Data Input (ورودی داده)
به همراه ماژول LED RGB تک پیکسل WS2812B چه اقلامی باید خریداری شود؟
- آردوینو
- تغذیه
- کابل فلت و برد بورد
راه اندازی ماژول WS2812B با آردوینو
کد آردوینو برای کنترل نوار LED با استفاده از ماژول WS2812 RGB LED Breakout بر روی بستر آردوینو (Arduino) نوشته شده است. کتابخانه FastLED برای کنترل LEDها استفاده میشود و قابلیتهای پیشرفتهتری را نسبت به کتابخانه پیشفرض آردوینو فراهم میکند. کد از کتابخانه FastLED استفاده میکند تا رنگهای LEDها را کنترل کند و همچنین توابعی را فراهم میکند که میتوان انیمیشنهای پیچیدهتری روی LEDها اجرا کرد.تعداد LEDها (NUM_LEDS) در نوار تعیین میشود، همچنین شماره پینی که نوار LED به آن متصل شده است (LED_PIN) مشخص میشود. همچنین نوع نوار LED و ترتیب رنگها (COLOR_ORDER) نیز تعریف میشوند.یک آرایه به نام leds با اندازه NUM_LEDS ایجاد میشود. این آرایه برای ذخیره رنگ هر LED به کار میرود. مقداردهی اولیه این آرایه با استفاده از کتابخانه FastLED صورت میگیرد.تابع setup() در ابتدای برنامه اجرا میشود و تنظیمات اولیه را انجام میدهد. این تابع ابتدا FastLED را با تنظیمات مورد نظر مقداردهی اولیه میکند. همچنین شدت روشنایی LEDها تنظیم میشود و ارتباط سریال برای ارتباط با کامپیوتر یا دستگاههایی که از پورت سریال پشتیبانی میکنند، ایجاد میشود.تابع loop() بلاک اصلی برنامه است و مدام تکرار میشود. در این بخش، تابع changeColors() صدا زده میشود که رنگهای LEDها را تغییر میدهد و با استفاده از FastLED.show()، رنگهای بروزرسانی شده روی LEDها نمایش داده میشوند. در نهایت با استفاده از delay() یک تاخیر کوچک ایجاد میشود تا سرعت انیمیشن LEDها کنترل شود.
#include <FastLED.h>
// تعیین تعداد LEDها در نوار شما
#define NUM_LEDS 10
// تعیین پین دادهای که نوار LED به آن وصل شده است
#define LED_PIN 6
// تعیین نوع نوار LED
#define LED_TYPE WS2812B
// تعیین ترتیب رنگها برای نوار LED (GRB برای WS2812B)
#define COLOR_ORDER GRB
// ایجاد یک آرایه از اشیاء CRGB برای ذخیره رنگ هر LED
CRGB leds[NUM_LEDS];
void setup() {
// مقداردهی اولیه کتابخانه FastLED با نوع LED و پین دادهای
FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS);
// تنظیم شدت روشنایی LEDها (0-255، بسته به نیاز تنظیم کنید)
FastLED.setBrightness(100);
// اختیاری: اگر میخواهید LEDها را در زمان راهاندازی پاک کنید، خط زیر را از حالت کامنت خارج کنید
// FastLED.clear();
// خط زیر را از حالت کامنت خارج کنید اگر از نوار LEDهای مبتنی بر APA102/DotStar استفاده میکنید
//
راه اندازی ماژول WS2812B با میکروپایتون
به منظور کنترل ماژول WS2812 RGB LED با استفاده از مایکروپایتون، باید از کتابخانه "neopixel" استفاده شود.اگر این کتابخانه نصب نشده است، می توانید با استفاده از دستور زیر آن را نصب کنید:
import upip
upip.install('micropython-neopixel')
کد میکروپایتون برای کنترل ماژول WS2812 RGB LED نوشته شده است.ایجاد یی از کلاس neopixel.NeoPixel با استفاده از کتابخانه neopixel. این شیء به عنوان رابطی برای کنترل LEDهای WS2812 عمل میکند.تعیین تعداد LEDها و پینی که به آنها متصل میشوند با استفاده از متغیرهای NUM_LEDS و LED_PIN.تعریف تابع set_color(r, g, b) برای تنظیم رنگ تمام LEDها به مقادیر RGB مشخص شده. این تابع از شیی np برای نمایش رنگها استفاده میکند و با فراخوانی np.write() اطلاعات رنگها به LEDها ارسال میشود.تعریف تابع clear_leds() برای خاموش کردن تمام LEDها با استفاده از تابع set_color(0, 0, 0).تعریف تابع rainbow_cycle(delay_ms) برای نمایش رنگهای رنگین کمان با تأخیر بین هر مرحله. این تابع از تابع wheel(pos) برای تولید رنگهای رنگین کمان استفاده میکند و با استفاده از تابع np.write() اطلاعات رنگها به LEDها ارسال میشود.تعریف تابع wheel(pos) برای تولید رنگهای رنگین کمان در بازه 0 تا 255. این تابع با توجه به مقدار ورودی pos رنگ مناسب را ایجاد و به صورت تاپل (r، g، b) برمیگرداند.
# وارد کردن کتابخانه های لازم
import machine
import neopixel
import time
# تعیین تعداد LEDها و پینی که به آنها متصل میشوند
NUM_LEDS = 8 # این را با تعداد LEDها در ماژول خود تغییر دهید
LED_PIN = 4 # این را با شماره پینی که خط دادههای WS2812 به آن متصل شده است، تغییر دهید
# ایجاد شیی از نوع Neopixel
np = neopixel.NeoPixel(machine.Pin(LED_PIN), NUM_LEDS)
def set_color(r, g, b):
"""
تنظیم رنگ تمام LEDها به مقادیر RGB مشخص شده.
:param r: مقدار رنگ قرمز (0 تا 255)
:param g: مقدار رنگ سبز (0 تا 255)
:param b: مقدار رنگ آبی (0 تا 255)
"""
for i in range(NUM_LEDS):
np[i] = (r, g, b)
np.write()
def clear_leds():
"""خاموش کردن تمام LEDها."""
set_color(0, 0, 0)
def rainbow_cycle(delay_ms):
"""
گشتاور از رنگهای رنگین کمان.
:param delay_ms: تاخیر در میلیثانیه بین هر مرحله.
"""
for j in range(255):
for i in range(NUM_LEDS):
rc_index = (i * 256 // NUM_LEDS) + j
np[i] = wheel(rc_index & 255)
np.write()
time.sleep_ms(delay_ms)
def wheel(pos):
"""
تولید رنگهای رنگین کمان در بازه 0 تا 255.
:param pos: موقعیت در رنگین کمان (0 تا 255)
:return: تاپلی از مقادیر رنگ (r، g، b)
"""
if pos < 85:
return (pos * 3, 255 - pos * 3, 0)
elif pos < 170:
pos -= 85
return (255 - pos * 3, 0, pos * 3)
else:
pos -= 170
return (0, pos * 3, 255 - pos * 3)
# مثال استفاده:
try:
while True:
rainbow_cycle(20) # گشتاور از رنگهای رنگین کمان با تاخیر 20 میلیثانیه بین هر مرحله
except KeyboardInterrupt:
clear_leds()
مشخصات
- کاربری
- مناسب برای استفاده صنعتی
- نوع ماژول
- ال ای دی LED - NeoPixel
- ابعاد فیبر
- 1.3 * 1.8 سانتی متر
- سطح تجربه مورد نیاز
- پیشرفته
- نوع ال ای دی
- RGB
- ولتاژ ورودی
- 5 ولت DC
- ولتاژ خروجی
- 5 الی 7 ولت DC(بسته به ورودی)
- چاپ مس
- دارای چاپ قرمز
- تعداد پایه ها
- 6 پایه
- اقلام همراه محصول
- دارای 6 پین هدر مخصوص
- ترتیب پایه ها
- 5v - DI - GND 5v - DO - GND
- وزن
- 5 گرم
- نوع کانکتور
- پین هدر
- تعداد ورودی
- 1
- تعداد خروجی
- 1
- کد تجاری ماژول و برد
- WS2812
امکان راه اندازی چند سنسور DHT با ESP8266 با استفاده از MicroPython وجود دارد. سنسورهای DHT با پروتکل دیجیتال و از طریق پایههای GPIO قابل اتصال به میکروکنترلرها هستند.
برای ساخت یک سیستم کنترل دما با برد میکروکنترلر ESP32، به موارد زیر نیاز دارید:
یک برد میکروکنترلر ESP32
یک سنسور دما مثل DHT DS18B20
یک المان سرد کننده
با استفاده از کتابخانه DHT.h، میتوانید از سنسور دما برای خواندن دمای محیط استفاده کنید. سپس، میتوانید از این دما برای کنترل المان گرمایشی یا سرمایشی استفاده کنید.
در خصوص برنامه نویسی از کتابخانه DHT و در صورت نیاز کتابخانه وای فای برای ارسال دادهها به پلتفرم IoT باید استفاده کنید.