PDA

View Full Version : Vấn đề về pwm


handsome3746
31-05-2011, 11:44 PM
Em viết code đơn giản thế này:

#include <18f4620.h>
#BYTE PORTC=0xf82
#byte TRISC=0xf94
#fuses HS, NOWDT
#use delay (clock=20000000)

void main()
{
TRISC=0x00;
PORTC=0x00;
setup_ccp1(CCP_PWM);
set_pwm1_duty(512);
setup_timer_2(T2_DIV_BY_1,255,1);
while(1);
}

khi em mô phỏng trên proteus đúng là duty cycle = 50%.
nhưng khi làm mạch thật thì không phải như vậy...
chân tín hiệu pwm được nối vào opto pc817, hiệu điện thế cấp cho pc817 là 5V...
nếu đúng dutycyle=50% thì điện áp dc ở ngõ ra của pc817 phải là 5/2=2.5V chứ...
vì em cần điều khiển motor dc không hồi tiếp nên cần cấp xung pwm thật chính xác...
mong mấy huynh giúp đỡ...
thanks mấy huynh trước nha..

handsome3746
01-06-2011, 12:01 AM
Không biết em có khai báo thiếu phần gì ở #fuses không...giúp em với...

handsome3746
01-06-2011, 12:59 AM
Hình như vì đáp ứng tần số của con pc817 không đủ phải không mấy huynh...em đo chân ra của pwm thì đúng là bằng 1/2 giá trị chân "high" của pic...nhưng qua opto pc817 thì không còn là 1/2 nữa...vậy theo các bác thì nên thay con gì...tần số pwm của em là 23437,5 Hz...
ai góp ý giùm em với...

lionking
01-06-2011, 09:26 AM
Hình như vì đáp ứng tần số của con pc817 không đủ phải không mấy huynh...em đo chân ra của pwm thì đúng là bằng 1/2 giá trị chân "high" của pic...nhưng qua opto pc817 thì không còn là 1/2 nữa...vậy theo các bác thì nên thay con gì...tần số pwm của em là 23437,5 Hz...
ai góp ý giùm em với...

đúng là đáp ứng tần số của con PC817 ko đủ ở tần số 23437hz như bạn nói,nếu điều khiển động cơ thì ko cần cao như thế.bạn giảm xuống còn tầm 10khz thì chạy đc

Advertiser
17-10-2011, 06:44 PM
Lạ nhỉ. Tớ thấy trong datasheet của con PC817 ghi Cut-off Frequency là 80kHz thì sao lại không đáp ứng được tần số PWM của cậu ?