NeoPixel led là dây đèn LED có kết hợp màu RGB. Dây LED sản xuất bởi công ty Adafruit để tránh lỗi chân cắm và làm đơn giản hóa mạch. Toàn bộ dây led có tổng cộng tối đa 144 đèn LED trong một chuỗi.
Sử dụng đèn LED RGB 5050, toàn bộ đèn LED đều kết nối với IC WS2812 / SK6812. Ngoài ra, dây LED RGB có ba chân đầu ra có thể điều chỉnh màu sắc và trạng thái của mỗi LED. Tất cả các đèn LED ở được mắc nối tiếp với nhau.
Dây đèn LED có thể điều chỉnh được với hầu hết mọi bo mạch, được lập trình dễ dàng trên phần mềm Arduino IDE vì có thư viện chính thức được hỗ trợ trên Arduino.
Cấu hình chân của đèn LED NeoPixel rất đơn giản và dễ lập trình với thư viện của Arduino. Tuy nhiên, nguyên nhân chính dẫn đến sự ra đời của dây đèn LED là do cấu tạo chân cắm phức tạp.
Khi nhiều đèn LED kết nối với nhau, sẽ tạo ra mạch có độ phức tạp và số lượng chân cắm lớn. Trong dây led, việc sử dụng LED 5050 để có 3 chân điều khiển cho toàn bộ dây LED. Các chân của dây LED là:
Chân cấp điện
Chân nguồn chỉ đơn giản là chân cấp nguồn cho cả dây. Điện áp của dây led không đổi nhưng dòng điện cần tăng theo mỗi đèn LED.
Để không bị lỗi và sáng hoàn toàn tất cả các đèn LED, hãy luôn sử dụng nguồn điện tốt, nếu không một số đèn LED có thể không phát sáng hoặc sáng yếu.
GND
Các chân nối mass cho tất cả các bộ điều khiển. Toàn bộ dây LED, tất cả các mass đều nối chung với IC WS2812 / SK6812. Hơn nữa, IC có một chân nối mass duy nhất để tạo điểm mass chung.
Chân dữ liệu
Chân dữ liệu kết nối với vi điều khiển / Arduino, lấy đầu vào dữ liệu nối tiếp từ Arduino / vi điều khiển và sau đó các LED sẽ sáng theo mẫu. Các chân dữ liệu chỉ là một trong toàn bộ dây led và giúp điều chỉnh màu sắc và trạng thái của từng đèn LED.
Đặc tính LED NeoPixel
Lưu ý: Có thể xem datasheet để biết thêm hướng dẫn. Link datasheet ở cuối bài
Cấu tạo bên trong của dải LED rất đơn giản vì thiết kế đơn giản nên trên thị trường rất khó tìm thấy dây LED của hãng Adafruit nguyên bản.
Dây đèn LED là sự kết hợp của Led 5050 RGB mắc nối tiếp nhưng khi các đèn LED mắc nối tiếp theo 1 cách khác, chúng sẽ không hoạt động.
Trong dây led, đèn led đầu tiên được kết nối với tụ điện, sau đó mắc với IC điều khiển WS2812 / SK6812 bên trong. IC điều khiển là điều khiển cho đèn LED hoạt động.
Trong dải LED, cả 2 IC WS2812B / SK6812 điều khiển giải quyết đầu vào dữ liệu song song cho mỗi LED. Cả hai IC điều khiển đều có đèn LED RGB 5050.
Trong đèn LED RGB, IC điều khiển WS2812B / SK6812 được kết nối bên trong với đèn LED và cho ra hai chân nguồn và hai chân dữ liệu.
1 IC điều khiển khác là WS2812 cho ra tổng cộng sáu chân đầu ra. Đèn LED kết hợp với IC WS2812 cũng có hai chân dữ liệu, nhưng có ba chân là chân chọn nguồn cấp điện khác nhau cho đèn LED và chân thứ sáu là chân NC (không kết nối). Cả hai sơ đồ IC điều khiển được đưa ra bên dưới:
Đèn LED 5050 trên dây led kết nối với tụ điện thành một chuỗi. Truyền dữ liệu vào chân DIN và sau đó xuất ra từ chân DOUT.
Nguồn và mass luôn mắc chung với nhau cho toàn bộ dải LED. Các chân nguồn sử dụng tụ điện cho mỗi led 5050 RGB. Mạch dưới đây là cách các đèn LED kết nối trên toàn bộ dây:
Trong dây LED, dữ liệu được truyền theo chuỗi. Tín hiệu từ vi điều khiển / Arduino, chỉ truyền dữ liệu 24-bit. Sau đó, dữ liệu đi vào một đèn LED và thực hiện như được hướng dẫn ở phần trước, sau đó dữ liệu của đèn LED tiếp theo sẽ được định lại trong bộ vi điều khiển.
Dữ liệu tiếp theo cũng sẽ là 24-bit. Mỗi khi dữ liệu được xuất từ bộ vi điều khiển sẽ có địa chỉ tương ứng với LED hoạt động. Dây đèn LED kết hợp với bộ vi điều khiển PIC cũng có thể hoạt động nhưng không có thư viện hỗ trợ hoặc phương pháp lập trình chính thức từ hãng Adafruit.
Đèn LED Neo Pixel được sử dụng cho các ứng dụng thương mại và công nghiệp. Rất dễ sử dụng với Arduino do có thư viện hỗ trợ chính thức nhưng cũng có một loạt các thư viện mới khác điều khiển được toàn bộ dây LED.
Ở đây chúng ta sẽ sử dụng thư viện hỗ trợ chính thức để điều khiển dải đèn LED. Để sử dụng dây LED với Arduino và bảng mạch Arduino có thể sử dụng được ngay cả khi nó chỉ còn sử dụng được 1 chân duy nhất. Để sử dụng dây LED hãy tham khảo mạch sau.
Tải thư viện Arduino
Sau khi lập trình mạch, hãy sử dụng thư viện hỗ trợ chính thức sau:
#include <Adafruit_NeoPixel.h>
Thư viện có thể sử dụng được với Arduino 16MHz và 8MHz. Sau khi khai báo thư viện, Arduino cần khai báo chân điều khiển led trên Arduino, số đèn LED, kiểu kết hợp màu đèn LED và xung clock:
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRBW + NEO_KHZ800);
LED_COUT cần thay đổi theo tổng số LED mà Arduino sẽ điều khiển và LED_PIN là chân dữ liệu LED trên Arduino. NEW_GRBW và NEW_KHZ800 có thể thay đổi theo dãy nhị phân của dây LED. Đây là một số thông số khai báo cho mỗi dây LED.
Dây đèn LED có thể sử dụng hầu hết với bảng mạch Arduino 16MHz và 8MHz. Trong thư viện, cần phải khai báo xung clock.
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000) clock_prescale_set(clock_div_1); #endif
Trong Arduino để sử dụng dây LED, phải được khởi tạo trong Arduino. Để khởi tạo, Arduino có ba lệnh:
strip.begin(); strip.show(); strip.setBrightness(50);
Lệnh strip.begin là để khởi tạo dây led cho Arduino, cần phải khai báo nếu không thư viện sẽ không hoạt động. Lệnh strip.show là tắt tất cả các đèn LED nhưng không cần thiết.
Sau đó là lệnh thứ ba trip.setBrightness kèm theo giá trị (trong hoặc) để khai báo cường độ sáng của mỗi đèn LED. Giá trị được thay đổi từ 0 đến 255, với 0 là giá trị nhỏ nhất và 255 là giá trị lớn nhất.
Mỗi đèn LED có thể điều khiển trạng thái và màu sắc. Để điều chỉnh màu sắc và trạng thái của từng đèn LED, hãy sử dụng lệnh sau:
pixel.setPixelColor (LED, pixel.Color (0, 150, 0));
“LED” là số LED cần thay đổi và “pexel.Color()” là màu pixel cần thay đổi tương ứng với mỗi LED. Sau đó, Arduino cần sử dụng lệnh sau để gửi dữ liệu:
pixel.show ();
Sau khi gửi lệnh hiển thị, Arduino sẽ gửi dữ liệu đến chính xác đèn LED được chỉ định. Các giá trị thay đổi rất nhanh và tất cả các đèn LED đều thay đổi ngay lập tức. Có nhiều chức năng mà dây đèn LED có thể làm được, bạn có thể tìm kiếm trên internet.
>>> Mời anh em xem thêm