"Fiat Lux - Hãy có ánh sáng": (Phần 2) Viết code BLINK thần thánh cho neopixel WS2812

Mô tả dự án: 

Đây là phần 2 cho tutorial hướng dẫn cách lập trình LED 3 màu neopixel WS2812. Vì mỗi module LED là 1 mạch IC nên cách sử dụng hơi rắc rối hơn so với LED thông thường. Các bạn chú ý nha!

Tiếp nối:

Các bạn có thể xem phần trước tại đây để thuận tiện hợn cho cuộc chiến laugh Tại Đây

Phần cứng:

Mỗi module neopixel có 4 chân:

  • 5V: Nối với nguồn 5V 
  • GD: Nối đất
  • DIN: nối với bất kỳ digital pin nào của Arduino (pin 6 trong phần code dưới)
  • DOUT: nối với DIN của module neopixel kế tiếp (hoặc bỏ trống)

Ngoài ra bạn nên gắn thêm 1 tụ 1000 microFarad 6,3V giữa 2 chân 5V và GD để ngăn dòng lớn khi mới gắn nguồn vào module. Ngoài ra, bạn cũng nên gắn nối tiếp 1 trở 300 đến 500 Ohm giữa Arduino pin và DIN để bảo vệ DIN của neopixel. 

 

 

Phần mềm:

Bước 1: Bạn vào trang đây và tải thư viện về.

Bước 2: Code thoai:

#include <Adafruit_NeoPixel.h>

#define PIN 6

Adafruit_NeoPixel strip = Adafruit_NeoPixel(1, PIN, NEO_GRB + NEO_KHZ800);

void setup(){  

    strip.begin();  
    
    strip.show();
}

void loop(){

    strip.setPixelColor(0,50,0,0);
    
    strip.show(); delay(1000);
    
    strip.setPixelColor(0,0,50,0);
    
    strip.show(); delay(1000);
    
    strip.setPixelColor(0,0,0,50);
    
    strip.show();
    
    delay(1000);

}

 

Hướng dẫn phần cơ bản của code

Đầu tiên là phần khai báo lớp:

Adafruit_NeoPixel strip = Adafruit_NeoPixel(1, PIN, NEO_GRB + NEO_KHZ800);

Ở đây 1 là số pixel bạn muốn điều khiển. Ví dụ bạn có vòng 24 LED trong phần trước thì sửa 1 thành 24.

strip.setPixelColor(0,50,0,0)

Đây là câu quan trọng nhất:

  • Biến đầu tiên là số thứ tự LED bạn muốn điều khiển, tính từ zero. Ví dụ: bạn muốn điều chỉnh màu của LED thứ 3 thì câu lệnh sẽ là strip.setPixelColor(2,x,x,x)
  • Ba biến cuối là độ sáng của màu đỏ, lục, lam (từ 0 đến 255). Ví dụ: bạn muốn chỉnh LED thứ 2 sang màu tím hường (đỏ + lam) thì câu lệnh sẽ là strip.setPixelColor(1, 255,0,255). 

Cuối cùng là câu lệnh bắt buộc để bắt Arduino gửi xung ra lệnh cho neopixel thực hiện việc đổi màu:

strip.show()

Nếu không có câu này thì sẽ không có gì xảy ra đâu nhé!

Mẹo vặt

  • Nếu bạn thích 1 màu mà không biết mã RGB của nó là gì, bạn có thể vào trang sau để tìm: http://www.psyclops.com/tools/rgb/
  • Bạn có thể gán 1 biến uint32_t cho 1 màu nào đó rồi sau này gọi lại cho tiện. Ví dụ: bạn có thể sửa LED thứ 6 thành màu hường bằng cách sau:
uint32_t magenta = strip.Color(255, 0, 255); 

strip.setPixelColor(5, magenta); 

strip.show();
  • Mỗi neopixel xơi khoảng 3 bytes RAM nên bạn nhớ lựa em Arduino nào khỏe khỏe 1 xí nếu bạn dùng nhiều pixel.

Gợi ý nâng cao:

  • Viết lại code trong bài làm đèn xe cảnh sát pikachu trong bài http://arduino.vn/bai-viet/227-lam-den-nhap-nhay-tren-xe-canh-sat với 1 neopixel duy nhất.
  • Viết code hiệu ứng cầu vồng trong bài http://arduino.vn/bai-viet/530-lam-nao-de-dieu-khien-led-rgb-led-3-mau. cho 1 neopixel.

Bài kế tiếp tui sẽ viết tiếp hướng dân làm mood lamp (đèn tự kỷ) với neopixel. wink

lên
22 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Xe điều khiển bằng tay game Dual Shock3 thông qua Bluetooth

Vừa bắt đầu với arduino được hơn 1 tuần, có tham khảo qua các nguồn từ "trung ương đến địa phương", nắm được 1 số kiến thức cơ bản nên mình bắt đầu thực hiện 1 sản phẩm để đúc kết kinh nghiệm. Trong số đó thì xe điều khiển là dễ nhất. Kết hợp với cái tay game ps3 nằm lăn lóc ở góc nhà. Thế là có 1 chiếc xe điều khiển từ xa. Bắt đầu nhé.

lên
17 thành viên đã đánh giá bài viết này hữu ích.

Làm xe điều khiển từ xa bằng Bluetooth - Điều khiển bằng Android với App Inventor

Mình rất thích điện tử nhưng không học về ngành điện tử. Rất may là có Adruino, rồi có cộng đồng Adruino Việt Nam, đặc biệt là sự nhiệt tình của tất cả các bạn trong cộng đồng, mình đã làm được 1 chiếc xe điều khiển từ xa. Cho con chơi là lí do phụ thôi, còn tìm hiểu, học tập là chính. Hôm nay chia sẻ cùng các bạn, cùng gửi lời cảm ơn đến tất cả các bạn trong cộng đồng. Có bạn thì giúp đỡ trực tiếp, có bạn thì viết bài, rồi có bạn thì bình luận, nêu câu hỏi. Tất cả đều có giá trị đối với mình.

Ngại viết bài nên mình đăng dưới dạng ảnh.

lên
26 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

"Fiat Lux - Hãy có ánh sáng": (Phần 3) Đèn tự kỷ (mood lamp) với neopixel WS2812

Đây là phần 3 cho tutorial hướng dẫn cách lập trình LED 3 màu neopixel WS2812. Bài trước tui đã hướng dẫn đã làm quen với câu lệnh cơ bản để hiện thị LED WS2812. Bài này chúng ta sẽ thử ứng dụng làm một bóng đèn tự kỷ (mood lamp) nha!

lên
17 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: 

Đi học thoai - Một dự án thú vị với Raspberry Pi và Arduino - Cảnh báo cháy qua email

Ở nhà nhiều roài, Tới giờ đi học à nha! Nhưng mà lỡ đang đi học mà nhà có chuyện gì (cháy nhà) thì sao? Cùng bắt tay vào làm hệ thống cảnh báo cháy qua email với tui nha!

lên
19 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: