Conectando um switch e um MOSFET a um Arduino?

Tenho uma faixa de LED que estou tentando ligar com um interruptor magnético quando uma porta se abre. Quero que os LEDs apaguem quando eu abrir a porta e apaguem quando eu fechar, que é onde o Arduino entra. Estou usando PWM para o desbotamento. Posso fazer com que cada componente funcione separadamente. Os LEDs de desbotamento funcionam com o MOSFET sem o switch. Testei o switch com saída serial no Arduino e funciona apagando um único LED sem o MOSFET.

Estou usando:

  • Arduino Uno R3
  • Chave magnética
  • MOSFET IRLB3034 N-Channel
  • Faixa de LED branca de 5 metros
  • Fonte de alimentação 12VDC 30W
  • Resistores de 10 k Ohm

Minha configuração é semelhante a esta: diagrama de breadboard

Esquema: esquemático

Código (se ajudar):

const int buttonPin = 2; // the number of the switch pin const int ledPin = 9; // the number of the LED pin // variables will change: int buttonState = 0; // variable for reading the switch status int brightness = 0; int fadeAmount = 5; void setup() { // initialize the LED pin as an output: pinMode(ledPin, OUTPUT); // initialize the pushbutton pin as an input: pinMode(buttonPin, INPUT); } void loop(){ // read the state of the switch value: buttonState = digitalRead(buttonPin); // check if the switch is ON. // if it is, the buttonState is LOW: if (buttonState == LOW) { // fade LED on: analogWrite(ledPin, brightness); if (brightness < 255) { brightness = brightness + fadeAmount; } } else { // fade LED off: analogWrite(ledPin, brightness); if (brightness > 0) { brightness = brightness - fadeAmount; } } delay(30); } 

Tenho a sensação de que o problema é com o terreno comum entre o MOSFET e o switch. Agradecemos quaisquer soluções / sugestões.

Comentários

  • você consegue ligar o FET via Pin D9 continuamente? Sem PWM .. Quando D9 está alto, você pode medir a tensão entre o dreno e a fonte do NMOSFET? Verifique a tensão em D2 quando a chave está fechada e aberta. Meça a tensão em D9 quando a saída do pino D9 estiver alta. você pode compartilhar os detalhes da faixa de LED de 5 metros? Como você está ligando o Arduino? Tenho a sensação de que o problema é com a faixa de LED de 5 metros …
  • Eu esperaria R2, perto do MOSFET, da ordem de 100 ohm. Você ‘ vai esquentá-lo de outra forma. Altere também os testes mínimo e máximo de 255 resp. 0 a 250 e 5.
  • Você não diz qual é o problema que está tendo. O que isso faz? | A faixa de LED irá ligar em uma faixa de voltagem próxima de 12V. ou seja, provavelmente está desligado em cerca de 9V e ligado em 12V. Portanto, se a tensão na faixa for analógica devido a qualquer filtragem, ela ligará ao longo de parte da faixa PWM. Se o circuito estiver como mostrado, a tira de LED deve modular ligado e desligado na frequência PWM. Isso DEVE funcionar. O circuito mostrado parece OK e o código parece OK, então você pode6 não estar fazendo o que pensa que está. Verifique tudo. | E, o que ele realmente faz?
  • @Como Jippie diz- o resistor de porta MOSFET pode ser pequeno de 100 Ohms ou até mesmo de 10 Ohms OK. 10k conforme mostrado provavelmente não é a causa de problemas, mas é muito grande.
  • ESSE ‘ é um FET INCRÍVEL. Folha de dados aqui

Resposta

Acho que você deve manter o resistor R2, mas torná-lo 1k e colocar antes dele um resistor pull-down de 10k para que quaisquer cargas armazenadas na capacitância NMOS Cgate sejam descarregadas, sempre que houver High-Z no porto D9. Também nunca se esqueça do resistor que limita a corrente direta do diodo, que normalmente é 20 mA, mas você deve verificar isso sempre na folha de dados. No caso da faixa de LED geralmente existem resistores internos, mas se você estiver usando uma tensão mais alta, ainda assim, você precisa restringir a corrente. Você poderia nos contar mais sobre por que está usando o PWM e não uma simples porta de saída com um integrador, por exemplo, e o que você observa e mede exatamente quando liga-desliga (fade-liga-desliga) o LED?

esquemático

simular este circuito – Esquemático criado usando CircuitLab

Como tornar o diagrama um pouco menor?

Comentários

  • Ele ‘ s dirigindo uma faixa de 12 V com resistores internos – nenhum LED externo necessário. Ele ‘ está usando PWM porque quer uma solução digital e não analógica.
  • @lalamer Para dimensionar os diagramas no ESE, você precisa torná-los mais amplos, Eu faço isso colocando um ponto / segmento / texto à esquerda e / ou direita de forma que reduza todo o diagrama, funciona bem.
  • @RussellMcMahon sim, você está certo, esta é uma faixa de led e há um resistor interno. Eu atualizei minha resposta. Obrigado por se comprometer.

Resposta

Não há necessidade de 10KOhm. Os MOSFETs são dispositivos controlados por tensão, ao contrário dos transistores que precisam de corrente controlada. Acho que o seu problema pode ser debouncing do switch. Provavelmente, você está recebendo alguns falsos positivos que podem estar fazendo com que seu software dê errado. Eu recomendo ter uma pequena rotina de debouncing. Por exemplo – somente se você encontrar 3 positivos sucessivos, o botão pressionado será denominado um positivo verdadeiro ou algo assim.

Comentários

  • Quando o switch é visto como ativo, ele executa uma ação e atrasa 30 ms antes de testar novamente para que ele efetivamente tenha um debounce de 30 ms.
  • É uma boa prática ter um resistor em série com porta para limitar a corrente de pico. Lembre-se de que a porta do MOSFET atua como um capacitor e precisa ser carregada / descarregada.
  • Para conseguir isso, você deve conectar a porta do MOSFET ao gnd (no caso de NMOS). Isso irá descarregar a capacitância da porta do MOSFET rapidamente. Além disso, você nunca deve deixar um portão flutuando, pois ele é suscetível a ruídos e pode ligar causando muitos danos. Sempre puxe para baixo a porta NMOS.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *