Bom dia pessoal, tenho um projeto onde preciso controlar a velocidade de um motor CC, estou utilizando um mosfet para este fim, e um sinal PWM proveniente do arduino. Só que o mosfet está aquecendo muito, penso que baixar a frequência do PWM seria uma solução.
Minhas duvidas são: como?Posso fazer na IDE do arduino?Caso de alterar alguma biblioteca?
Ou se tiverem alguma outra sugestão pra minimizar esse aquecimento será de grande ajuda.
O mosfet é o IRF1404(Rds = 0,004 ohm).
Tags:
Olá Yure,
Sobre como alterar a frequência do PWM do arduino, é possível sim, basta alterar manualmente alguns registradores do controlador. Mas tenha em mente que isso vai alterar os Timers do arduino, e algumas funções e librarys podem funcionar mal.
Veja o link: http://arduino.cc/en/Tutorial/SecretsOfArduinoPWM
Quanto ao aquecimento do MOSFET, como o mesmo está polarizado? Poste uma figura do seu circuito.
Abraço.
Yure,
A frequencia do PWM no arduino são:
- 1KHz nos pinos 5 e 6
- 500 Hz nos pinos 3,9,10,11
A frequencia do PWM de cada pino é controlado por um dos três temporizadores internos do microcontrolador ATmega328.
O valor de cada temporizador pode ser trocado via programação na interface IDE do arduino. mas como disse o Wiechert, isto afetará outras funções que usam esses temporizadores.
Abaixo segue tabela da configuração dos temporizadores:
Temporizador Arduino codigo divisor Frquencia
0(pino 5 e 6 ) 0X01 1 62500
0(pino 5 e 6 ) 0X02 8 7812.5
0(pino 5 e 6 ) 0X03 64 976.56
0(pino 5 e 6 ) 0X04 256 244.14
0(pino 5 e 6 ) 0X05 1024 61.04
1(pino 9 e 10 ) 0X01 1 31250
1(pino 9 e 10 ) 0X02 8 3906.25
1(pino 9 e 10 ) 0X03 64 488.28
1(pino 9 e 10 ) 0X04 256 122.07
1(pino 9 e 10 ) 0X05 1024 30.52
2(pino 3 e 11 ) 0X01 1 31250
2(pino 3 e 11 ) 0X02 8 3906.25
2(pino 3 e 11 ) 0X03 32 976.56
2(pino 3 e 11 ) 0X04 64 488.28
2(pino 3 e 11 ) 0X05 128 244.14
2(pino 3 e 11 ) 0X06 256 122.07
2(pino 3 e 11 ) 0X07 1024 30.52
Exemplo:
Modificar frequencia PWM do pino 3 e 11 para 4KHz
acrescentar o linha:
void setup() {
TCCR2B = TCCR2B & 0b11111000 | 0x02;
}
Resumo dos temporizadores:
TCCR0B = TCCR0B & 0b11111000 | <codigo>; //Temporizador 0 (PWM pinos 5 & 6)
TCCR1B = TCCR1B & 0b11111000 | <codigo>; //temporizador 1 (PWM pinos 9 & 10)
TCCR2B = TCCR2B & 0b11111000 | <codigo>; //temporizador 2 (PWM pinos 3 & 11)
No caso do aquecimento do Mosfet, deve ser verificado as ligações ( gate,dreno e source ) e qual duty cicle está sendo usado.
Sds,
Yure,
Se você conferiu e tiver tudo certo como o Wiechert escreveu, eu poderia pensar assim:
Que a frequência de chaveamento de 500 Hz ou 1kHz seja muito baixa, fazendo com o Mosfet permaneça muito tempo na região de transição. Ou que tem algo retardando o tempo de subida/descida (capacitâncias parasitas por exemplo) no gate.
Mas não testei ainda, ainda vou fazer o circuito. É que estou estudando esse artigo do link abaixo, porque também tenho dúvidas de como alterar a frequência de chaveamento:
http://arduino-info.wikispaces.com/Arduino-PWM-Frequency
E porque tenho lido em outros artigos que em eletrônica de potência (não arduino), tem gente usando 10kHz, 15kHz, 30 Khz, em inversores, e até 200 kHz em caso de fonte chaveada.
Você pode me mostrar como é o esquema de acionar o mosfet?
Obrigado pela atenção dos senhores.O Cinesio esclareceu bem minha duvida, é que esses timers do atmega tem tantos modos e registradores que eu não sei nem por onde começar a estudar.Pelo que eu entendi todos vem com um prescaler de 64, vou baixar a frequência ao máximo para ver o que acontece.O que eu vou usar alem do PWM seria I²C, não tenho certeza se usa algum timer, mas se usar eu tenho ainda outros dois timers livres.
O circuito é esse da figura.
http://www.irf.com/product-info/datasheets/data/irf1404.pdf
Do datasheet
VGS Gate-to-Source Voltage ± 20 V
Ciss Input Capacitance ––– 5669 ––– pF
Por esses dados já da de perceber pra precisa de um driver e jogar no minimo 12V no gate do mosfet.
Aquela informação Gate Threshold Voltage: min 2V max 4.0 V é a mais correta?
Esqueci de dizer, o motor só começa a rodar com analogWrite(pin,37);
O problema é pior quando uso baixo Duty cycle.
Consegui baixar a a frequência, o motor ficou ate mais silencioso.
Isso é um circuito provisório, pretendo trocar esses relés por mosfets e jogar 12V nos gates, colocar optoacopladores,etc.
Yure cara, nao sei se ainda tem essa dúvida, mas tenta colocar o diodo o diodo roda livre no motor, pode melhorar teu problema alem de proteger os mosfets!
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por