![]() |
|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#15 |
Đệ tử 4 túi
Tham gia ngày: May 2007
Bài gửi: 81
: |
Theo tui bạn thử sử dụng PWM với duty cycle thay đổi dần với tần số cố định (Một số cái còi "ngân" của ô tô cũng sử dụng phương pháp này... tiếng nhỏ dần).
Còn về nguyên lý hoạt động thì dutycle càng ngắn thì thời gian sáng của led càng ngắn (chớp nhanh) -> tối và ngược lại. Như vậy khoảng thời gian để đèn từ tắt hẳn đến sáng hoàn toàn thì cũng chính là thời gian để duty cycle chạy từ 0 đến max. Ví dụ: Code:
void main() { setup_ccp1(CCP_PWM); setup_timer_2(T2_DIV_BY_1,25,1); set_pwm1_duty(0); while(true) { for(i=0;i<25;i++) { set_pwm1_duty(i); delay_ms(200); } } } Cái này tui chưa làm thử, nhưng đây là ý tưởng của tui... bạn tham khảo xem sao ![]() |
![]() |
![]() |
|
|