Sau nhiều lần test với các tụ khác nhau thì chỉ có tần số <1khz là chạy ổn định. Các tần số lớn hơn áp 2 đầu động cơ dao dộng và đảo chiều động cơ khi sau khi vận tốc về 0 thì random có lúc được lúc ko.
Mạch IR thiết kế để kích FET tần số cao có thể >100Khz. Ko biết mạch em làm sai chổ nào, Cb=0.47uF Rgate 10ohm Db 4148
Chương trình test mạch như sau: D1 D0 đk 2 FET thấp, 2 chân PWM 0 1 đk 2 FET cao, duty max 4095, tần số 500hz
Code:
output_high(pin_D0);
output_high(pin_D1);
while(1)
{
delay_ms(10);
output_low(pin_D1);
delay_ms(5);
setmotorsspeed(3000);
delay_ms(5000);
setmotorsspeed(0); <= cú pháp của hàm chỉ có 1 đối số!?
output_high(pin_D1);
output_high(pin_D0); <= những lệnh thao tác ngõ ra này nên nằm trong hàm setmotorsspeed()
delay_ms(10);
output_low(pin_D0);
delay_ms(5);
setmotorsspeed(-3000);
delay_ms(5000);
setmotorsspeed(0); <= cú pháp của hàm chỉ có 1 đối số!?
output_high(pin_D1);
output_high(pin_D0);
}
setmotorsspeed (signed long duty)
{
if(duty==0){
set_power_pwm_override(1, true, 0);
set_power_pwm_override(0, true, 0);
}else if(duty<0){ <= if cái gì < 0?!
set_power_pwm_override(1, true, 0);
set_power_pwm_override(0, false, 0);
set_power_pwm0_duty(-Duty);
}else{
set_power_pwm_override(0, true, 0);
set_power_pwm_override(1, false, 0);
set_power_pwm0_duty(Duty);
}
}