Meu circuito solenóide operado com MOSFET destrói minhas entradas do Arduino

14

Fiz uma série de PCBs para alimentar algumas válvulas solenóides que usam uma fonte de alimentação externa. Troco- os com MOSFETs BS170 usando um Arduino como sinal de porta. Baseei-lo uma solução por Jason S .

Esta é uma ilustração da aparência do meu circuito: Circuito de válvula operado por MOSFET

Ao testar os PCBs, notei que a maioria deles funciona bem, mas alguns não. Não tem problema, provavelmente uma coisa de solda.

No entanto, esses defeituosos conseguiram destruir dois pinos digitais do Arduino! Em um, recebo uma tensão constante de 5 V, e o outro emite 0,2 V quando envio um sinal ALTO a ele e 0,5 V quando envio um sinal BAIXO. Coisas estranhas.

Então, acho que os circuitos defeituosos de alguma forma fizeram (alguns) os 16 V fluirem através do Arduino, destruindo-os.

Como protejo o Arduino nesse cenário de corrente muito alta?

Eu sei sobre diodos zener , mas não tenho idéia de como colocá-los para proteger as entradas.

Informação técnica:

Dyte
fonte
Qual software você usou para criar esse desenho? Parece muito bom!
Mjh2007
3
Fritzing. Livre e muito útil para este tipo de coisas, também para PCB design :)
Dyte
O diodo zener da fonte da porta, digamos 12V (> Vgate_drive), é uma idéia muito boa, de fato, em todos os circuitos com carga indutiva. Monte o zener perto do MOSFET. Ânodo para a fonte e cátodo para a porta, para que o zener normalmente não seja conduzido. || MOSFETs muito melhores no Digikey de 26c / 10 são, por exemplo, IRLML6346 SOT23. Ou NDT3055 48c / 10 TO251 com chumbo ou RFD14N05 71c / 10 TO220.
Russell McMahon
...When MOSFETs fail they often go short-circuit drain to gate...Citado daqui .
abdullah kahraman
A aplicação de 16V pode matar as portas do Arduino.
abdullah kahraman

Respostas:

7

O circuito é bom em teoria.
É necessário melhorar a prática.

Adicionar um diodo zener de fonte de porta de, digamos, 12V (> Vgate_drive) é uma idéia muito boa, de fato, em todos os circuitos com carga indutiva. Isso impede que o portão seja acionado destrutivamente alto pelo acoplamento "Miller capacitance" ao dreno durante variações inesperadas ou extremas na tensão do dreno.

Monte o zener próximo ao MOSFET.
Conecte o ânodo à fonte e o cátodo ao portão, para que o zener normalmente não conduz.

O resistor de acionamento de porta de 10k (como mostrado) é grande e causará desligamento e ativação lenta e mais dissipação de energia no MOSFET. Provavelmente não é um problema aqui.

O MOSFET escolhido é muito marginal nesta aplicação.
MOSFETs muito melhores disponíveis no estoque da Digikey incluem:

Para 26c / 10 Digikey IRLML6346 SOT23 pkg, 30V, 3,4A, 0,06 Ohm, Vgsth = 1,1V = limiar de porta Voltagem ..

NDT3055 48c / 10 TO251 com chumbo de 60V, 12A, 0,1 Ohm, Vgsth = 2V

RFD14N05 71c / 10 TO220 50V, 14A, 0,1 Ohm, 2V Vgsth.


ADICIONADO

MOSFETS ADEQUADOS PARA UNIDADE DE PORTÃO DE 3V:

Sistema apenas destruiu a minha resposta mais :-( Então -. MOSFET deve ter Quinto (tensão de limiar) não superior a 2V Para trabalhar adequadamente com 3V3 controladores de abastecimento.
Nenhum dos FETS sugeridas atender a essa exigência.
Eles podem trabalhar depois de uma moda no carga atual, mas com pouca carga e com perdas excessivas, e a solução não se estende bem a cargas
maiores.Parece que IRF FETS na faixa de tamanho em questão que possui Vth (de Vgsth) <= 2 volts ALL possui códigos numéricos de 4 dígitos, começando com 7, exceto IRF3708 .

OK FETs incluem IRFxxxx onde xxxx = 3708 6607 7201 6321 7326 7342 7353 7403 7406 7416 7455 7463 7468 7470

Haverá outros, mas todos os sugeridos parecem ter Vth = 4V ou 5V e são marginais ou piores nesta aplicação.

Vgsth ou Vth precisa ter pelo menos um volt a menos e, idealmente, vários volts a menos que a tensão real de acionamento da porta.

Russell McMahon
fonte
Sim, eu estou indo para o caminho seguro e vou usar outro mosfet. Isso e o diodo zener provavelmente devem fazer o truque. Na loja de eletrônicos perto de onde eu moro, eles não têm os mosfets que você propôs, mas têm: IRF520, IRF530, IRL530, IRF540, IIRF730, IRF740, IRF830, IRF840, IRF9140, IRF9530, IRF9540, IRF9610, IRFBC620, IRFDD110, IRFD9120, IRFP50, IRFP054, IRFP140, IRFP150, IRFP450, IRFP520, IRFP9140, IRFZ44, IRFZ46. Suponho que eu poderia ir para um IRF520, por exemplo? a corrente de drenagem contínua é de 6,5 a 9,2 A. Vgs mín. é 2V e máx. é 4V, isso é válido para o arduino?
Dyte
O IRF520 é bom para um Arduino dirigir. Min Vgs e "max Vgs" não são exatamente o que você pensa, essa é a tensão "limiar", onde o MOSFET começa a conduzir. O Vgs máximo é substancialmente mais alto (acima dos 5v, o Arduino produzirá). Exceda a classificação mais alta (20V?) E você perderá o FET.
precisa
Funciona usando o IRF520 MOSFET e um diodo zener de 5,1 V e provavelmente continuará trabalhando desta vez :) Muito obrigado por me ajudar. Todas as respostas me ajudaram, mas você elaborou diodos zener e tipos específicos de mosfets, então estou aceitando a sua como resposta.
Dyte
@ Russell McMahon: A tensão que meu arduino gera é (um pouco menos que) 5V, não 3V3. Isso não muda a situação?
Dyte
10

Sua válvula é classificada em 500mA em 12V. Se você fornecer 16V, ele consumirá um pouco mais de 500mA. Supondo que seja uma resistência, ele consumirá 667mA.

A corrente máxima absoluta para o MOSFET que você usou é de 500mA contínua. Qualquer coisa acima das classificações máximas absolutas pode destruir o dispositivo. Provavelmente é por isso que você está tendo problemas de confiabilidade.

Não há modo de falha garantido para os MOSFETs, portanto, não estou surpreso que ele falhe de maneira a danificar as saídas do Arduino.

Como Jason mencionou na resposta vinculada, o BS170 é uma má escolha do MOSFET. Você precisa de um melhor. Escolha um em um gabinete TO-220 classificado em vários amplificadores. Você também precisa garantir que o Vgs esteja classificado para inversor de nível lógico de 5V.

Qual diodo você está usando?

markrages
fonte
Oi Mark, O diodo que eu uso é um 1N4001: fairchildsemi.com/ds/BS/BS170.pdf
Dyte
5

Sua válvula é classificada para ~ 500 mA. Um BS170 também possui 500 mA, mas esse é o valor do discurso de vendas. Eu usaria um FET avaliado (muito) mais alto aqui, 500mA através de um TO92 me deixa nervoso. E você tem um resistor de 1k, o que é uma boa ideia na maioria dos casos, mas pode fazer com que o pobre FET mude lentamente demais para sobreviver ao 0,5A.

Qual diodo você está usando? Ele deve ser classificado para o 0.5A, para que um 1n4148 não funcione. Não tenho certeza, mas ele pode realmente chegar a mais de 0,5, porque a parte móvel do valor pode causar um aumento ainda maior do que uma bobina comum.

Na sua foto, você tem a corrente de retorno de valor que passa pela conexão de aterramento do Arduino. Eu diria isso a uma estrela: conecte o terra do arduino diretamente à fonte de alimentação. Ou melhor: use um acoplador óptico para isolar o circuito de alta corrente do Arduino (e use duas fontes de alimentação separadas).

Wouter van Ooijen
fonte
O diodo que eu uso é um 1N4001. diodes.com/datasheets/ds28002.pdf Eu não pensei em um acoplador óptico . Isso é um bom cenário para investigar :)
Dyte
5

Você deve ter um resistor de fonte de porta no seu MOSFET para que a porta não possa flutuar se a saída do Arduino for de alta impedância. Como a fonte de alimentação solenóide e a fonte de alimentação Arduino são separadas, esse cenário pode ocorrer (a menos que você garanta, por projeto, que o Arduino esteja sempre ligado primeiro).

O MOSFET está realmente tão longe do solenóide? Nesse caso, deve ser movido muito mais perto. Mova-o para que o dreno se conecte diretamente à faixa da protoboard, onde o fio vermelho vai para o solenóide e o diodo. Em seguida, faça uma conexão de fonte curta com a faixa GND. É melhor ter um loop de sinal de porta mais longo (em baixa potência) vs. um loop longo que transporta energia. Você também pode mover o Arduino para mais perto do solenóide, mantendo todos esses loops curtos.

Adam Lawrence
fonte
Por um resistor de fonte de porta, você quer dizer um resistor entre a porta e a fonte do mosfet? Desculpe se essa é uma pergunta boba :). Que valor você sugere? Sobre as distâncias, não, todos os componentes estão próximos um do outro, eu tenho esse circuito soldado em um PCB auto-gravado. Somente os fios do arduino são mais longos. Devo dizer que não fazia ideia de que isso fazia alguma diferença. Eu pensei que a diferença no tempo que a corrente viaja alguns centímetros a mais era insignificante.
Dyte
@ Tyte Sim, um resistor entre o portão e a fonte.
11308 Adam SmithJulho
@ Tyte, eu imagino que um resistor de 10k de fonte de porta seria bom. O objetivo é apenas garantir que o portão do MOSFET não flutue. Você deseja algo baixo o suficiente para "vencer" contra elementos de circuito parasitas, mas alto o suficiente para que a saída do Arduino possa "vencer" quando for necessário ativar o MOSFET.
ajs410
3

O circuito, como ilustrado, parece bom, desde que a única conexão de aterramento entre a placa Arduino e o terminal negativo da fonte +16 seja o curto fio azul. Por outro lado, é possível que shorts acidentais possam causar coisas ruins. É difícil adivinhar exatamente o que poderia ter acontecido sem ver como as placas problemáticas reais foram dispostas.

Se você estiver pressionando as especificações do seu MOSFET, ele poderá falhar facilmente de maneira a enviar +16 para fora do portão, mas se os resistores forem como ilustrados, espero que o Arduino esteja bem protegido.

supercat
fonte
1

Primeiro de tudo, você precisa de diodos de comutação ultra-rápidos, e não desses diodos 2n4001-4 baratos, ao usar motores ou bobinas. Quanto mais rápida a comutação, maior o BEMF é criado. Também use um diodo de comutação 914 para o gate mosfet do arduino e um resistor pull / down de 10k do gate para o terra.

Tommey Reed
fonte