- Adafruit 5X8 NeoPixel Shield cho Arduino
- Hiểu quy trình giao tiếp giữa ứng dụng Blynk và Arduino
- Thành phần bắt buộc
- Adafruit RGB LED Shield và Arduino - Kết nối phần cứng
- Cấu hình ứng dụng Blynk
- Arduino Code Control Adafruit WS2812B RGB LED Shield
- Tải mã lên bảng Arduino
Trong một vài năm, đèn LED RGB đang trở nên phổ biến từng ngày do màu sắc đẹp, độ sáng và hiệu ứng ánh sáng hấp dẫn. Đó là lý do tại sao Nó được sử dụng ở nhiều nơi như một vật dụng trang trí, ví dụ có thể là nhà hoặc không gian văn phòng. Ngoài ra, chúng ta có thể sử dụng đèn RGB trong nhà bếp và cả trong bảng điều khiển trò chơi. Chúng cũng tuyệt vời trong phòng chơi của trẻ em hoặc phòng ngủ về ánh sáng theo tâm trạng. Trước đây, Chúng tôi đã sử dụng đèn LED WS2812B NeoPixel và Bộ vi điều khiển ARM để xây dựng Trình hiển thị phổ nhạc, vì vậy hãy kiểm tra xem điều đó có thú vị với bạn không.
Đó là lý do tại sao trong dự án này, chúng tôi sẽ sử dụng tấm chắn ma trận LED RGB dựa trên Neopixel, ứng dụng Arduino và Blynk để tạo ra nhiều hiệu ứng hoạt ảnh và màu sắc hấp dẫn mà chúng tôi có thể điều khiển bằng ứng dụng Blynk. Vậy hãy bắt đầu!!!
Adafruit 5X8 NeoPixel Shield cho Arduino
Tấm chắn NeoPixel tương thích với Arduino chứa bốn mươi đèn LED RGB có thể định địa chỉ riêng, mỗi đèn LED được tích hợp trình điều khiển WS2812b, được sắp xếp theo ma trận 5 × 8 để tạo thành Tấm chắn NeoPixel này. Nhiều Khiên NeoPixel cũng có thể được kết nối để tạo thành một Lá chắn lớn hơn nếu đó là yêu cầu. Để điều khiển các đèn LED RGB, cần có một chân Arduino duy nhất, vì vậy trong hướng dẫn này, chúng tôi đã quyết định sử dụng chân 6 của Arduino để làm như vậy.
Trong trường hợp của chúng tôi, các đèn LED được cấp nguồn từ chân 5V có sẵn của Arduino, đủ để cấp nguồn cho “một phần ba số đèn LED” ở độ sáng đầy đủ. Nếu bạn cần cấp nguồn cho nhiều đèn LED hơn, thì bạn có thể cắt dấu vết sẵn có và sử dụng nguồn 5v bên ngoài để cấp nguồn cho lá chắn bằng cách sử dụng đầu cuối 5V bên ngoài.
Hiểu quy trình giao tiếp giữa ứng dụng Blynk và Arduino
Ma trận LED RGB 8 * 5 được sử dụng ở đây có bốn mươi đèn LED RGB có thể định địa chỉ riêng dựa trên trình điều khiển WS2812B. Nó có khả năng kiểm soát màu 24-bit và 16,8 triệu màu trên mỗi pixel. Nó có thể được kiểm soát bằng phương pháp luận "Điều khiển một dây". Điều đó có nghĩa là chúng ta có thể kiểm soát toàn bộ pixel LED bằng một chân điều khiển duy nhất. Trong khi làm việc với các đèn LED, tôi đã xem qua bảng dữ liệu của các đèn LED này, nơi tôi thấy dải điện áp hoạt động của tấm chắn là 4 V đến 6 V và mức tiêu thụ hiện tại được tìm thấy là 50 mA trên mỗi đèn LED ở 5 V với màu đỏ, xanh lục, và màu xanh lam ở độ sáng đầy đủ. Nó có bảo vệ Điện áp ngược trên các chân nguồn bên ngoài và nút Đặt lại trên Tấm chắn để đặt lại Arduino. Nó cũng có chân đầu vào Nguồn bên ngoài cho đèn LED nếu không có đủ nguồn điện qua mạch bên trong.
Như trong sơ đồ trên, chúng ta cần tải xuống và cài đặt ứng dụng Blynktrên điện thoại thông minh của chúng tôi, nơi các thông số như màu sắc, độ sáng có thể được kiểm soát. Sau khi thiết lập các thông số, nếu có bất kỳ thay đổi nào xảy ra với ứng dụng, ứng dụng sẽ chuyển sang đám mây Blynk nơi PC của chúng tôi cũng được kết nối và sẵn sàng nhận dữ liệu cập nhật. Arduino Uno được kết nối với PC của chúng tôi thông qua cáp USB có mở cổng giao tiếp, với cổng giao tiếp này (Cổng COM), dữ liệu có thể được trao đổi giữa đám mây Blynk và Arduino UNO. PC đang yêu cầu dữ liệu từ đám mây Blynk trong khoảng thời gian cố định và khi nhận được dữ liệu cập nhật, nó sẽ chuyển dữ liệu đó đến Arduino và đưa ra các quyết định do người dùng xác định như kiểm soát độ sáng và màu sắc của đèn LED RGB. Tấm chắn LED RGB được đặt trên Arduino LED và được kết nối thông qua một chân dữ liệu duy nhất để giao tiếp, theo mặc định, nó được kết nối qua chân D6 của Arduino.Dữ liệu nối tiếp được gửi từ Arduino UNO được gửi đến Neopixel shied, sau đó được phản ánh trên ma trận LED.
Thành phần bắt buộc
- Arduino UNO
- Tấm chắn ma trận LED RGB 8 * 5
- Cáp USB A / B cho Arduino UNO
- Máy tính xách tay / PC
Adafruit RGB LED Shield và Arduino - Kết nối phần cứng
Các WS2812B đèn LED Neopixel có ba chân, một là cho dữ liệu và hai khác được sử dụng cho quyền lực, nhưng cụ thể này Arduino lá chắn làm cho các kết nối phần cứng rất đơn giản, tất cả chúng ta phải làm là nơi ma trận Neopixel LED trên đỉnh của Arduino UNO. Trong trường hợp của chúng tôi, đèn LED được cấp nguồn từ Đường ray Arduino 5V mặc định. Sau khi đặt Neopixel Shield, thiết lập sẽ như sau:
Cấu hình ứng dụng Blynk
Blynk là một ứng dụng có thể chạy trên các thiết bị Android và IOS để điều khiển bất kỳ thiết bị và thiết bị IoT nào bằng điện thoại thông minh của chúng tôi. Trước hết, cần tạo Giao diện người dùng đồ họa (GUI) để điều khiển ma trận LED RGB. Ứng dụng sẽ gửi tất cả các thông số đã chọn từ GUI đến Blynk Cloud. Trong phần đầu thu, chúng ta có Arduino được kết nối với PC thông qua cáp giao tiếp nối tiếp. Do đó, PC yêu cầu dữ liệu từ đám mây Blynk và những dữ liệu này được gửi đến Arduino để xử lý cần thiết. Vì vậy, hãy bắt đầu với thiết lập ứng dụng Blynk.
Trước khi thiết lập, hãy tải xuống Ứng dụng Blynk từ cửa hàng Google Play (Người dùng iOS có thể tải xuống từ App Store). Sau khi cài đặt, hãy đăng ký bằng id email và Mật khẩu của bạn.
Tạo một dự án mới:
Sau khi cài đặt thành công, hãy mở ứng dụng và ở đó chúng ta sẽ nhận được màn hình có tùy chọn “ Dự án mới ”. Bấm vào nó và nó sẽ hiện ra một màn hình mới, tại đây chúng ta cần thiết lập các thông số như tên Project, Board và loại kết nối. Trong dự án của chúng tôi, chọn thiết bị là “ Arduino UNO ” và loại kết nối là “ USB ” và nhấp vào “ Tạo”.
Sau khi tạo Dự án thành công, chúng tôi sẽ nhận được ID xác thực trong thư đăng ký của mình. Lưu ID xác thực để tham khảo trong tương lai.
Tạo Giao diện Người dùng Đồ họa (GUI):
Mở dự án trong Blynk, nhấp vào dấu “+” nơi chúng tôi sẽ nhận được các vật dụng mà chúng tôi có thể sử dụng trong dự án của mình. Trong trường hợp của chúng tôi, chúng tôi cần một Bộ chọn màu RGB được liệt kê là “zeRGBa” như hình dưới đây.
Đặt các Widget:
Sau khi kéo các widget vào dự án của chúng ta, bây giờ chúng ta phải thiết lập các tham số của nó được sử dụng để gửi các giá trị RGB màu đến Arduino UNO.
Nhấn vào ZeRGBa, sau đó chúng ta sẽ nhận được một màn hình có tên cài đặt ZeRGBa. Sau đó, đặt tùy chọn Đầu ra thành “ Hợp nhất ” và đặt chốt thành “V2” được hiển thị trong hình dưới đây.
Arduino Code Control Adafruit WS2812B RGB LED Shield
Sau khi hoàn thành kết nối phần cứng, mã cần được tải lên Arduino. Giải thích từng bước của mã được hiển thị bên dưới.
Đầu tiên, hãy bao gồm tất cả các thư viện được yêu cầu. Mở Arduino IDE, sau đó chuyển đến tab Sketch và nhấp vào tùy chọn Bao gồm Thư viện-> Quản lý Thư viện . Sau đó tìm kiếm Blynk trong hộp tìm kiếm rồi tải xuống và cài đặt gói Blynk cho Arduino UNO.
Ở đây, thư viện “ Adafruit_NeoPixel.h ” được sử dụng để điều khiển Ma trận LED RGB. Để bao gồm nó, Bạn có thể tải xuống thư viện Adafruit_NeoPixel từ liên kết đã cho. Khi bạn đã hiểu, bạn có thể bao gồm nó với tùy chọn Bao gồm Thư viện ZIP.
#define BLYNK_PRINT DebugSerial #include #include
Sau đó, chúng tôi xác định số lượng đèn LED, được yêu cầu cho ma trận LED của chúng tôi, chúng tôi cũng xác định số pin được sử dụng để điều khiển các thông số LED.
#define PIN 6 #define NUM_PIXELS 40
Sau đó, chúng ta cần đặt ID xác thực nháy mắt của mình vào một mảng xác thực , mà chúng ta đã lưu trước đó.
char auth = "HoLYSq-SGJAafQUQXXXXXXXX";
Ở đây các chân nối tiếp phần mềm được sử dụng làm bảng điều khiển gỡ lỗi. Vì vậy, các chân Arduino được định nghĩa là nối tiếp gỡ lỗi bên dưới.
#include
Thiết lập bên trong, giao tiếp nối tiếp được khởi tạo bằng cách sử dụng hàm Serial.begin , blynk được kết nối bằng Blynk.begin và sử dụng pixel.begin (), Ma trận LED được khởi tạo.
void setup () { DebugSerial.begin (9600); pixel.begin (); Serial.begin (9600); Blynk.begin (Serial, auth); }
Bên trong vòng lặp () , chúng tôi đã sử dụng Blynk.run () , kiểm tra các lệnh đến từ blynk GUI và thực hiện các hoạt động tương ứng.
void loop () { Blynk.run (); }
Trong giai đoạn cuối cùng, các tham số được gửi từ ứng dụng Blynk cần được tiếp nhận và xử lý. Trong trường hợp này, các tham số được phân bổ cho một chân ảo “V2” như đã thảo luận trước đó trong phần thiết lập. Hàm BLYNK_WRITE là một hàm có sẵn được gọi bất cứ khi nào trạng thái / giá trị của chân ảo liên quan thay đổi. chúng ta có thể chạy mã bên trong hàm này giống như bất kỳ hàm Arduino nào khác.
Ở đây hàm BLYNK_WRITE được viết để kiểm tra dữ liệu đến tại chân ảo V2. Như được hiển thị trong phần Thiết lập nhấp nháy, dữ liệu pixel màu đã được hợp nhất và gán cho chân V2. Vì vậy, chúng tôi cũng phải khử hợp nhất một lần nữa sau khi giải mã. Vì để điều khiển ma trận điểm ảnh LED, chúng ta cần cả 3 dữ liệu điểm ảnh màu riêng lẻ như Đỏ, xanh lá cây và Xanh lam. Như được hiển thị trong đoạn mã dưới đây, ba chỉ mục của ma trận được đọc giống như param.asInt () để nhận giá trị của màu Đỏ. Tương tự, tất cả hai giá trị còn lại được nhận và lưu trữ trong 3 biến riêng lẻ. Sau đó, các giá trị này được gán cho ma trận Pixel bằng cách sử dụng hàm pixel.setPixelColor như được hiển thị trong đoạn mã bên dưới.
Ở đây, hàm pixel.setBrightness () được sử dụng để điều khiển độ sáng và hàm pixel.show () được sử dụng để hiển thị màu đã đặt trong Ma trận.
BLYNK_WRITE (V2) { int r = param.asInt (); int g = param.asInt (); int b = param.asInt (); pixel.clear (); pixel.setBrightness (20); for (int i = 0; i <= NUM_PIXELS; i ++) { pixel.setPixelColor (i, pixel.Color (r, g, b)); } pixel.show (); }
Tải mã lên bảng Arduino
Đầu tiên, chúng ta cần chọn PORT của Arduino bên trong Arduino IDE, sau đó chúng ta cần tải mã lên Arduino UNO. Sau khi tải lên thành công, hãy ghi lại Số cổng sẽ được sử dụng cho thiết lập giao tiếp nối tiếp của chúng tôi.
Sau đó, tìm thư mục script của thư viện Blynk trên PC của bạn. Nó được cài đặt khi bạn cài đặt thư viện, thư viện của tôi, “C: \ Users \ PC_Name \ Documents \ Arduino \ library \ Blynk \ scripts”
Trong thư mục script, sẽ có một tệp có tên “blynk-ser.bat”, đây là một tệp hàng loạt được sử dụng cho giao tiếp nối tiếp mà chúng ta cần chỉnh sửa bằng notepad. Mở tệp bằng notepad và thay đổi số Cổng thành số Cổng Arduino của bạn mà bạn đã lưu ý trong bước cuối cùng.
Sau khi chỉnh sửa, hãy lưu tệp và chạy tệp hàng loạt bằng cách nhấp đúp vào nó. Sau đó, bạn phải nhìn thấy một cửa sổ như hình dưới đây:
Lưu ý: Nếu bạn không thể thấy cửa sổ này được hiển thị ở trên và nó được nhắc kết nối lại, thì có thể do lỗi kết nối PC với lá chắn Arduino. Trong trường hợp đó, hãy kiểm tra kết nối Arduino của bạn với PC. Sau đó, hãy kiểm tra xem số cổng COM có hiển thị trong Arduino IDE hay không. Nếu nó đang hiển thị cổng COM hợp lệ, thì nó đã sẵn sàng để tiếp tục. Bạn nên chạy lại tệp hàng loạt.
Trình diễn cuối cùng:
Bây giờ, đã đến lúc kiểm tra mạch và chức năng của nó. Mở ứng dụng Blynk và mở GUI và nhấp vào nút Play. Sau đó, bạn có thể chọn bất kỳ màu nào bạn muốn để phản chiếu trên Ma trận LED. Như hình dưới đây, trong trường hợp của tôi, tôi đã chọn màu Đỏ và Xanh, nó đang được hiển thị trên Ma trận.
Tương tự, bạn cũng có thể thử tạo các hoạt ảnh khác nhau bằng cách sử dụng các ma trận LED này bằng cách tùy chỉnh mã hóa một chút.