Nội Dung Bài Viết
Trong bài viết này tôi sẽ xây dựng một chương trình để điều khiển LED color RGB sử dụng Analog Ouput (PWM). Ở những bài viết trước tôi đã giới thiệu những function xử lí digital analog I/O cơ bản. Các bạn có thể tìm đọc nhé.
Chân PWM trên Arduino
Trước khi làm việc với Arduino PWM, chúng ta cần biết PWM có trên những chân nào của Arduino. Đối Arduino Mega, bạn sẽ thấy nhãn PWM vì vậy bạn sẽ biết chân nào dùng được chức năng PWM. Bạn nhìn thấy chân PWM dưới mũi tên màu đỏ hình dưới đây.
Đối với Arduino Uno, chân PWM được viết DIGITAL (PWM~). Nghĩa là những chân PWM có thể tìm thấy trên các chân DIGITAL có kí hiệu ~ trước chữ số (~3, ~5, ~6, ~9, ~10, ~11). Bạn nhìn hình dưới đây nhé.
Kết nối dây
LED RGB có 4 chân, cho dễ hiểu bạn xem hình dưới đây nhé
Chân 1: Red
Chân 2: Chân chung
Chân 3: Green
Chân 4: Blue
LED RGB kết nối Arduino:
- LED RGB chân 1 được kết nối với chân D6 của Arduino
- LED RGB chân 2 được kết nối với chân +5V VCC của Arduino
- LED RGB chân 3 được kết nối với chân D5 của Arduino
- LED RGB chân 4 được kết nối với chân D3 của Arduino
Các bạn xem sơ đồ kết nối LED RGB với Arduino PWM dưới đây nhé.
Hình ảnh chụp thực tế LED RGB kết nối với Arduino Uno
Viết chương trình
Để tạo ra những màu sắc nhất định chúng ta cần kết hợp các màu từ đỏ, lục, lam. MATLAB cung cấp API cho PWM giống như Arduino API thông qua function WritePWMDutyCycle() với giá trị analog từ 0 đến 1.
Bây giờ bắt đầu viết chương trình thôi. Trước tiên các bạn mở MATLAB, tạo một Script mới và viết đoạn chương trình sau vào:
Save chương trình với tên led_rgb.m
Chương trình này sẽ tạo ra 6 màu: red, green, blue, yellow, purple, and aqua.
Chạy và kiểm tra chương trình
Upload và chạy chương trình: tại cửa sổ Command Window gõ lệnh
>> led_rgb –> Enter
Theo dõi kết quả được hiểu thị ra màn hình console và quan sát sự thay đổi màu sắc trên LED RGB.
Các bạn xem video sau đây để nhìn thấy rõ sự thay đổi giữa 6 màu sắc được tạo ra nhờ LED RGB.
Download file
Bài viết các bạn có thể tham khảo:
- Điều khiển Arduino sử dụng GUI MATLAB: Control an LED using GUI
- Điều khiển Arduino sử dụng GUI MATLAB: RGB LED Color Mixing
- Lập trình GUI MATLAB điều khiển động cơ DC sử dụng cầu H L298D