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).

Exibições: 14425

Responder esta

Respostas a este tópico

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.

Anexos

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!

RSS

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2017   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço