Raspberry Pi LED Fade (Điều chỉnh độ sáng)
Hướng dẫn này sẽ chỉ cho bạn cách lập trình Raspberry Pi để điều chỉnh độ sáng LED. Chúng ta sẽ đi qua ba ví dụ và so sánh sự khác biệt giữa chúng:
- Cách lập trình Raspberry Pi để điều chỉnh độ sáng LED sử dụng hàm time.sleep()
- Cách lập trình Raspberry Pi để điều chỉnh độ sáng LED sử dụng hàm millis()
Phần cứng cần chuẩn bị
| 1 | × | Raspberry Pi 5 | ||
| 1 | × | LED Kit | ||
| 1 | × | LED (red) | ||
| 1 | × | LED Module | ||
| 1 | × | điện trở 220 ohm | ||
| 1 | × | breadboard (bo mạch thí nghiệm) | ||
| 1 | × | dây jumper | ||
| 1 | × | (Khuyến nghị) Screw Terminal Block Shield for Raspberry Pi | ||
| 1 | × | (Khuyến nghị) Raspberry Pi Prototyping Base Plate & Breadboard Kit | ||
| 1 | × | (Khuyến nghị) HDMI Touch Screen Monitor for Raspberry Pi |
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Về LED
Pinout của LED
LED có hai chân:
- Chân Cathode(-) cần được kết nối với GND (0V)
- Chân Anode(+) được sử dụng để điều khiển trạng thái của LED

Cách Hoạt Động
Khi chân cathode(-) được kết nối với GND:
- Kết nối GND với chân anode(+) sẽ làm LED TẮT.
- Kết nối VCC với chân anode(+) sẽ làm LED BẬT.
- Tạo tín hiệu PWM cho chân anode(+) sẽ điều chỉnh độ sáng của LED theo giá trị PWM. Giá trị này nằm trong khoảng từ 0 đến 255, với giá trị cao hơn làm LED sáng hơn và giá trị thấp hơn làm LED tối hơn.
- Nếu giá trị PWM là 0, điều này tương đương với GND và LED sẽ TẮT.
- Nếu giá trị PWM là 255, điều này tương đương với VCC và LED sẽ sáng hoàn toàn.

※ Lưu ý:
Đối với hầu hết các LED, phải đặt một điện trở giữa chân anode (+) và VCC. Giá trị của điện trở được xác định bởi thông số kỹ thuật của LED.
Raspberry Pi - điều chỉnh độ sáng LED
Một số chân trên Raspberry Pi có thể được lập trình để tạo ra tín hiệu PWM. Để điều chỉnh độ sáng LED, chúng ta có thể kết nối chân anode (+) của LED với một chân trên Raspberry Pi, cathode (-) với đất, và lập trình Raspberry Pi để tạo PWM trên chân đó.
Sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image
Cách Lập Trình
- Thiết lập đầu ra digital trên chân Raspberry Pi bằng cách sử dụng hàm GPIO.setup().
- Ví dụ, chân GPIO18:
- Điều chỉnh độ sáng của LED bằng cách tạo tín hiệu PWM sử dụng hàm pwm.ChangeDutyCycle().
Độ sáng có thể nằm trong khoảng từ 0 đến 100.
Raspberry Pi Code điều chỉnh độ sáng LED
Hướng dẫn từng bước
- Đảm bảo bạn đã cài đặt Raspbian hoặc bất kỳ hệ điều hành tương thích nào khác với Raspberry Pi.
- Đảm bảo Raspberry Pi của bạn được kết nối với cùng mạng cục bộ với PC của bạn.
- Đảm bảo Raspberry Pi của bạn được kết nối internet nếu bạn cần cài đặt một số thư viện.
- Nếu đây là lần đầu tiên bạn sử dụng Raspberry Pi, hãy xem Raspberry Pi - Cài Đặt Phần Mềm
- Kết nối PC của bạn với Raspberry Pi qua SSH bằng SSH client tích hợp trên Linux và macOS hoặc PuTTY trên Windows. Xem cách kết nối PC với Raspberry Pi qua SSH.
- Đảm bảo bạn đã cài đặt thư viện RPi.GPIO. Nếu chưa, hãy cài đặt bằng lệnh sau:
- Tạo file script Python led_fade.py và thêm code sau:
- Lưu file và chạy script Python bằng cách thực thi lệnh sau trong terminal:
- Kiểm tra độ sáng của LED.
Script chạy trong vòng lặp vô hạn liên tục cho đến khi bạn nhấn Ctrl + C trong terminal.
Giải Thích Code
Hãy xem phần giải thích từng dòng có trong phần comment của source code!
※ Lưu ý:
Ví dụ trên sử dụng hàm time.sleep() để tạo hiệu ứng fade-in và fade-out. Tuy nhiên, hàm time.sleep() làm cho LED fade một cách không mượt mà và chặn các code khác chạy. Trong các phần tiếp theo, chúng ta sẽ học cách fade-in và fade-out mượt mà mà không chặn code khác bằng cách sử dụng hàm millis().
Cách fade in/out LED trong khoảng thời gian nhất định mà không sử dụng time.sleep()
Hướng dẫn từng bước
- Tạo file script Python led_fade.py và thêm code sau:
- Lưu file và chạy script Python bằng cách thực thi lệnh sau trong terminal:
- Kiểm tra độ sáng của LED.
Video Tutorial
Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.