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

Facebook 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 Chủ Nhật, 24 Tháng mười một, 2024
  • Đăng nhập/Đăng ký
Facebook 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ủ Ứng dụng Arduino Tạo xung PWM dùng Arduino
  • Ứng dụng
  • Arduino
FacebookTwitterPinterestWhatsApp Tạo xung PWM trong Arduino

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

Cân điện tử dùng Arduino và module HX711

Cân điện tử dùng Arduino và module HX711

Mạch khóa số điện tử dùng Arduino

Mạch khóa số điện tử dùng Arduino

Giao tiếp arduino với module điều khiển động cơ L298

Giao tiếp module điều khiển động cơ L298 với Arduino Uno

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.

Δ

VPS TỐT NHẤ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. Tôi rất mong nhận được những ý kiến đóng góp của bạn đọc để website ngày càng phát triển và được nhiều người biết đến. Cảm ơn sự quan tâm của các bạn.Liên hệ chúng tôi: [email protected] Facebook Twitter Youtube

BÀI VIẾT GẦN ĐÂY

  • Giao tiếp module điều khiển động cơ bước TMC2208 với Arduino
  • Giới thiệu IC 74LS192 – Hoạt động và ứng dụng
  • Giới thiệu IC 74LS76 – Ứng dụng và hoạt động
  • Top 5 xu hướng công nghệ hàng đầu năm 2023
  • Download phần mềm Fritzing

KÊNH ĐIỆN TỬ VIỆT

© Bản quyền thuộc về Điện Tử Việt

Từ khóa » Code Băm Xung Pwm