Tạo Xung PWM Dùng Arduino - Điện Tử Việt
Có thể bạn quan tâm
- Đăng nhập/Đăng ký
Điện Tử Việt
Trang chủ IoT và Công nghệ Arduino Tạo xung PWM dùng Arduino
FacebookTwitterPinterestWhatsApp Quảng cáo Google PWM là viết tắt của Pulse Width Modulation (Điều chế độ rộng xung) và nó là một kỹ thuật phổ biến được sử dụng để thay đổi độ rộng của các xung trong một chuỗi xung. PWM có nhiều ứng dụng như điều khiển độ sáng của đèn LED, điều khiển tốc độ của động cơ DC, điều khiển động cơ servo hoặc nơi bạn phải lấy ngõ ra analog bằng các thiết bị kỹ thuật số.
Các chân số của Arduino cung cấp cho chúng ta 5V (khi ở mức CAO) hoặc 0V (khi ở mức THẤP) và ngõ ra là một tín hiệu sóng vuông. Vì vậy, nếu chúng ta muốn làm mờ đèn LED, chúng ta không thể lấy điện áp trong khoảng từ 0 đến 5V từ chân số này nhưng chúng ta có thể thay đổi thời gian ON và OFF của tín hiệu. Nếu chúng ta thay đổi thời gian ON và OFF đủ nhanh thì độ sáng của đèn LED sẽ bị thay đổi.
Trước khi tiếp tục những nội dung khác, chúng ta hãy cùng thảo luận về một số thuật ngữ liên quan đến PWM.
Điều chế độ rộng xung về cơ bản là một sóng vuông với thời gian cao và thấp khác nhau. Một tín hiệu PWM cơ bản được hiển thị trong hình dưới đây.

Có một số thuật ngữ liên quan đến PWM mà chúng ta cần phải biết, đó là:
Ton (On-Time): Khoảng thời gian khi tín hiệu ở mức CAO (5V).
Toff (Off Time): Khoảng thời gian khi tín hiệu ở mức THẤP (0V).
Chu kỳ (Period):
Như trong hình trên, Ton biểu thị thời gian ON (thời gian ở mức CAO) và Toff biểu thị thời gian OFF (thời gian ở mức THẤP) của tín hiệu. Chu kỳ là tổng của cả thời gian ON và OFF và được tính theo công thức như sau
Ttotal = Ton + Toff
Chu kỳ làm việc (Duty Cycle):
Chu kỳ làm việc được tính là thời gian ON trong một chu kỳ của tín hiệu. Sử dụng công thức tính chu kỳ ở trên, chu kỳ làm việc được tính như sau
D = (Ton /Ton + Toff) = Ton/Ttotal
Vì vậy, ở chu kỳ làm việc 50% và tần số 1Hz, đèn LED sẽ sáng trong nửa giây và sẽ tắt trong nửa giây còn lại. Nếu chúng ta tăng tần số lên 50Hz (50 lần ON và OFF mỗi giây), thì đèn LED sẽ được nhìn thấy phát sáng ở một nửa độ sáng bằng mắt người.
Biểu đồ sau đây cho thấy sự so sánh của các chu kỳ làm việc khác nhau và mức điện áp tương ứng của chúng.

Từ biểu đồ, rõ ràng là khi tăng chu kỳ làm việc, điện áp ngõ ra (hoặc công suất được cung cấp) cũng tăng lên. Đối với chu kỳ làm việc 100%, điện áp tương ứng là 5V và đối với chu kỳ làm việc 50%, điện áp là 2,5V, v.v…
Arduino và PWM
Arduino IDE có một hàm được tích hợp sẵn “analogWrite()”, có thể được sử dụng để tạo ra một tín hiệu PWM. Nó có thể được sử dụng để điều khiển độ sáng của đèn LED hoặc điều khiển động cơ ở nhiều tốc độ khác nhau. Sau lệnh gọi hàm analogWrite (), chân này sẽ tạo ra một sóng vuông ổn định với chu kỳ làm việc xác định cho đến khi lệnh tiếp theo analogWrite () hoặc digitalRead () hoặc digitalWrite () trên cùng một chân.
Trên Arduino UNO, các chân PWM là 3, 5, 6, 9, 10 và 11. Tần số của tín hiệu PWM trên các chân 5 và 6 sẽ là khoảng 980Hz và trên các chân khác sẽ là 490Hz. Các chân PWM được dán nhãn với dấu ~.
analogWrite(0) có nghĩa là tín hiệu có chu kỳ làm việc 0%.
analogWrite(127) có nghĩa là tín hiệu có chu kỳ làm việc 50%.
analogWrite(255) có nghĩa là tín hiệu có chu kỳ làm việc 100%.
Linh kiện yêu cầu
Bây giờ, chúng ta cần xây dựng một mạch nhỏ để tìm hiểu ứng dụng của điều chế độ rộng xung PWM. Các linh kiện cần thiết cho mạch này được liệt kê dưới đây.
- Arduino UNO
- LED
- Điện trở 220Ω
- Biến trở 10kΩ
- Breadboard
- Dây cắm Breadboard
Điều khiển độ sáng của đèn LED thông qua chương trình
Đầu tiên, thực hiện các kết nối như hình dưới đây.
Kết nối chân anode của đèn LED với chân số 6 của Arduino. Sau đó kết nối điện trở 220Ω với chân cathode của LED và kết nối đầu kia của điện trở với chân nối đất của Arduino.

Bây giờ, chúng ta sẽ viết một đoạn chương trình để thay đổi độ sáng của đèn LED bằng cách sử dụng PWM.
Chương trình Arduino
Nạp chương trình này vào Arduino bằng phần mềm Arduino IDE và đèn LED sẽ bắt đầu mờ dần.
int led_pin = 6; //LED được kết nối với chân số 6 của Arduino
void setup() {pinMode(led_pin, OUTPUT); //Khai báo chân nối LED là chân ngõ ra}
void loop() {//Làm mờ dần LEDfor (int i = 0; i < 255; i++) {analogWrite(led_pin, i);delay(5);}
for (int i = 255; i > 0; i–) {analogWrite(led_pin, i);delay(5);}}
Chương trình Arduino để điều khiển độ sáng của đèn LED bằng biến trở
Trong mạch ở trên, thêm biến trở 10kΩ và kết nối hai đầu biến trở với 5V và GND của Arduino và sau đó kết nối chân giữa của biến trở với chân A0 của Arduino.

Chương trình Arduino
Nạp chương trình này vào Arduino bằng phần mềm Arduino IDE và xoay biến trở, độ sáng của đèn LED sẽ thay đổi.
int led_pin = 6; //LED được nối với chân số 6 của Arduinoint pot_pin = A0; //Chân giữa của biến trở được kết nối với chân tương tự A0 của Arduinoint output;int led_value;
void setup() {pinMode(led_pin, OUTPUT);}
void loop() {//Đọc giá trị từ biến trởoutput = analogRead(pot_pin);//Ánh xạ các giá trị từ 0 đến 255 vì chúng ta có thể đưa ra ngõ ra//giá trị từ 0 -255 bằng cách sử dụng hàm analogwriteled_value = map(output, 0, 1023, 0, 255);analogWrite(led_pin, led_value);delay(1);}
BÀI VIẾT LIÊN QUANXEM THÊM
Giao tiếp module điều khiển động cơ bước TMC2208 với Arduino
Giao tiếp cảm biến cường độ ánh sáng BH1750 với Arduino
Cân điện tử dùng Arduino và module HX711
BÌNH LUẬN Hủy trả lời
Vui lòng nhập bình luận của bạn Vui lòng nhập tên của bạn ở đây Bạn đã nhập một địa chỉ email không chính xác! Vui lòng nhập địa chỉ email của bạn ở đâyLưu tên, email và trang web của tôi trong trình duyệt này cho lần tiếp theo tôi nhận xét.
KHO EBOOK KỸ THUẬT ĐIỆN - ĐIỆN TỬ
BÀI VIẾT MỚI NHẤT
Mạch nhắc nhở tự động
Nguyễn Hữu Phước - 9 Tháng 12, 2025 0
Mạch điều khiển đèn bằng âm thanh
Nguyễn Hữu Phước - 31 Tháng 10, 2025 0
Giáo trình Mạch điện – Tài liệu học tập chuẩn dành...
Nguyễn Hữu Phước - 22 Tháng 10, 2025 0
Giáo trình điều khiển và lập trình với Arduino Uno
Nguyễn Hữu Phước - 14 Tháng 10, 2025 0
Giáo trình Điện tử công suất
Nguyễn Hữu Phước - 8 Tháng 10, 2025 0BÀI VIẾT NỔI BẬT
Nhận biết màu sắc dùng cảm biến màu TCS3200
19 Tháng 10, 2020
Hướng dẫn lập trình ESP8266 NodeMCU dùng Arduino IDE
6 Tháng 3, 2021
Hướng dẫn cài đặt Proteus 8.9 không bị lỗi tự tắt
9 Tháng 6, 2020
Điều khiển động cơ servo sử dụng Arduino
31 Tháng 10, 2018
Mạch bàn phím đơn giản dùng IC 74LS147
22 Tháng 5, 2019 Xem thêmTÀI LIỆU - GIÁO TRÌNH
Giáo trình Mạch điện – Tài liệu học tập chuẩn dành cho sinh viên kỹ thuật
Nguyễn Hữu Phước - 22 Tháng 10, 2025 0
Giáo trình điều khiển và lập trình với Arduino Uno
Nguyễn Hữu Phước - 14 Tháng 10, 2025 0
Giáo trình Điện tử công suất
Nguyễn Hữu Phước - 8 Tháng 10, 2025 0
Download phần mềm Fritzing
Nguyễn Hữu Phước - 9 Tháng 7, 2023 0
Tài liệu hướng dẫn sử dụng Altium Designer
Nguyễn Hữu Phước - 25 Tháng 4, 2022 0KÊNH YOUTUBE ĐIỆN TỬ VIỆT
Chào các bạn! Website này được tạo ra nhằm mục đích chia sẽ miễn phí những kiến thức liên quan đến lĩnh vực điện tử và IoT, giúp bạn học hỏi, khám phá và ứng dụng công nghệ dễ dàng hơn mỗi ngày. Chúng tôi luôn trân trọng mọi ý kiến đóng góp để cùng xây dựng một cộng đồng yêu công nghệ ngày càng lớn mạnh. Cảm ơn bạn đã đồng hành cùng Điện Tử Việt!Liên hệ chúng tôi: [email protected] DANH MỤC NỔI BẬT
- Hướng dẫn48
- Arduino41
- Điện tử cơ bản29
- IoT - Internet of Things25
- Điện tử công suất24
- Linh kiện điện tử23
- Sách điện tử18
- Điện tử ứng dụng18
KÊNH YOUTUBE ĐIỆN TỬ VIỆT
© Copywright 2025 - Điện Tử Việt NHIỀU BÀI VIẾT HƠN
Mạch nhắc nhở tự động
Nguyễn Hữu Phước - 9 Tháng 12, 2025 0 Mạch nhắc nhở tự động đang trở thành một giải pháp hết sức cần thiết trong môi trường làm việc hiện đại, nơi nhiều... Thanh Liên Hệ Nổi- Chat Zalo
- Gọi điện
- Messenger
- Telegram
Từ khóa » Băm Xung Trong Arduino
-
Xung PWM | Cộng đồng Arduino Việt Nam
-
Băm Xung - Điều Khiển Tốc độ động Cơ Bằng L298 Với Cách Tiếp Cận ...
-
Xung PWM Và PPM Trong Arduino - Điện Tử Hello
-
Lập Trình Băm Xung PWM Với Arduino - YouTube
-
Tạo Xung PWM Với Arduino UNO R3 | Điện Tử DAT - YouTube
-
Lập Trình Vi điều Khiển-Phần 7-Lập Trình Băm Xung (PWM) Với Arduino
-
[Arduino Cơ Bản] Điều Chế độ Rộng Xung PWM | MCA
-
Điều Khiển Tốc độ động Cơ Bằng Arduino - ĐIỆN TỬ TƯƠNG LAI
-
PWM On Arduino | Danh Sách Nội Dung Về Băm Xung Là Gì Chi Tiết
-
Bài 4: PWM | Thay đổi ánh Sáng Của LED Trên Arduino
-
Arduino - Điều Chế độ Rộng Xung - Dongthoigian .net
-
Điều Chế Độ Rộng Xung - Pulse-Width Modulation - STDIO
-
PWM Trong Arduino Là Gì?