Chia sẻ Tạo sóng sine dùng vi điều khiển

manhdungmta

Học sinh phổ thông
#31
Đấy, Bạn chưa hiểu là ở chỗ đó đấy,
Không cần thiết cái tần số 50Hz kia.
Chính "nhịp điệu" thay đổi duty của PWM sẽ tạo ra sóng sine, với bất kỳ tần số nào. (vài Hz đến vài trăm Hz)
Anh Tuấn cho em hỏi với. Em có nguồn DC 5V/2A muốn tạo thành 6VAC/300ma. Thì làm thế nào để rẻ nhất mà vẫn chạy được động cơ AC-6V. Em cám ơn anh Tuấn.
 

nvtuan.91

Học sinh trung cấp
#32
Anh Tuấn cho em hỏi với. Em có nguồn DC 5V/2A muốn tạo thành 6VAC/300ma. Thì làm thế nào để rẻ nhất mà vẫn chạy được động cơ AC-6V. Em cám ơn anh Tuấn.[/QUOT
cái này a cũng chưa làm lần nào nên cũng không biết tư vẫn e ntn. đối với dc to ac thì a chỉ biết là làm một mạch nghịch lưu thôi
 

stonelion

Học sinh phổ thông
#33
a ơi cho em hỏi! giờ em muốn thay đổi số tần số sine thì e chỉ cần thay đổi tần số xung PWM là được phải không anh! giảm tần số sine thì phải giảm tần số PWM phải không ạ
 
Sửa lần cuối:

MinhTinkerer

Kỹ sư
Banned
#34
a ơi cho em hỏi! giờ em muốn thay đổi số tần số sine thì e chỉ cần thay đổi tần số xung PWM là được phải không anh! giảm tần số sine thì phải giảm tần số PWM phải không ạ
Thay đổi độ rộng xung (duty cycle) chứ không phải thay đổi tần số của xung PWM.
Tần số xung PWM cố định.thay đổi độ rộng của xung thì điện áp trung bình thay đổi theo.về vấn này, để nhiều bạn mới tìm hiểu thì rất mơ hồ, trước đây mình củng thế.
Điện áp trung bình ở đây chính là điện áp của xung vuông khi mình lấy đồng hồ đo vol đo được.
Khi ta thay đổi độ rộng của xung thì điện áp đo được củng thay đổi, độ rộng xung càng lớn thì điện áp trung bình càng lớn.
Đây củng là sự thắc mắc vì sao điện áp dạng xung có mức thấp là 0V, đồng hồ đo được 0V, mà điện áp mức cao đồng hồ vol đo được không phải là mức cao, chẳn hạn mức điện áp là 5V, nhưng khi đồng hồ đo không phải là 5V mà thấp hơn, đó là đồng hồ đo được giá trị điện áp trung bình, vì điện áp là dạng xung, mức điện áp ở mức cao chỉ xuất hiện tức thời.
Xung vuông có chu kì cố định, độ rộng của xung nhỏ thì sự xuất hiện mức điện áp cao trong tời gian ngắn, khi tăng độ rộng xung vuông lên thì sự xuất hiện mức điện áp cao củng tăng lên, thời gian tồn tại mức điện áp cao nhiều hơn thời gian tồn tại mức điện áp thấp thì điiẹn áp trung bình lớn.
Vì vậy khi thay đổi độ rộng của xung có nghĩa là thay đổi thời gian tồn của mức điện áp cao, thời gian tồn tại của mức điện áp cao tăng đồng nghĩa với điện áp trung bình tăng theo, một cách tỉ lệ thuận.
Khi độ rộng xung vuông 100% nghĩa là thời gian tồn tại điện áp mức cao bằng với thời gian của một chu kì xung vuông, lúc này điện áp mức thấp không có, giá trị điện áp lúc này đồng vol đo được bằng với điện áp mức cao, giống như ta đo điện áp của dòng điện một chiều.

Sóng sin có đồ thị hình sin, xét một chu khì sóng sin, xem một điễm chạy trên độ thị của sóng sin ta thấy, bắt đầu từ vị trí 0 độ xuất phát điễm sau một khoản thời gian 1/4 chu kì của sóng sin là ở vị trí 90, sau 1/2 chu kì ở vị trí 180độ, sau 3/4 chu kì ở vị trí 270độ, sau một chu kì ở vị trí 360độ (trùng với điễm ban đầu 0độ).
Vậy làm thế nào để có mối quan hệ giửa sự thay đổi độ rộng của xung vuông có chu kì cố định và điễm chạy trên đồ thị của sóng sin như đã đề cập ở trên, đây mới là vần đề mấu chốt.

- Thay đổi độ rộng của xung vuông thì ai củng có thể làm được như trở bàng tay, bằng cánh thay đổi giá trị thanh ghi so sánh(gia trị duty cycle) để tạo ra xung PWM trong vi điều khiển.
- Sóng dạng hình sin như thế nào thì ai củng có thể biết khi đã có học qua.

Giải quyết vấn đề mấu chốt như sau:
Ở trên đã đề cập đến giá trị điện áp trung bình sẽ thay đổi theo sự thay đổi độ rộng của xung vuông, một cách tỉ lệ.
Và đề cập đến điểm chạy theo đồ thị của sóng sin.

Mối quan hệ ở dây, khi ta thay đổi độ rộng của xung vuông, điện áp trung bình củng thay đổi theo, giá trị điện áp trung bình chính là giá trị biểu diễn cho vị trí của điễm chạy trên đồ thị của sóng sin như đã đề cập trên.
Vậy ta chỉ cần thay đổi độ rộng của xung vuông (tăng hoặc giảm) tương ứng với điễm chạy trên đồ thị của sóng sin củng thay đổi theo(chạy tới hoặc chạy lui trên đồ thị).
Tiếp tục vấn đề:
Khi độ rộng xung vuông 50% thì điễm chạy trên đồ thị của sóng sin ở vị trí 0độ (hảy tưởng tượng và hình dung ra nó).
Bay giờ ta chỉ việc tăng độ rộng của xung vuôn lên 51độ, thì điễm chạy trên đồ thị củng chạy theo hướng tăng của đồ thị sóng sin, ta tiếp tục tăng đến độ rộng xung vuôn 75%, điễm chạy củng chạy lên đến một điễm nào đó trên đồ thị sin mà chưa chạy đến đỉnh cao nhất của đồ thị sin, chú ý là điễm chạy lúc bắt đầu ở vị trị 0độ tương ứng độ rộng xung la 50%
Khi độ rộng xung vuông là 100% thị điễm chạy ở vị trí 90độ đó là đỉnh dương của sóng sin, đến đây điễm chạy đã chạy lên tới đỉnh rồi và tương ứng độ rộng xung vuông củng đạt giá trị cực đại rồi.
Điễm chạy hết chạy lên cao được nửa rồi tương ứng độ rộng xung vuông tăng hết được nửa rồi(điện áp trung bình lớn nhất rồi).
Vậy bây giờ ta giảm độ rộng xung vuông xuống lại, tương ứng điễm chạy củng chạy tới tiếp mà lại chạy theo chiều đi xuống của đồ thị sin.
Tiếp tục. Khi độ rộng xung giảm dần từ 100% về giá trị 50% thì điễm chạy sẽ chạy dần đi tiếp đến vị trí 180độ, điện áp trung bình lúc này bằng với giá trị điện áp lúc điễm chạy ở vị trí 0độ.
Đến đây ta thấy điễm chạy đã chạy được nữa chu kì dương của đồ thị sin, để làm cho điễm chạy ,chạy được như vậy là vì ta đã tăng độ rộng xung vuôn từ 50% lên đến 100% , rồi lại giảm xuống 50% trởi lại.
Nhắt lại lần nữa, điễm chạy biểu diễn cho giá trị điện áp trung bình, bị thay đổi tăng hay giảm là do sự thay đổi độ rộng của xung vuông một cách tỉ lệ tương ứng.

Tiếp tục vấn đề:

Sau khi khảo sát độ rộng xung tăng từ 50% tăng dần lên 100% ,rồi từ 100% giảm dần về 50% trở lại và tương ứng là điễm chạy ,chạy từ vị tri 0độ tăng lên tới vị trí 90độ, rồi chạy từ vị trí 90độ chay đến vị trí 180độ, trên đồ thị sóng sin.
Bay giờ ta không thay độ rộng xung vuông tăng lên nữa mà ta giảm độ rộng xung vuông từ 50% giảm dần về 0%, thì điễm chạy sẽ chạy từ vị trí 180độ chạy tới vị trí 270độ.
"Oh điễm chạy đã chạy từ điễm xuất phát 0độ đến vị trí 180độ lúc trươc đó rồi, bây giờ độ rộng xung giảm từ 50% xuống 0%, điễm chạy ,chạy trên đồ thị sóng sin đã đi tới đỉnh âm của đồ thị sóng sin rồi."
Tiếp tục để điễm chạy, chạy dần tới vị trí 360độ ,( nghĩa chạy tiếp từ đỉnh âm của sóng sin,chạy về lại điểm 0 của sóng sin), thì ta phải tăng độ rộng của xung vuông tăng dần từ 0% lên 50% trở lại.
Kết quả :
Điễm chạy, đã chạy trên đồ thị hình sin ,được 1 chu kì sóng sin.
"Như vậy đó ta chỉ việc thay đổi độ rộng của xung vuông thì ta có được đồ thị điện áp đo được là dạng hình sin."
Đây là nguyên lý tạo ra sóng sin sử dụng vi điều khiển.

Trên lý thiết thì đúng là tạo ra được điện áp dạng sóng sin có đồ thị là một đường sin mềm mại liên tục, nhưng thục tế lại là dạng sin nhấp nhô răng cưa kiểu như bậc thang, vì vậy nên cần cho qua mạch lọc LC để làm cho răng cưa bị giảm đi trở thành đường mềm mại liên tục.
Hy vọng rằng qua sự diễn giải dài dòng không có cái hình nào để minh họa sinh động, bạn đọc sẽ thấm sâu được vấn đề tạo sóng sin dùng vi điều khiển.
Chúc may mắn !
 
Sửa lần cuối:

nvtuan.91

Học sinh trung cấp
#35
Thay đổi độ rộng xung (duty cycle) chứ không phải thay đổi tần số của xung PWM.
Tần số xung PWM cố định.thay đổi độ rộng của xung thì điện áp trung bình thay đổi theo.về vấn này, để nhiều bạn mới tìm hiểu thì rất mơ hồ, trước đây mình củng thế.
Điện áp trung bình ở đây chính là điện áp của xung vuông khi mình lấy đồng hồ đo vol đo được.
Khi ta thay đổi độ rộng của xung thì điện áp đo được củng thay đổi, độ rộng xung càng lớn thì điện áp trung bình càng lớn.
Đây củng là sự thắc mắc vì sao điện áp dạng xung có mức thấp là 0V, đồng hồ đo được 0V, mà điện áp mức cao đồng hồ vol đo được không phải là mức cao, chẳn hạn mức điện áp là 5V, nhưng khi đồng hồ đo không phải là 5V mà thấp hơn, đó là đồng hồ đo được giá trị điện áp trung bình, vì điện áp là dạng xung, mức điện áp ở mức cao chỉ xuất hiện tức thời.
Xung vuông có chu kì cố định, độ rộng của xung nhỏ thì sự xuất hiện mức điện áp cao trong tời gian ngắn, khi tăng độ rộng xung vuông lên thì sự xuất hiện mức điện áp cao củng tăng lên, thời gian tồn tại mức điện áp cao nhiều hơn thời gian tồn tại mức điện áp thấp thì điiẹn áp trung bình lớn.
Vì vậy khi thay đổi độ rộng của xung có nghĩa là thay đổi thời gian tồn của mức điện áp cao, thời gian tồn tại của mức điện áp cao tăng đồng nghĩa với điện áp trung bình tăng theo, một cách tỉ lệ thuận.
Khi độ rộng xung vuông 100% nghĩa là thời gian tồn tại điện áp mức cao bằng với thời gian của một chu kì xung vuông, lúc này điện áp mức thấp không có, giá trị điện áp lúc này đồng vol đo được bằng với điện áp mức cao, giống như ta đo điện áp của dòng điện một chiều.

Sóng sin có đồ thị hình sin, xét một chu khì sóng sin, xem một điễm chạy trên độ thị của sóng sin ta thấy, bắt đầu từ vị trí 0 độ xuất phát điễm sau một khoản thời gian 1/4 chu kì của sóng sin là ở vị trí 90, sau 1/2 chu kì ở vị trí 180độ, sau 3/4 chu kì ở vị trí 270độ, sau một chu kì ở vị trí 360độ (trùng với điễm ban đầu 0độ).
Vậy làm thế nào để có mối quan hệ giửa sự thay đổi độ rộng của xung vuông có chu kì cố định và điễm chạy trên đồ thị của sóng sin như đã đề cập ở trên, đây mới là vần đề mấu chốt.

- Thay đổi độ rộng của xung vuông thì ai củng có thể làm được như trở bàng tay, bằng cánh thay đổi giá trị thanh ghi so sánh(gia trị duty cycle) để tạo ra xung PWM trong vi điều khiển.
- Sóng dạng hình sin như thế nào thì ai củng có thể biết khi đã có học qua.

Giải quyết vấn đề mấu chốt như sau:
Ở trên đã đề cập đến giá trị điện áp trung bình sẽ thay đổi theo sự thay đổi độ rộng của xung vuông, một cách tỉ lệ.
Và đề cập đến điểm chạy theo đồ thị của sóng sin.

Mối quan hệ ở dây, khi ta thay đổi độ rộng của xung vuông, điện áp trung bình củng thay đổi theo, giá trị điện áp trung bình chính là giá trị biểu diễn cho vị trí của điễm chạy trên đồ thị của sóng sin như đã đề cập trên.
Vậy ta chỉ cần thay đổi độ rộng của xung vuông (tăng hoặc giảm) tương ứng với điễm chạy trên đồ thị của sóng sin củng thay đổi theo(chạy tới hoặc chạy lui trên đồ thị).
Tiếp tục vấn đề:
Khi độ rộng xung vuông 50% thì điễm chạy trên đồ thị của sóng sin ở vị trí 0độ (hảy tưởng tượng và hình dung ra nó).
Bay giờ ta chỉ việc tăng độ rộng của xung vuôn lên 51độ, thì điễm chạy trên đồ thị củng chạy theo hướng tăng của đồ thị sóng sin, ta tiếp tục tăng đến độ rộng xung vuôn 75%, điễm chạy củng chạy lên đến một điễm nào đó trên đồ thị sin mà chưa chạy đến đỉnh cao nhất của đồ thị sin, chú ý là điễm chạy lúc bắt đầu ở vị trị 0độ tương ứng độ rộng xung la 50%
Khi độ rộng xung vuông là 100% thị điễm chạy ở vị trí 90độ đó là đỉnh dương của sóng sin, đến đây điễm chạy đã chạy lên tới đỉnh rồi và tương ứng độ rộng xung vuông củng đạt giá trị cực đại rồi.
Điễm chạy hết chạy lên cao được nửa rồi tương ứng độ rộng xung vuông tăng hết được nửa rồi(điện áp trung bình lớn nhất rồi).
Vậy bây giờ ta giảm độ rộng xung vuông xuống lại, tương ứng điễm chạy củng chạy tới tiếp mà lại chạy theo chiều đi xuống của đồ thị sin.
Tiếp tục. Khi độ rộng xung giảm dần từ 100% về giá trị 50% thì điễm chạy sẽ chạy dần đi tiếp đến vị trí 180độ, điện áp trung bình lúc này bằng với giá trị điện áp lúc điễm chạy ở vị trí 0độ.
Đến đây ta thấy điễm chạy đã chạy được nữa chu kì dương của đồ thị sin, để làm cho điễm chạy ,chạy được như vậy là vì ta đã tăng độ rộng xung vuôn từ 50% lên đến 100% , rồi lại giảm xuống 50% trởi lại.
Nhắt lại lần nữa, điễm chạy biểu diễn cho giá trị điện áp trung bình, bị thay đổi tăng hay giảm là do sự thay đổi độ rộng của xung vuông một cách tỉ lệ tương ứng.

Tiếp tục vấn đề:

Sau khi khảo sát độ rộng xung tăng từ 50% tăng dần lên 100% ,rồi từ 100% giảm dần về 50% trở lại và tương ứng là điễm chạy ,chạy từ vị tri 0độ tăng lên tới vị trí 90độ, rồi chạy từ vị trí 90độ chay đến vị trí 180độ, trên đồ thị sóng sin.
Bay giờ ta không thay độ rộng xung vuông tăng lên nữa mà ta giảm độ rộng xung vuông từ 50% giảm dần về 0%, thì điễm chạy sẽ chạy từ vị trí 180độ chạy tới vị trí 270độ.
"Oh điễm chạy đã chạy từ điễm xuất phát 0độ đến vị trí 180độ lúc trươc đó rồi, bây giờ độ rộng xung giảm từ 50% xuống 0%, điễm chạy ,chạy trên đồ thị sóng sin đã đi tới đỉnh âm của đồ thị sóng sin rồi."
Tiếp tục để điễm chạy, chạy dần tới vị trí 360độ ,( nghĩa chạy tiếp từ đỉnh âm của sóng sin,chạy về lại điểm 0 của sóng sin), thì ta phải tăng độ rộng của xung vuông tăng dần từ 0% lên 50% trở lại.
Kết quả :
Điễm chạy, đã chạy trên đồ thị hình sin ,được 1 chu kì sóng sin.
"Như vậy đó ta chỉ việc thay đổi độ rộng của xung vuông thì ta có được đồ thị điện áp đo được là dạng hình sin."
Đây là nguyên lý tạo ra sóng sin sử dụng vi điều khiển.

Trên lý thiết thì đúng là tạo ra được điện áp dạng sóng sin có đồ thị là một đường sin mềm mại liên tục, nhưng thục tế lại là dạng sin nhấp nhô răng cưa kiểu như bậc thang, vì vậy nên cần cho qua mạch lọc LC để làm cho răng cưa bị giảm đi trở thành đường mềm mại liên tục.
Hy vọng rằng qua sự diễn giải dài dòng không có cái hình nào để minh họa sinh động, bạn đọc sẽ thấm sâu được vấn đề tạo sóng sin dùng vi điều khiển.
Chúc may mắn !
cảm ơn bài viết rất chi tiết của a minh. Bài viết rất hay
 
#36
a ơi cho em hỏi! giờ em muốn thay đổi số tần số sine thì e chỉ cần thay đổi tần số xung PWM là được phải không anh! giảm tần số sine thì phải giảm tần số PWM phải không ạ
Đúng ! giảm tần số PWM sẽ giảm tần số sine. (giữ nguyên số bậc thay đổi duty - lookup table). cách này sẽ thay đổi tần số khá mềm mại ngay trong chương trình, VD có thể dùng núm xoay, hoặc nhập số bằng phím.
Có một cách "thủ công" nữa là giữ nguyên tần số PWM, tăng số bậc duty, tần số ra giảm, "mịn" hơn, nhưng phải thay đổi bảng tham chiếu, cách này thường chỉ dùng khi chỉ thay đổi vài mức tần số cố định trước.

Bạn MinhTinkerer ở trên đã giải thích rất chi tiết về cách tạo ra sóng sine từ xung vuông. Cảm ơn Bạn.
 

stonelion

Học sinh phổ thông
#37
Em cảm ơn hai anh! e đang nghiên cứu vấn đề này để điều khiển tốc độ động cơ 3 pha theo phương pháp V/f! trong quá trình tìm hiểu có gì vướng mắc e xin nhờ 2 anh giúp ạ! :)
 

coofhair

Học sinh phổ thông
#38
Bác MinhTinkerer nhiệt tình quá, không phải ai hiểu cũng có thể trình bày chi tiết đc như bác, mỗi cái hình sin trừu tượng ấy mà nó cũng vật em mất 1 ngày. Suy nghĩ nghiền ngẫm hiểu ra thì thấy uh đơn giản nhỉ chân lý vốn đơn giản mà. Bác nào còn chưa hiểu thì ngẫm và đặt bút tính theo cái này nhé, thông minh thì 1 tiếng k nửa ngày, em thì 1 ngày kaka...
Sin table calculator

Rất mong có bác nào có bài phân tích và 1 mạch cụ thể dùng opamp pwm tạo xung sin như bác Minhtinkerer thì tốt quá, cái này còn trừu tượng hơn cả cái trên thì phải
 

Cafe_Sữa

Học sinh trung cấp
#39

Cafe_Sữa

Học sinh trung cấp
#40

Quảng cáo Google