Tạo Xung PWM Dùng Arduino - Điện Tử Việt

Facebook Telegram TikTok Twitter Youtube Đăng nhập Tham gia Đăng nhập Hoan nghênh!đăng nhập vào tài khoản của bạn Tài khoản mật khẩu của bạn Quên mật khẩu? Tạo một tài khoản Đăng kí Hoan nghênh!Đăng ký email của bạn Tài khoản Mật khẩu đã được gửi vào email của bạn. Khôi phục mật khẩu Khởi tạo mật khẩu email của bạn TÌM KIẾM 26.2 C Ho Chi Minh City Thứ Năm, 12 Tháng 2, 2026
  • Đăng nhập/Đăng ký
Facebook Telegram TikTok Twitter Youtube Đăng nhập Đăng nhập tài khoản Tài khoản mật khẩu của bạn Forgot your password? Get help Tạo một tài khoản Tạo một tài khoản Chào mừng bạn Đăng ký tài khoản email của bạn Tài khoản Mật khẩu đã được gửi vào email của bạn. Khôi phục mật khẩu Khởi tạo mật khẩu email của bạn Mật khẩu đã được gửi vào email của bạn. Điện Tử Việt Trang chủ IoT và Công nghệ Arduino Tạo xung PWM dùng Arduino Tạo xung PWM trong 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.

Tín hiệu PWM

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.

arduino led pwm

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.

arduino biến trở 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à 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 bước TMC2208 với Arduino

Giao tiếp module điều khiển động cơ bước TMC2208 với Arduino

Cảm biến cường độ ánh sáng BH1750

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

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 ở đây

Lư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 khi bật nguồn

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 - Điện Tử Việt

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 cho sinh viên kỹ thuật

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

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

Giáo trình Điện tử công suất

Nguyễn Hữu Phước - 8 Tháng 10, 2025 0

BÀI VIẾT NỔI BẬT

Cảm biến màu sắc TCS3200

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

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 tự tắt

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 dùng Arduino

Đ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

Mạch bàn phím đơn giản dùng IC 74LS147

22 Tháng 5, 2019 Xem thêm

TÀI LIỆU - GIÁO TRÌNH

Giáo trình Mạch điện cho sinh viên kỹ thuật

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

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

Giáo trình Điện tử công suất

Nguyễn Hữu Phước - 8 Tháng 10, 2025 0 Thiết kế điện tử với phần mềm Fritzing

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

Tài liệu hướng dẫn sử dụng Altium Designer

Nguyễn Hữu Phước - 25 Tháng 4, 2022 0

KÊ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] Facebook Telegram TikTok Twitter Youtube

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 khi bật nguồ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
  • Facebook
  • Chat Zalo
  • Gọi điện
  • Messenger
  • Telegram

Từ khóa » Băm Xung Trong Arduino