View Full Version : Giúp mình vấn đề Điều chế PWM
jimmylin1986
17-03-2010, 11:19 AM
Mình đang gặp vấn đề trong việc điều chế PWM cua Pic6f877a. Mình muốn dùng 2 chân điều chế PWM của Pic để điều khiển động cơ DC.mình viết code bằng CCS,nhưng khi mô phỏng trong Protus thì 2 chân CCP cua Pic không xuất ra xung gì cả.Nó luôn xuất ra mức 0.Mạch mô phỏng đơn giản lắm,chỉ là kiểm tra xem nó có xuất xung hay không thôi.Các bác Pro giúp mình với. Mình đang cần gấp lắm
haruoi
13-04-2010, 01:30 AM
Có pro nào biết thì giúp bạn cái nhỉ! E cũng đang muốn tìm hiểu cái này.
baquyen
13-05-2010, 06:14 PM
16f877a à, trên picvietnam nhiều lắm mà,
CT của mình với 16f887 tương tự 16f877a.
http://www.picvietnam.com/forum/showthread.php?t=6344
manhhung_cdt08
06-06-2010, 10:04 PM
#include<16f877a.h>
#fuses hs,NOWDT,PUT
#use delay(clock=20000000)
main()
{
setup_timer_2(T2_DIV_BY_16,239,1);
setup_ccp1(CCP_PWM);
setup_ccp2(CCP_PWM);
set_pwm1_duty(64);
set_pwm2_duty(900);
while(1) {}
}
tranchung000
09-06-2010, 07:36 AM
có nguồn ở đây nè bạn. Bạn tìm đến file dktocdodc.rar .Hi vọng giúp được bạn.
http://www.picvietnam.com/forum/showthread.php?t=3021
HAI1817
11-06-2010, 11:38 AM
các anh chị chỉ em với
HAI1817
11-06-2010, 11:47 AM
code đây sửa lại như thế nào
baquyen
11-06-2010, 04:28 PM
Thì dùng ngắt ngoài bình thường, ý bạn là sao nhỉ, ko hiểu
HAI1817
11-06-2010, 05:13 PM
em chư rành mấy mong anh chỉ dùm
có nghĩa là dùng một encoder khoảng 200 xung để phản hồi tốc độ.nếu em dùng ngắt thì nó ngắt liên tục.ngắt đó mình đưa vào đâu để ổn định được tốc độ
baquyen
11-06-2010, 06:05 PM
Dù ngắt liên tục thì nó cũng chỉ mất thời gian rất ngắn, bạn dùng ngắt đó + ngắt timer để tính tốc độ (cái này có cả đống bài trên picvietnam viết và code sẵn rồi), vấn đề là bạn đưa vào một tốc độ cần đạt được (tốc độ đặt), code của bạn sẽ so sánh với tốc độ bạn đọc được từ encoder để điều chỉnh. Mình đang làm điều khiển góc quay , giờ viểt báo cáo gấp để nộp cho khoa, sắp hết hạn rồi, mấy bài về cái này nhiều lắm, bạn tự tìm trong diễn đàn có hết
Đọc encoder nè: http://www.picvietnam.com/forum/showthread.php?t=1646
Cái này nữa nè: http://www.picvietnam.com/forum/showthread.php?t=2296&page=7
Cái này thì hơi mệt chút: http://www.picvietnam.com/forum/showthread.php?t=485&page=25
HAI1817
11-06-2010, 08:17 PM
cảm ơn anh nhiều
manhdktd
12-06-2010, 06:05 PM
#include<16f877a.h>
#fuses hs,NOWDT,PUT
#use delay(clock=20000000)
main()
{
setup_timer_2(T2_DIV_BY_16,239,1);
setup_ccp1(CCP_PWM);
setup_ccp2(CCP_PWM);
set_pwm1_duty(64);
set_pwm2_duty(900);
while(1) {}
}
bác xem lại cái giá trị đặt trong pwm2 nhé.giá trị mình đặt phải nhỏ hơn giá trị trong thanh ghi PR2
trangkutehd
12-06-2010, 08:31 PM
bác xem lại cái giá trị đặt trong pwm2 nhé.giá trị mình đặt phải nhỏ hơn giá trị trong thanh ghi PR2
sao mình thử mãi không được nhỉ :((
___________________________________
Cập nhật liên tục Lich thi dau world cup 2010 (http://www.24h.com.vn/lich-thi-dau-world-cup-2010-c513.html) , Tin tuc (http://www.24h.com.vn), Tin tuc trong ngay (http://www.24h.com.vn/tin-tuc-trong-ngay-c46.html) ,Thoi trang (http://www.24h.com.vn/thoi-trang-c78.html) & HOT Game (http://game.24h.com.vn) , Nhac (http://nhac.vui.vn).Click ngay để Nghe nhac (http://nhac.vui.vn).
manhdktd
13-06-2010, 07:03 AM
sao mình thử mãi không được nhỉ :((
___________________________________
Cập nhật liên tục Lich thi dau world cup 2010 (http://www.24h.com.vn/lich-thi-dau-world-cup-2010-c513.html) , Tin tuc (http://www.24h.com.vn), Tin tuc trong ngay (http://www.24h.com.vn/tin-tuc-trong-ngay-c46.html) ,Thoi trang (http://www.24h.com.vn/thoi-trang-c78.html) & HOT Game (http://game.24h.com.vn) , Nhac (http://nhac.vui.vn).Click ngay để Nghe nhac (http://nhac.vui.vn).
cậu không được chỗ nào?có thể nói cụ thể được không?
robotpic
06-10-2010, 12:21 PM
bạn cùng thach anh 20000000 hz bạn phải sửa setup_timer2 lại đi; bạn chọn bộ chia 16 thi gia trị nhận được là 124
cach tinh nè bạn
//setup_timer_2(mode,period,postscale)
// * PWM Register Values
// * Oscillator Frequency Fosc = 20000000
// * Clock Frequency Fclk = 5000000
// TOSC=1/20000000=5000000
// * PWM Freq = 10000 HZ
// * Prescaler Value = 4
// * PR2 = 124
//10000=[(PR2+1).4.TOSC.(TMR2 PRESCALE)]
// * Maximum duty value = 500
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.