Nội Dung Bài Viết
Ở bài viết trước tôi đã giới thiệu về GUI matlab và làm một giao diện GUI đơn giản điều khiển bật tắt LED với button push. Bài viết này, tôi sẽ hướng dẫn tạo slider cho GUI MATLAB để trộn màu sắc cho LED RGB.
Chúng ta sẽ tạo một GUI MATLAB điều khiển LED RGB được kết nối với Arduino, LED RGB sẽ được kết nối với chân PWM của Arduino. Chúng sẽ được điều khiển qua MATLAB với function writePWMVoltage() thông qua thanh slider.
Kết nối phần cứng
Trước tiên chúng ta cần kết nối LED RGB với Arduino Uno
Trong hướng dẫn này tôi sử dụng:
- Arduino Uno
- LED RGB Anot chung
- 3x điện trợ 220 ôm
- Một số dây điện
Nối chân màu đỏ của LED RGB với chân số 6 Arduino, chân màu xanh lá của LED với chân số 5, chân màu xanh dương với chân số 3. Chân chung anot của LED RGB được nối với +5V VCC của Arduino. Nối điện trở 220 ôm giữa chân LED với chân PWM Arduino. Các bạn có thể thay đổi chân kết nối với Arduino, nhưng chú ý phải kết nối với chân PWM arduino nhé.
Sau khi kết nối xong phần cứng, chúng ta bắt đầu tạo giao diện GUI với MATLAB thôi.
Tạo GUI MATLAB
Trước tiên các bạn mở MATLAB và tại cửa sổ Command Window gõ lệnh: >>guide để tạo một GUI mới. Chọn black GUI. Click chọn slider ở công cụ toolbox bên trái cửa sổ làm việc.
Chọn và kéo slider đến khu vực thiết kế trong cửa sổ GUI. Sau đó kéo và thả slider đến vị trí thích hợp. Tùy chỉnh kích thước phù hợp. Bạn tạo ra 3 slider như vậy.
Click chuột phải vào từng slider và chọn Property Inspector và thay đổi các thuộc tính sau
Property Inspector | Slider 1 | Slider 2 | Slider 3 |
BackgroundColor | Red | Green | Blue |
Max | 5 | 5 | 5 |
Min | 0 | 0 | 0 |
String | mặc định | mặc định | mặc định |
Tag | Slider_Red | Slider_Green | Slider_Blue |
Sau khi thiết kế xong GUI, cạn bạn nhấn icon RUN trên cửa sổ GUI và chương trình yêu cầu bạn Save file. Thay đổi tên và Save nó.
Bây giờ chúng ta chuyển đến làm việc với file .m vừa mới được phần mềm MATLAB tạo ra và được mở sẵn trong MATLAB. Nhiệm vụ của chúng ta là add code function call back cho slider.
Add code cho file .m
Tìm đến dòng function varargout trong file .m và thêm dòng clear all; và khai báo thêm một biến phần cứng cho Arduino. Thêm đoạn code được đánh dấu trong khung màu đỏ vào chương trình.
Bây giờ chúng ta tiến hành add command code cho slider đầu tiên – Slider_Red. Di chuyển đến đoạn function Slider_Red_Callback. Chúng ta sẽ thay đổi giá trị PWM cho chân 6 thông qua Slider_Red được kết nối với chân Red của LED. Thêm đoạn code trong khung màu đỏ vào chương trình.
Câu lệnh Get (hObject, ‘Value’) sẽ trả về giá trị hiện tại của slider, giá trị này được gán cho biến b.
Câu lệnh writePWMVoltage dùng để viết function PWM trong Arduino hardware từ MATLAB.
Khi mà slider thay đổi, giá trị hiện tại của slider cũng thay đổi và được gán vào biến b giá trị từ 0-5 (tương ứng với điện áp từ 0-5V). Điều này sẽ làm giá trị PWM thay đổi thông qua MATLAB, trong Arduino sẽ thay đổi từ 0-255. Chân red của LED được kết nối với D6 của Arduino (chân PWM) và khi slider thay đổi điện áp chân D6 cũng sẽ thay đổi.
Đối với 2 slider còn lại cũng tương tự như vậy, chỉ thay đổi biến được gán giá trị từ slider và chân kết nối với LED cho phù hợp.
Chúng ta chỉ việc copy đoạn code từ slider_red. Rồi sửa biến b thành biến c, D6 thành D5 tướng ứng với chân LED green. Xem đoạn code trong khung màu đỏ dưới đây.
Slider_Blue chúng ta cũng làm tương tự, biến c thành biến d, D5 thành D3. Như hình dưới đây.
Sau khi thay đổi ta cần lưu file .m lại (Ctrl+S). Sau đó kết nối Arduino với máy tính. Nhấn vào biểu tượng RUN để chạy chương trình. Thay đổi giá trị từng slider một và quan sát sự thay đổi màu sắc trên LED RGB.
Chúc các bạn thành công nhé.
Download file
Bài viết các bạn có thể tham khảo:
- Lập trình GUI MATLAB điều khiển động cơ DC sử dụng cầu H L298D
- Lập trình GUI MATLAB vẽ đồ thị nhiệt độ từ LM35 với công cụ Axes
- Điều khiển tốc độ động cơ DC sử dụng MATLAB