![]() |
|
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 ![]() |
|
|
|
|
|