Tăng điện áp trung bình ngõ ra bằng pwm năm 2024

Bài viết hôm nay mình sẽ chia sẻ với các bạn dùng vi điều khiển 8051 tạo xung PWM để điều khiển motor DC . Hãy cùng cộng đồng ô tô Bách Khoa Phú Thọ tìm hiểu nhé !!​

1.PWM là gì?​

PWM (Pulse Width Modulation) là phương pháp điều chế dựa trên sự thay đổi độ rộng của chuỗi xung vuông nên nó sẽ dẫn đến sự thay đổi điện áp ra. Các xung PWM khi biến đổi thì có cùng 1 tần số (Chu kỳ ) và chỉ khác nhau về độ rộng xung.

Tăng điện áp trung bình ngõ ra bằng pwm năm 2024

- Độ rộng xung ở trong một chu kỳ hay còn gọi là thời gian Ton ở mức cao trong một chu kỳ. Khi tạo ra một xung PWM với tần số không đổi thì dĩ nhiên thì chu kỳ của một xung cũng không đổi. Trong một chu kỳ thì sẽ có thời gian mức cao Ton và thời gain mức thấp Toff, nếu như ta thay đổi thời gian Ton thì thời gian Toff sẽ thay đổi theo. Thế nên nói đến việc điều chế độ rộng hay còn gọi băm xung là có nghĩa thay đổi thời gian mức cao Ton trong một chu kỳ.

Vậy duty cycle có nghĩa là gì? Ta có công thức : Duty cycle= (Ton/T )*100% với T= Ton + Toff.

Do duty cycle thay đổi dẫn đến điện áp trung bình đầu ra cũng thay đổi theo: Uav =Ucao * duty cycle với Ucao là điện áp cấp vào.

Thế nên, nếu duty cycle càng cao thì thời gian mức cao và điện áp ra trung bình càng lớn.

*Ứng dụng:​

PWM được ứng dụng nhiều trong điều khiển. Điển hình nhất mà chúng ta thường hay gặp là điều khiển động cơ và các bộ xung áp, điều áp. Sử dụng PWM điều khiển độ nhanh chậm của động cơ hay cao hơn nữa, nó còn được dùng để điều khiển sự ổn định tốc độ động cơ Ngoài ra, xung PWM còn được dùng đề điều khiển motor trong hệ thống bướm ga điện tử trên các ô tô. Bằng cách khi ta đạp bàn ga 1 góc thì nó sẽ gửi tín hiệu đến ECU và ECU sẽ xử lý rồi gửi đến tín hiệu xung PWM đế motor bướm điện tử tương ứng góc bàn đạp ga.

2.Motor DC là gì ?​

Động cơ DC ( Direct Current Motors) là động cơ được điều khiển một chiều và được điều khiển bằng dòng điện 1 chiều DC. Động cơ điện 1 chiều được cấu tạo bởi Stator, Rotor, chổi than và cổ góp. - Stator của motor DC: Là phần đứng yên, được chế tạo sử dụng từ 1 hay nhiều cặp nam châm vĩnh cửu, có thể là nam châm điện. - Rotor: Là phần quay được, nó chính là lõi được quấn các cuộn dây nhằm mục đích tạo thành nam châm điện. - Chổi than: Làm nhiệm vụ tiếp xúc và tiếp điện cho bộ phận cổ góp. - Cổ góp : Thực hiện nhiệm vụ tiếp xúc và chia điện đều cho các cuộn dây ở trên phần rotor (phần quay).

Tăng điện áp trung bình ngõ ra bằng pwm năm 2024

3. Nguyên lí và cách điều khiển motor DC:​

Đối với motor DC thì ta có thế thay đổi được tốc độ quay bằng cách thay đổi điện áp và dòng điện cáp vào. Ngoài ra ta có thể thay đổi chiểu quay của nó. * Sơ đồ mạch cầu H motor DC:

Bao gồm 4 công tắc đề điều khiển chiều quay motor và dây nối nguồn, dây nối mass. - Khi công tắc số 1 và số 4 đóng thì motor sẽ quay theo cùng chiều kim đồng hồ.

- Khi công tắc số 2 và số 3 đóng thì motor sẽ quay theo ngược chiều kim đồng hồ.

- Khi công tắc số 1,2,3 và 4 đóng thì motor sẽ không hoạt động vì dòng điện sẽ đi xuống mass hết.

Bảng logic hoạt động mạch cầu H motor DC:

4. Viết code trên Keil C:​

*Code C trên Keil C:

include// lấy thư viện cho vào thư mục

sbit sw1=P1^0;// gán biến sw1 cho chân P1.0 sbit sw2=P1^1;// gán biến sw2 cho chân P1.1 sbit sw3=P1^2;// gán biến sw3 cho chân P1.2 sbit mtr=P2^7;// gán biến mtr cho chân P2.7

void delay( unsigned int val)// chương trình delay { unsigned int x,y; for(x=0;x

void init()// chương trình khởi tạo { sw1=sw2=sw3=1;// tạo ngõ vào cho chân P1.0, P1.1, P1.2 mtr=0;// tạo ngõ ra cho chân P2.7 }

void main()// chương trình chính { init();// lấy chương trình khởi tạo while(1)// vòng lặp vô hạn { if (sw1==0)// nếu P1.0 ở mức 1 { mtr=1;// set chân P2.7 ở mức 1 delay(25);// thời gian delay 25ms mtr=0;// set chân P2.7 ở mức 0 delay(75);// thời gian delay 75ms } if (sw2==0)// nếu P1.1 ở mức 1 { mtr=1;// set chân P2.7 ở mức 1 delay(50);// thời gian delay 50ms mtr=0;// set chân P2.7 ở mức 0 delay(50);// thời gian delay 50ms } if (sw3==0)// nếu P1.2 ở mức 1 { mtr=1;// set chân P2.7 ở mức 1 delay(75);// thời gian delay 75ms mtr=0;// set chân P2.7 ở mức 0 delay(25);// thời gian delay 25ms } } }

Sau đó ta sẽ biên dịch code trên Keil C và không báo lỗi:

5. Mô phỏng trên phần mềm Proteus:​

Ở bài này thì chỉ điều khiển tốc độ quay của motor DC bằng cách thay đổi điện áp ra bằng việc tạo PWM với duty cycle khác nhau, chứ không thay đổi chiều quay motor DC. Để thay đổi chiều quay thì ta chỉ cần đảo chân của motor DC là được. +) PWM với duty cycle= 25%

+) PWM với duty cycle= 50%

+) PWM với duty cycle =75%

Kết luận: Bài này tạo PWM với tần số không đổi 10Hz bằng hàm delay với duty cycle khác nhau. Thế nên sẽ tạo ra các giá trị điện áp khác nhau phụ thuộc duty cycle. Việc tạo PWM bằng hàm delay thì cũng không chính xác hơn bằng việc dùng Timer Interrupt tạo PWM được nên bài này chỉ mang tính chất tham khảo.​

Những bài viết liên quan về lập trình vi điều khiển : - https://car.mybk.vn/threads/8051-dung-vi-dieu-khien-8051-giao-tiep-voi-man-hinh-lcd.333/ - https://car.mybk.vn/threads/8051-tao-xung-pwm-voi-thoi-gian-ton-toff-bat-ky-voi-timer-interrupt.329/ - https://car.mybk.vn/threads/8051-du...rupt-tai-mot-thoi-diem-co-hieu-qua-khong.328/

Nếu các bạn thấy bài viết này có ích và đem lại thêm kiến thức bổ ích đến với bạn thì đừng quên like cho mình nhé. Nếu có bất kì thắc mắc gì, đừng ngần ngại mà hãy để lại bình luận bên dưới và chúng ta sẽ cùng nhau bàn luận nhé!!​