Trước đây, khi chỉ cần một phần công suất trong động cơ máy khâu thì chỉ cần một chiết áp (nằm trên bàn đạp của máy khâu) mắc nối tiếp với động cơ điều chỉnh dòng điện đi qua động cơ là có thể thực hiện được điều này. Tuy nhiên việc đó sẽ gây ra tổn hao công suất dưới dạng nhiệt trong phần tử điện trở và đó là một phương pháp không hiệu quả. Phương pháp sử dụng điều chế độ rộng xung PWM (Pulse Width Modulation) được sử dụng như một giải pháp cho vấn đề phức tạp này. Một trong những ứng dụng có thể kể đến đầu tiên của PWM là trong Sinclair X10, một bộ khuếch đại âm thanh 10W ở dưới dạng kit vào thập niên1960. Cùng khoảng thời gian đó, PWM bắt đầu được sử dụng rộng rãi trong các ứng dụng điều khiển động cơ DC, sau đó là động cơ AC mà đặc biệt hiện nay được sử dụng rộng rãi trong các ứng dụng điều khiển động cơ không đồng bộ 3 pha sử dụng các bộ Inverter. Trong nội dung của bài học này sẽ lần lượt giới thiệu đến học viênsinh viên các nội dung sau: + Khái niệm và nguyên lý của điều chế độ rộng xung; + Các ứng dụng tiêu biểu với PWM; + Giới thiệu cách sử dụng PWM với vi điều khiển thông qua ứng dụng điều khiển độ sáng của đèn LED; I. ĐIỀU CHẾ ĐỘ RỘNG XUNG
TRƯỜNG SĨ QUAN KỸ THUẬT QUÂN SỰ KHOA KỸ THUẬT CƠ SỞ Bản số: BÀI GIẢNG Môn học: Kỹ thuật điện – điện tử Bài 3: Điều chế độ rộng xung PWM số ứng dụng Đối tượng: Đại học quân sự, dân sự, quốc tế, trung cấp CNTT Năm học: ……… – ……… Thiếu tá, TS Lê Công Danh THÀNH PHỐ HỒ CHÍ MINH, THÁNG … NĂM …… TRƯỜNG SĨ QUAN KỸ THUẬT QUÂN SỰ KHOA KỸ THUẬT CƠ SỞ PHÊ DUYỆT Ngày … tháng … năm ……… CHỦ NHIỆM KHOA Đại tá, GVC, ThS Nguyễn Thanh Toàn BÀI GIẢNG Môn học: Kỹ thuật điện – điện tử Bài 3: Điều chế độ rộng xung PWM ứng dụng Đối tượng: Đại học quân sự, dân sự, quốc tế, trung cấp CNTT Năm học: Ngày … tháng… năm ……… TRƯỞNG BỘ MÔN Trung tá, GV, TS Trần Văn Thân THÀNH PHỐ HỒ CHÍ MINH, THÁNG … NĂM ……… MỞ ĐẦU Trước đây, cần phần cơng suất động máy khâu cần chiết áp (nằm bàn đạp máy khâu) mắc nối tiếp với động điều chỉnh dòng điện qua động thực điều Tuy nhiên việc gây tổn hao công suất dạng nhiệt phần tử điện trở phương pháp khơng hiệu Phương pháp sử dụng điều chế độ rộng xung PWM (Pulse Width Modulation) sử dụng giải pháp cho vấn đề phức tạp Một ứng dụng kể đến PWM Sinclair X10, khuếch đại âm 10W dạng kit vào thập niên1960 Cùng khoảng thời gian đó, PWM bắt đầu sử dụng rộng rãi ứng dụng điều khiển động DC, sau động AC mà đặc biệt sử dụng rộng rãi ứng dụng điều khiển động không đồng pha sử dụng Inverter Trong nội dung học giới thiệu đến học viên/sinh viên nội dung sau: + Khái niệm nguyên lý điều chế độ rộng xung; + Các ứng dụng tiêu biểu với PWM; + Giới thiệu cách sử dụng PWM với vi điều khiển thông qua ứng dụng điều khiển độ sáng đèn LED; I ĐIỀU CHẾ ĐỘ RỘNG XUNG A KHÁI NIỆM PWM (Pulse Width Modulation) phương pháp điều chỉnh điện áp tải hay nói cách khác phương pháp điều chế dựa thay đổi độ rộng chuỗi xung vuông dẫn đến thay đổi điện áp Các tín hiệu PWM biến đổi có tần số khác độ rộng sườn dương sườn âm B NGUYÊN LÝ Nguyên lý chung phương pháp PWM thực dựa việc đóng ngắt nguồn có tải cách có chu kì Phần tử thực nhiện vụ đóng cắt van bán dẫn transistor, FET, MOSFET, Triac, IGBT… Hình dạng tín hiệu xung PWM có đồ thị f (t ) với chu kỳ T thời gian xung ymax D cao Các giá trị cực đại cực tiểu tín hiệu ký hiệu Khi giá trị trung bình dạng sóng xác định cơng thức ytb = Vì f (t ) T T ∫ f (t )dt cực tiểu khoảng thời gian viết lại dạng 1 T (1) sóng xung, giá trị cực đại khoảng thời gian < t < D.T ytb = ymin DT ∫ T ymax dt + ∫y DT D.T < t < T Khi biểu thức (1) dt ÷ = ( D.T ymax + T ( − D ) ymin ) = D ymax + (1 − D) ymin T (2) Hình Đồ thị tổng quát dạng sóng xung PWM ymin = ytb = D ymax Khi biểu thức (2) có dạng Giá trị trung bình tín hiệu trường hợp hoàn toàn phụ thuộc vào chu kỳ làm việc D (thời gian sóng cao) Có nhiều phương pháp sử dụng để tạo tín hiệu PWM như: Delta, Delta – Sigma, Điều chế vecto không gian… Tuy nhiên cách đơn giản để tạo tín hiệu có dạng PWM phương pháp giao thoa cần có sóng cưa sóng tam giác (dễ dàng tạo cách sử dụng tạo dao động đơn giản) mạch so sánh Khi giá trị tín hiệu tham chiếu (tín hiệu đặt) (sóng sin màu đỏ hình 2) lớn sóng điều biến (màu xanh lam), tín hiệu PWM (màu đỏ tía) trạng thái cao, khơng trạng thái thấp (Hình 2) Hình Sử dụng phương pháp giao thoa để tạo sóng xung PWM C CÁC ỨNG DỤNG TIÊU BIỂU VỚI PWM Có nhiều ứng dụng sử dụng với PWM Một ứng dụng liệt kê điều khiển động DC, điều khiển Servo, mã hóa tín hiệu điện tử viễn thơng, điều chỉnh dòng điện, điện áp tải biến đổi xung/áp Trong nội dung tập trung vào ứng dụng cụ thể PWM điều chỉnh điện áp hiệu ứng khuếch đại âm Điều chỉnh điện áp PWM sử dụng điều chỉnh điện áp cách đóng cắt nguồn cấp cho tải với chu kỳ thích hợp, đầu tương ứng với điện áp mức mong muốn Nhiễu chuyển mạch thường lọc với cuộn cảm tụ điện Phương pháp đo điện áp đầu ra, điện áp thấp điện áp mong muốn, bật công tắc Khi điện áp cao điện áp mong muốn, tắt cơng tắc Phương pháp điều chỉnh điện áp sử dụng muốn thay đổi vận tốc quay động DC tín hiệu cấp cho động RC-Servo muốn điều chỉnh vị trí chúng Hiệu ứng âm khuếch đại âm PWM sử dụng tổng hợp âm đặc biệt tổng hợp trừ giúp mang lại hiệu ứng âm tương tự hợp ca máy tạo dao động Về mặt lịch sử, dạng PWM thô sử dụng để phát lại âm số PCM loa máy tính, điều khiển hai mức điện áp, điển hình 0V 5V Bằng cách điều chỉnh thời gian cho xung dựa vào tính chất lọc vật lý loa thu gần mẫu phát lại mono PCM, với chất lượng thấp, Và với kết khác lần thực Một khuếch đại âm dựa nguyên lý PWM trở nên phổ biến gọi khuếch đại lớp-D Các khuếch đại tạo tín hiệu đầu vào analog tương đương PWM đưa vào loa thông qua mạng lưới lọc thích hợp để chặn sóng mang phục hồi âm nguyên gốc Các khuếch đại đặc trưng đặc điểm hiệu suất tốt (≥ 90%) kích thước nhỏ gọn/trọng lượng nhẹ cho đầu công suất lớn Trong vài thập kỷ, khuếch đại PWM công nghiệp quân sử dụng phổ biến, thường để điều khiển động servo Các cuộn cảm từ trường (field-gradient) máy MRI điều khiển khuếch đại PWM công suất tương đối cao Trong thời gian gần đây, phương pháp mã hóa âm Direct Stream Digital đưa ra, sử dụng dạng điều chế độ rộng xung gọi điều chế mật độ xung, tốc độ lấy mẫu đủ cao (thường theo MHz) để bao phủ toàn dãi tần số âm với đầy đủ độ trung thực Phương pháp sử dụng định dạng SACD, tái tạo tín hiệu âm mã hóa tương tự phương pháp sử dụng khuếch đại lớp-D II TẠO PWM SỬ DỤNG VI ĐIỀU KHIỂN Vi điều khiển cho phép người lập trình việc sử dụng phần mềm dựa cấu hình ghi có để tạo tín hiệu PWM nhằm mục đích sử dụng cho mục đích khác Tùy thuộc vào đặc tính vi điều khiển mà tính chất xung tạo khác Sự khác biệt xung số bít dùng để tạo loại xung Có xung bit, 16 bit 32 bit Số bit cao định đến tần số xuất xung hay độ mịn xung Với mục đích giới thiệu PWM cho đối tượng không chuyên phần cứng, chương tập trung vào việc giới thiệu cách sử dụng chân tạo tín hiệu PWM vi điều khiển Atmega 328p dựa IDE Arduino Đồng thời giới thiệu ứng dụng PWM thông qua việc thay đổi độ sáng đèn LED mạch điều khiển trugn tâm Module A GIỚI THIỆU CÁC CHÂN PWM TRÊN VI ĐIỀU KHIỂN ARDUINO Vi điều khiển Atmega 328p mà cụ thể board Arduino Nano có chân cho phép tạo xung PWM Các chân bao gồm D3, D5, D6, D9, D10, D11 Bảng liệt kê Timer kèm với chân tần số tương ứng với tín hiệu xung sử dụng hàm ban đầu AnalogWrite Arduino IDE Việc thay đổi tần số xung để phục vụ cho ứng dụng cần tần số cao giới thiệu cụ thể phần thực hành Do chân D3 ngồi mục đích tạo xung có mục đích làm chân phát thay đổi tín hiệu (Pinchange Interrupt) nên chân D3 sử dụng làm chân đọc tín hiệu Encoder Các chân lại tương ứng với chân O1, O2, O3, O4 O5 mạch điều khiển trung tâm Bảng Tham số chân PWM Arduino Nano Chân D3 D5 D6 D9 D10 Timer 0 1 Tần số, Hz 490.20 976.56 976.56 490.20 490.20 Chân tương ứng board trung tâm B O1 O2 O3 O4 D11 490.20 O5 Lưu ý: Khi sử dụng Arduino IDE, hạn chế sử dụng chân D5 D6 việc tạo xung hai chân sử dụng Timer Nếu chương trình khơng sử dụng hàm Delay() hay Tone() việc sử dụng hai chân hiệu B SỬ DỤNG HÀM ANALOGWRITE ĐỂ ĐIỀU CHẾ ĐỘ RỘNG XUNG Hàm analogWrite() Arduino giúp tạo xung PWM Hàm truyền vào tham số cho phép thay đổi độ rộng xung Tần số xung Arduino thiết lập mặc định theo bảng Cú pháp analogWrite (tên chân, value); + tên chân chân sử dụng để tạo tín hiệu xung trình bày phần Trước muốn sử dụng chân làm chân xuất tín hiệu xung PWM ngồi cần phải kết hợp hàm pinMode() để cấu hình chân chân OUTPUT Hàm pinMode trình bày thực hành 02 + Đối với tham số value giá trị tham số nằm khoảng từ đến 254 vi điều khiển Atmega 328p xung PWM điều khiển ghi bit Giá trị value tương đương thời gian xung nhận mức tín hiệu cao giây giá trị value 254 tương đương thời gian xung nhận mức tín hiệu cao 1/2T (T=1/f) giây 100% Ví dụ Giả sử ta muốn sử dụng chân D10 làm chân xuất tín hiệu xung độ rộng xung tương ứng 50% chương trình bao gồm + chọn chân D10 làm chân Output; + xuất tín hiệu xung tương ứng chân D10 tương ứng với giá trị value 50%x254 = 127; #define PWM_pin 10 void Setup(){ pinMode(PWM_pin, OUTPUT); analogWrite(PWM_pin, 127); } void loop(){ } Chương trình tham khảo: IG03.1_PWM_And_Applications 10 Ví dụ Giả sử ta muốn sử dụng chân D11 làm chân xuất tín hiệu xung độ rộng xung thay đổi từ 0%, 25%, 50%, 75%, 100% 0% sau khoảng thời gian giây Sau chương trình lặp lại theo trình tự kể chương trình bao gồm + chọn chân D11 làm chân Output; + xuất tín hiệu xung tương ứng chân D11 tương ứng với giá trị 0%, 25%, 50%, 75%, 100% Bảng tính trình bày bảng Bảng Độ rộng xung tương ứng với giá trị % Giá trị value analogWrite(pin, 0) analogWrite(pin, 64) analogWrite(pin, 127) analogWrite(pin, 191) analogWrite(pin, 255) tỉ lệ 0/255 64/255 127/255 191/255 255/255 chu kì xung, % 0% 25% 50% 75% 100% #define PWM_pin 11 void Setup(){ pinMode(PWM_pin, OUTPUT); } void loop(){ analogWrite(PWM_pin, 0); delay(2000); analogWrite(PWM_pin, 64); delay(2000); analogWrite(PWM_pin, 127); delay(2000); analogWrite(PWM_pin, 191); delay(2000); analogWrite(PWM_pin, 255); 11 delay(2000); } Chương trình tham khảo: IG03.2_PWM_And_Applications Nếu sử dụng Oscicolpe để xác định tín hiệu chân 11 ta thu tín hiệu với thay đổi độ rộng hình Hình Sự thay đổi độ rộng xung tương ứng với giá trị biến value C THAY ĐỔI ĐỘ SÁNG ĐÈN LED BẰNG PWM VÀ HÀM FOR Việc điều khiển bóng LED sáng dần, tắt dần sử dụng nhiều lĩnh vực quảng cáo Sử dụng kỹ thuật PWM cho phép làm điều dễ dàng với vi điều khiển Arduino Nano PWM làm cho đèn LED sáng tắt với nhiều cấp độ khác nhau, khoảng 500 chu kỳ giây Độ sáng nhìn thấy xác định dựa vào số lần chân tín hiệu ngõ kỹ thuật số mở lên so với số lần tắt - có nghĩa là, đèn LED thắp sáng khơng có ánh sáng Bởi mắt khơng thể nhìn thấy nhấp nháy nhanh 50 chu kỳ giây nên đèn LED có độ sáng khơng đổi Trong học trước làm quen với khái niệm đèn LED thực hành làm sáng tắt đèn LED tương ứng mạch điều khiển trung 12 tâm thông qua câu lệnh digitalWrite() Trong nội dung tiếp tục cách để thay đổi độ sáng đèn thông qua câu lệnh analogWrite() vòng lặp for(); Ví dụ Điều khiển sáng dần, tối dần chân D9 mạch điều khiển trung tâm Để làm điều việc sử dụng câu lệnh giới thiệu hai ví dụ trước ngồi cần kết hợp thêm vòng lặp for để thay đổi giá trị value câu lệnh analogWrite Cú pháp vòng lặp for() trình bày sau ví dụ int d = 5; void setup(){ pinMode(9, OUTPUT); } void loop(){ for (int a = 0; a < 256; a++){ analogWrite(9, a); delay(d); } for (int a = 255; a >= 0; a ){ analogWrite(9, a); delay(d); } delay(200); } Chương trình tham khảo: IG03.3_PWM_And_Applications Hàm for Hàm for có chức làm vòng lặp Vậy vòng lặp gì? Hãy hiểu cách đơn giản, làm làm lại cơng việc có tính chất chung Chẳng hạn, bạn bật tắt LED dùng digitalWrite xuất HIGH delay lại LOW lại delay Nhưng muốn làm nhiều LED đoạn code dài (khơng đẹp chỉnh sửa chẳng lẻ ngồi sửa lại dòng? 13 Với led, việc lập trình digitalWrite(led1,HIGH); delay(1000); digitalWrite(led1,LOW); delay(1000); Với 10 led, bạn không dùng for, đoạn code dài digitalWrite(led1,HIGH); delay(1000); digitalWrite(led1,LOW); delay(1000); digitalWrite(led2,HIGH); delay(1000); digitalWrite(led2,LOW); delay(1000); digitalWrite(led10,HIGH); delay(1000); digitalWrite(led10,LOW); delay(1000); Nếu bạn có muốn lập trình suy nghĩ led ma trận có khơng ? Chắc chắn khơng rồi, hàm for đời để giúp bạn nhìn sống cách tươi đẹp Về vòng lặp for() hiểu gồm phần: + Hàm for vòng lặp có giới hạn - nghĩa chắn kết thúc (khơng sớm thi muộn) + Nó vị trí xác định đến vị trí kết thúc + Cứ bước xong, lại thực đoạn lệnh Sau đó, lại bước tiếp, bước bước nhiều bước, khơng thay đổi theo thời gian Có loại for tiến for lùi Cú pháp for ( = ;;) + For tiến (xuất phát từ vị trí nhỏ chạy đến vị trí lớn hơn) bé 14 for (int a = 0; a < 254; a++){ analogWrite(9, a); delay(d); } + For lùi (xuất phát từ vị trí lớn chạy vị trí nhỏ hơn) lớn for (int a = 255; a >= 0; a ){ analogWrite(9, a); delay(d); } D BÀI TẬP ĐỊNH HƯỚNG NGHIÊN CỨU + Tìm hiểu ứng dụng PWM điều khiển vận tốc động thông qua từ khóa: PWM, speed DC motor, H-bridge, L298N; + Tìm hiểu loại nút nhấn: nút nhấn nhả, nhấn giữ, swich, cơng tắc gạt + Tìm hiểu hàm digitalRead() cú pháp lệnh if(); + Tìm hiểu cách đặt tên biến arduino IDE; + Tìm hiểu định nghĩa Switch deboucing; KẾT LUẬN Bài học cung cấp cho học viên/ sinh viên kiến thức PWM ứng dụng thực tiễn đời sống Ngồi giúp người học tiếp cận thêm với vòng lặp for(), lệnh sử dụng phổ biến ngôn ngữ lập trình Ngày tháng năm 20 NGƯỜI BIÊN SOẠN 15 Thiếu tá, TS Lê Công Danh KẾ HOẠCH GIẢNG BÀI Môn học: Kỹ thuật điện – điện tử PHÊ DUYỆT Ngày … tháng … năm ……… CHỦ NHIỆM KHOA Bài 2: Điều chế độ rộng xung PWM ứng dụng Đối tượng: Năm học: Đại tá, GVC, ThS Nguyễn Thanh Toàn Phần I Ý ĐỊNH GIẢNG BÀI I MỤC ĐÍCH YÊU CẦU A MỤC ĐÍCH Giới thiệu cho học viên, sinh viên khái niệm điều chế độ rộng xung PWM ứng dụng thực tế Cung cấp ví dụ để làm thay đổi độ rộng xung với vi điều khiển Atmega 328p board mạch Arduino Nano B YÊU CẦU - Về nhận thức: hiểu rõ khái niệm vi điều khiển, vi xử lý, tín hiệu số giới thiệu học trước - Về kỹ năng: sử dụng phần mềm Arduino IDE để tạo chương trình II NỘI DUNG, TRỌNG TÂM A NỘI DUNG - Khái niệm nguyên lý điều chế độ rộng xung; - Các ứng dụng tiêu biểu với PWM; 16 - Giới thiệu cách sử dụng PWM với vi điều khiển thông qua ứng dụng điều khiển độ sáng đèn LED; B TRỌNG TÂM - Giới thiệu cách sử dụng PWM với vi điều khiển thông qua ứng dụng điều khiển độ sáng đèn LED; III THỜI GIAN Tổng số: tiết, ngày tiết Trong đó: Lên lớp tiết IV TỔ CHỨC, PHƯƠNG PHÁP A TỔ CHỨC - Tổ chức theo lớp học, giới thiệu hội trường B PHƯƠNG PHÁP Giảng viên: Thuyết trình, giải thích, vấn đáp Học viên: Nghe giảng, ghi chép, sử dụng máy tính để viết chương trình V ĐỊA ĐIỂM Phòng học: VI VẬT CHẤT ĐẢM BẢO A GIẢNG VIÊN - Bài giảng, KHBG, tài liệu, Phấn, bảng B HỌC VIÊN - Vở ghi, bút, tài liệu tham khảo, học tập, máy tính cá nhân 17 Phần II THỰC HÀNH GIẢNG BÀI I THỦ TỤC GIẢNG BÀI Nhận lớp, ổn định: 5’ Giới thiệu môn học, giảng: 10’ II TRÌNH TỰ GIẢNG BÀI Thứ tự, nội dung Thời gian I ĐIỀU CHẾ ĐỘ RỘNG XUNG 25’ A KHÁI NIỆM 05’ B NGUYÊN LÝ C CÁC ỨNG DỤNG TIÊU BIỂU VỚI PWM 10’ 10’ II TẠO PWM SỬ DỤNG VI ĐIỀU KHIỂN 45’ A GIỚI THIỆU CÁC CHÂN PWM TRÊN VI ĐIỀU KHIỂN ARDUINO 10’ B SỬ DỤNG HÀM ANALOGWRITE ĐỂ ĐIỀU CHẾ ĐỘ RỘNG XUNG 10’ C THAY ĐỔI ĐỘ SÁNG ĐÈN LED BẰNG PWM VÀ HÀM FOR 20’ D BÀI TẬP ĐỊNH HƯỚNG NGHIÊN CỨU 05’ Phương pháp Vật chất Giảng viên Học viên Thuyết trình, giải thích Theo dõi, ghi chép, vẽ hình Bảng, máy chiếu Theo dõi, ghi chép, vẽ hình Máy tính nhân, bảng, máy chiếu Thuyết trình, giải thích III KẾT THÚC BÀI GIẢNG (5’) A KIỂM TRA KIẾN THỨC MỚI TIẾP THU CỦA HỌC VIÊN: Câu 1: Trình bày khái niệm nguyên lý PWM Câu 2: Nêu đặc điểm chân tạo tín hiệu PWM vi điều khiển Arduino Nano 18 Câu 3: Viết chương trình làm sáng dần tắt dần đèn LED chân 11 B TĨM TẮT NỘI DUNG CHÍNH CỦA BÀI: Bài học cung cấp cho học viên/ sinh viên kiến thức PWM ứng dụng thực tiễn đời sống Ngoài giúp người học tiếp cận thêm với vòng lặp for(), lệnh sử dụng phổ biến ngơn ngữ lập trình C GIAO BÀI TẬP VỀ NHÀ VÀ NHỮNG VẤN ĐỀ HỌC VIÊN CẦN NGHIÊN CỨU, CHUẨN BỊ: + Tìm hiểu ứng dụng PWM điều khiển vận tốc động thông qua từ khóa: PWM, speed DC motor, H-bridge, L298N; + Tìm hiểu loại nút nhấn: nút nhấn nhả, nhấn giữ, swich, cơng tắc gạt + Tìm hiểu hàm digitalRead() cú pháp lệnh if(); + Tìm hiểu cách đặt tên biến arduino IDE; + Tìm hiểu định nghĩa Switch deboucing; Ngày …tháng… năm Ngày …tháng… năm …… …… NGƯỜI BIÊN NGƯỜI THÔNG QUA SOẠN GIÁO VIÊN TRƯỞNG BỘ MƠN tá, TS LêThân Cơng Danh Trung tá,Thiếu TS Trần Văn 19