Mình điều chỉnh tốc độ động cơ bằng PWM từ chân OCR0( PORTB.3) của atmega 16, tốc độ thì có thay đổi khi mình điều chỉnh độ rộng xung, nhưng FET rất nóng mặc dù chưa có tải, khi động cơ quay càng chậm thì FET càng nóng. Mình set thạch anh nội là 1 Mhz, tăng lên 4Mhz thì khi thay đổi giá trị PWM thì vận tốc động cơ không thay đổi là mấy.
Đây là mạch và code, ai biết nguyên nhân vì sao giải thích giúp với nha.
#1
#include <mega16.h>
#include <delay.h>
void main(void)
{
PORTB=0x00;
DDRB=0xFF;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 8000.000 kHz
// Mode: Fast PWM top=0xFF
// OC0 output: Inverted PWM
TCCR0=0x69;
TCNT0=0x00;
OCR0=0x00;
while (1)
{
OCR0=0;
delay_ms(1000);
OCR0=50;
delay_ms(1000);
OCR0=100;
delay_ms(1000);
OCR0=150;
delay_ms(1000);
OCR0=255;
delay_ms(1000);
}
}
Đây là mạch và code, ai biết nguyên nhân vì sao giải thích giúp với nha.
#1
#include <mega16.h>
#include <delay.h>
void main(void)
{
PORTB=0x00;
DDRB=0xFF;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 8000.000 kHz
// Mode: Fast PWM top=0xFF
// OC0 output: Inverted PWM
TCCR0=0x69;
TCNT0=0x00;
OCR0=0x00;
while (1)
{
OCR0=0;
delay_ms(1000);
OCR0=50;
delay_ms(1000);
OCR0=100;
delay_ms(1000);
OCR0=150;
delay_ms(1000);
OCR0=255;
delay_ms(1000);
}
}
Comment