Mục lục:

Tự làm điều khiển màu LED RGB qua Bluetooth: 5 bước
Tự làm điều khiển màu LED RGB qua Bluetooth: 5 bước

Video: Tự làm điều khiển màu LED RGB qua Bluetooth: 5 bước

Video: Tự làm điều khiển màu LED RGB qua Bluetooth: 5 bước
Video: Hướng dẫn sử dụng đèn led RGB điều khiển bằng APP - Cách dùng đèn led RGB trên tiktok| vua đèn led 2024, Tháng bảy
Anonim
Tự làm điều khiển màu LED RGB qua Bluetooth
Tự làm điều khiển màu LED RGB qua Bluetooth

Bóng đèn thông minh đang ngày càng phổ biến trong thời gian gần đây và đang dần trở thành một phần quan trọng của bộ công cụ nhà thông minh. Bóng đèn thông minh cho phép người dùng điều khiển ánh sáng của họ thông qua một ứng dụng đặc biệt trên điện thoại thông minh của người dùng; bóng đèn có thể được bật và tắt và có thể thay đổi màu sắc từ giao diện ứng dụng. Trong dự án này, chúng tôi đã xây dựng một bộ điều khiển bóng đèn thông minh có thể được điều khiển từ một nút thủ công hoặc một ứng dụng di động thông qua Bluetooth. Để thêm phần tinh tế cho dự án này, chúng tôi đã thêm một số tính năng cho phép người dùng chọn màu chiếu sáng từ danh sách các màu có trong giao diện ứng dụng. Nó cũng có thể kích hoạt “hỗn hợp tự động” để tạo ra các hiệu ứng màu sắc và thay đổi ánh sáng sau mỗi nửa giây. Người dùng có thể tạo hỗn hợp màu của riêng mình bằng cách sử dụng tính năng PWM, tính năng này cũng có thể được sử dụng làm bộ điều chỉnh độ sáng cho ba màu cơ bản (đỏ, xanh lá cây, xanh lam). Chúng tôi cũng thêm các nút bên ngoài vào mạch để người dùng có thể chuyển sang chế độ chỉnh tay và thay đổi màu ánh sáng từ nút bên ngoài.

Tài liệu hướng dẫn này bao gồm hai phần; thiết kế GreenPAK ™ và thiết kế ứng dụng Android. Thiết kế GreenPAK dựa trên việc sử dụng giao diện UART để giao tiếp. UART được chọn vì nó được hỗ trợ bởi hầu hết các mô-đun Bluetooth, cũng như hầu hết các thiết bị ngoại vi khác, chẳng hạn như mô-đun WIFI. Do đó, thiết kế GreenPAK có thể được sử dụng trong nhiều kiểu kết nối.

Để xây dựng dự án này, chúng tôi sẽ sử dụng SLG46620 CMIC, mô-đun Bluetooth và đèn LED RGB. GreenPAK IC sẽ là lõi điều khiển của dự án này; nó nhận dữ liệu từ mô-đun Bluetooth và / hoặc các nút bên ngoài, sau đó bắt đầu quy trình cần thiết để hiển thị ánh sáng chính xác. Nó cũng tạo ra tín hiệu PWM và xuất nó tới đèn LED. Hình 1 dưới đây cho thấy sơ đồ khối.

Thiết bị GreenPAK được sử dụng trong dự án này chứa giao diện kết nối SPI, các khối PWM, FSM và rất nhiều khối bổ sung hữu ích khác trong một vi mạch. Nó cũng được đặc trưng bởi kích thước nhỏ và tiêu thụ năng lượng thấp. Điều này sẽ cho phép các nhà sản xuất xây dựng một mạch thực tế nhỏ sử dụng một vi mạch duy nhất, do đó chi phí sản xuất sẽ được giảm thiểu khi so sánh với các hệ thống tương tự.

Trong dự án này, chúng tôi điều khiển một đèn LED RGB. Để làm cho dự án khả thi về mặt thương mại, một hệ thống có thể sẽ cần tăng mức độ sáng bằng cách kết nối nhiều đèn LED song song và sử dụng các bóng bán dẫn thích hợp; mạch nguồn cũng cần được xem xét.

Bạn có thể xem qua tất cả các bước để hiểu cách chip GreenPAK đã được lập trình để điều khiển Màu LED RGB qua Bluetooth. Tuy nhiên, nếu bạn chỉ muốn dễ dàng lập trình vi mạch mà không hiểu tất cả các mạch bên trong, hãy tải phần mềm GreenPAK để xem File thiết kế GreenPAK đã hoàn thành. Cắm Bộ phát triển GreenPAK vào máy tính của bạn và nhấn chương trình để tạo IC tùy chỉnh để điều khiển Màu LED RGB qua Bluetooth.

Thiết kế GreenPAK bao gồm bộ thu UART, bộ PWM và bộ điều khiển được mô tả trong các bước bên dưới.

Bước 1: Bộ thu UART

Bộ thu UART
Bộ thu UART

Đầu tiên, chúng ta cần thiết lập mô-đun Bluetooth. Hầu hết các IC Bluetooth hỗ trợ giao thức UART để giao tiếp. UART là viết tắt của Universal Asynchronous Receiver / Transmitter. UART có thể chuyển đổi dữ liệu qua lại giữa các định dạng song song và nối tiếp. Nó bao gồm một bộ thu nối tiếp sang song song và một bộ chuyển đổi song song sang nối tiếp, cả hai đều có xung nhịp riêng biệt.

Dữ liệu nhận được trong mô-đun Bluetooth sẽ được truyền đến thiết bị GreenPAK của chúng tôi. Trạng thái không hoạt động cho Pin10 là CAO. Mọi ký tự được gửi bắt đầu bằng một bit bắt đầu logic THẤP, tiếp theo là một số bit dữ liệu có thể định cấu hình và một hoặc nhiều bit dừng logic CAO.

Bộ phát UART gửi 1 bit START, 8 bit dữ liệu và một bit STOP. Thông thường, tốc độ truyền mặc định cho mô-đun Bluetooth UART là 9600. Chúng tôi sẽ gửi byte dữ liệu từ IC Bluetooth đến khối SPI của GreenPAK ™ SLG46620.

Vì khối GreenPAK SPI không có điều khiển bit START hoặc STOP, chúng tôi sẽ sử dụng các bit đó thay thế để bật và tắt tín hiệu đồng hồ SPI (SCLK). Khi Pin10 ở mức THẤP, chúng tôi biết rằng chúng tôi đã nhận được bit START, vì vậy chúng tôi sử dụng bộ dò cạnh rơi PDLY để xác định thời điểm bắt đầu giao tiếp. Máy dò cạnh rơi đó đồng hồ DFF0, cho phép tín hiệu SCLK tạo xung nhịp cho khối SPI.

Tốc độ truyền của chúng tôi là 9600 bit mỗi giây, vì vậy khoảng thời gian SCLK của chúng tôi cần phải là 1/9600 = 104 μs. Do đó, chúng tôi đặt tần số OSC thành 2MHz và sử dụng CNT0 làm bộ phân tần.

2 MHz-1 = 0,5 μs

(104 μs / 0,5 μs) - 1 = 207

Do đó, chúng tôi muốn giá trị bộ đếm CNT0 là 207. Để đảm bảo rằng chúng tôi không bỏ lỡ bất kỳ dữ liệu nào, chúng tôi cần trì hoãn đồng hồ SPI một nửa chu kỳ đồng hồ để khối SPI được đánh đồng hồ vào thời điểm thích hợp. Chúng tôi đã hoàn thành điều này bằng cách sử dụng CNT6, 2-bit LUT1 và Đồng hồ bên ngoài của khối OSC. Đầu ra của CNT6 không tăng cao cho đến 52 μs sau khi DFF0 được tăng xung nhịp, bằng một nửa khoảng thời gian SCLK 104 μs của chúng tôi. Khi CNT6 ở mức cao, cổng AND 2 bit LUT1 cho phép tín hiệu OSC 2MHz truyền vào EXT. Đầu vào CLK0, có đầu ra được kết nối với CNT0.

Bước 2: Đơn vị PWM

Đơn vị PWM
Đơn vị PWM

Tín hiệu PWM được tạo ra bằng cách sử dụng PWM0 và bộ tạo xung đồng hồ kết hợp (CNT8 / DLY8). Vì độ rộng xung có thể điều khiển bởi người dùng, chúng tôi sử dụng FSM0 (có thể được kết nối với PWM0) để đếm dữ liệu người dùng.

Trong SLG46620, FSM1 8-bit có thể được sử dụng với PWM1 và PWM2. Mô-đun Bluetooth phải được kết nối, có nghĩa là phải sử dụng đầu ra song song SPI. Các bit đầu ra song song của SPI từ 0 đến 7 được kết hợp với DCMP1, DMCP2 và LF OSC CLK’s OUT1 và OUT0. PWM0 nhận đầu ra của nó từ FSM0 16-bit. Không thay đổi điều này làm cho độ rộng xung quá tải. Để giới hạn giá trị bộ đếm ở 8 bit, một FSM khác được thêm vào; FSM1 được sử dụng như một con trỏ để biết khi nào bộ đếm đạt đến 0 hoặc 255. FSM0 được sử dụng để tạo xung PWM. FSM0 và FSM1 phải được đồng bộ hóa. Vì cả hai FSM đều có các tùy chọn đồng hồ đặt trước, CNT1 và CNT3 được sử dụng làm trung gian để chuyển CLK cho cả hai FSM. Hai bộ đếm được đặt thành cùng một giá trị, là 25 cho Bộ đếm này. Chúng ta có thể thay đổi tốc độ thay đổi của giá trị PWM bằng cách thay đổi các giá trị bộ đếm này.

Giá trị của các FSM được tăng và giảm bởi các tín hiệu '+' và '-', bắt nguồn từ Đầu ra song song SPI.

Bước 3: Thiết bị điều khiển

Bộ điều khiển
Bộ điều khiển

Trong thiết bị điều khiển, byte nhận được sẽ được đưa từ mô-đun Bluetooth đến Đầu ra song song SPI và sau đó được chuyển đến các chức năng liên quan. Lúc đầu, các đầu ra PWM CS1 và PWM CS2 sẽ được kiểm tra để xem liệu mẫu PWM có được kích hoạt hay không. Nếu nó được kích hoạt thì nó sẽ xác định kênh nào sẽ xuất PWM thông qua LUT4, LUT6 và LUT7.

LUT9, LUT11 và LUT14 chịu trách nhiệm kiểm tra trạng thái của hai đèn LED còn lại. LUT10, LUT12 và LUT13 kiểm tra xem nút Manual đã được kích hoạt hay chưa. Nếu chế độ Thủ công đang hoạt động, thì các đầu ra RGB sẽ hoạt động theo các trạng thái đầu ra D0, D1, D2, các trạng thái này được thay đổi mỗi khi nhấn nút Màu. Nó thay đổi với cạnh tăng đến từ CNT9, được sử dụng như một trình gỡ lỗi cạnh tăng.

Chân 20 được định cấu hình làm đầu vào và được sử dụng để chuyển đổi giữa điều khiển Bằng tay và Bluetooth.

Nếu chế độ Thủ công bị tắt và chế độ Bộ trộn tự động được kích hoạt, thì màu sắc sẽ thay đổi sau mỗi 500ms với cạnh tăng đến từ CNT7. LUT1 4 bit được sử dụng để ngăn trạng thái '000' cho D0 D1 D2, vì trạng thái này khiến đèn tắt trong chế độ Bộ trộn tự động.

Nếu chế độ Thủ công, chế độ PWM và chế độ Bộ trộn tự động không được kích hoạt thì các lệnh SPI màu đỏ, xanh lục và xanh lam sẽ chuyển đến các Chân 12, 13 và 14, được định cấu hình làm đầu ra và được kết nối với đèn LED RGB bên ngoài.

DFF1, DFF2 và DFF3 được sử dụng để xây dựng bộ đếm nhị phân 3 bit. Giá trị bộ đếm tăng lên khi xung CNT7 đi qua P14 ở chế độ Bộ trộn tự động hoặc từ các tín hiệu đến từ nút Màu (PIN3) ở chế độ thủ công.

Bước 4: Ứng dụng Android

Ứng dụng Android
Ứng dụng Android
Ứng dụng Android
Ứng dụng Android
Ứng dụng Android
Ứng dụng Android
Ứng dụng Android
Ứng dụng Android

Trong phần này, chúng tôi sẽ xây dựng một ứng dụng Android sẽ theo dõi và hiển thị các lựa chọn kiểm soát của người dùng. Giao diện bao gồm hai phần: phần đầu tiên chứa một tập hợp các nút có màu sắc được xác định trước để khi nhấn bất kỳ nút nào trong số này, một đèn LED có cùng màu tương ứng sẽ sáng. Phần thứ hai (MIX vuông) tạo ra một màu hỗn hợp cho người dùng.

Trong phần đầu tiên, người dùng chọn chân LED mà họ muốn tín hiệu PWM đi qua; tín hiệu PWM chỉ có thể được chuyển tới một chân tại một thời điểm. Danh sách dưới điều khiển hai màu khác bật / tắt một cách hợp lý trong chế độ PWM.

Nút trộn tự động chịu trách nhiệm chạy mô hình thay đổi ánh sáng tự động trong đó ánh sáng sẽ thay đổi sau mỗi nửa giây. Phần MIX chứa hai danh sách hộp kiểm để người dùng có thể quyết định kết hợp hai màu nào với nhau.

Chúng tôi đã xây dựng ứng dụng bằng cách sử dụng trang web của nhà phát minh ứng dụng MIT. Đây là một trang web cho phép xây dựng các ứng dụng Android mà không cần trải nghiệm phần mềm trước đó bằng cách sử dụng các khối phần mềm đồ họa.

Lúc đầu, chúng tôi thiết kế một giao diện đồ họa bằng cách thêm một tập hợp các nút chịu trách nhiệm hiển thị các màu được xác định trước, chúng tôi cũng thêm hai danh sách hộp kiểm và mỗi danh sách có 3 phần tử; mỗi phần tử được phác thảo trong hộp riêng của nó, như trong Hình 5.

Các nút trong giao diện người dùng được liên kết với các lệnh phần mềm: tất cả các lệnh mà ứng dụng gửi qua Bluetooth sẽ ở định dạng byte và mỗi bit chịu trách nhiệm cho một chức năng cụ thể. Bảng 1 cho thấy hình thức của các khung lệnh được gửi đến GreenPAK.

Ba bit đầu tiên, B0, B1 và B2, sẽ giữ trạng thái của đèn LED RGB ở chế độ điều khiển trực tiếp bằng các nút của các màu được xác định trước. Do đó, khi nhấp vào bất kỳ nút nào trong số chúng, giá trị tương ứng của nút sẽ được gửi đi, như trong Bảng 2.

Các bit B3 và B4 giữ các lệnh '+' và '-', chịu trách nhiệm tăng và giảm độ rộng xung. Khi nhấn nút, giá trị bit sẽ là 1 và khi nhả nút, giá trị bit sẽ là 0.

Các bit B5 và B6 chịu trách nhiệm chọn chân (màu) mà tín hiệu PWM sẽ đi qua: ký hiệu màu của các bit này được thể hiện trong bảng 3. Bit cuối cùng, B7, chịu trách nhiệm kích hoạt bộ trộn tự động.

Hình 6 và Hình 7 trình bày quá trình liên kết các nút với các khối lập trình chịu trách nhiệm gửi các giá trị trước đó.

Để xem toàn bộ thiết kế của ứng dụng, bạn có thể tải xuống tệp đính kèm “.aia” cùng với các tệp dự án và mở nó trong trang web chính.

Hình 8 dưới đây cho thấy sơ đồ mạch mức cao nhất.

Bước 5: Kết quả

Bộ điều khiển đã được thử nghiệm thành công và việc trộn màu cùng với các tính năng khác đã được chứng minh là hoạt động thích hợp.

Phần kết luận

Trong Có thể hướng dẫn này, một mạch bóng đèn thông minh được xây dựng để điều khiển không dây bằng ứng dụng Android. GreenPAK CMIC được sử dụng trong dự án này cũng giúp rút ngắn và nhúng một số thành phần thiết yếu để điều khiển ánh sáng vào một vi mạch nhỏ.

Đề xuất: