Tengo una tira de LED que estoy tratando de encender con un interruptor magnético cuando se abre una puerta. Quiero que los LED se apaguen cuando abro la puerta y se apaguen cuando la cierro, que es donde entra el Arduino. Estoy usando PWM para el desvanecimiento. Puedo hacer que cada componente funcione por separado. Los LED que se desvanecen funcionan con el MOSFET sin el interruptor. Probé el interruptor con salida en serie en el Arduino y funciona atenuando un solo LED sin el MOSFET.
Estoy usando:
- Arduino Uno R3
- Interruptor magnético
- MOSFET de canal N IRLB3034
- Tira de LED blanca de 5 metros
- Fuente de alimentación de 12VDC 30W
- Resistencias de 10k Ohm
Mi configuración se ve así:
Esquema:
Código (si ayuda):
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); }
Tengo la sensación de que el problema está en el terreno común en el MOSFET y el conmutador. Se agradece cualquier solución / sugerencia.
Comentarios
- ¿Puede encender el FET a través del Pin D9 continuamente? Sin PWM. Cuando D9 es alto, ¿puede medir el voltaje a través del drenaje y la fuente del NMOSFET? Verifique el voltaje en D2 cuando el interruptor está cerrado y abierto. Mida el voltaje en D9 cuando la salida del pin D9 es alta. ¿Puedes compartir los detalles de la tira de LED de 5 metros? ¿Cómo enciendes el Arduino? Tengo la sensación de que el problema es con la tira de LED de 5 metros …
- Esperaría que R2, cerca del MOSFET, sea del orden de 100 ohmios. De lo contrario, ‘ lo calentará. También cambie las pruebas mínimas y máximas de 255 resp. 0 a 250 y 5.
- No dice qué problema tiene. ¿Qué hace? | La tira de LED se encenderá en un rango de voltaje cercano a 12V. es decir, probablemente esté apagado a unos 9 V y encendido a 12 V. Entonces, si el voltaje en la tira es analógico debido a cualquier filtrado, se encenderá en la parte final del rango PWM. Si el circuito ES como se muestra, la tira de LED debería activarse y desactivarse a la frecuencia PWM. Esto debería funcionar. El circuito como se muestra se ve bien y el código parece correcto, por lo que es posible que no esté haciendo lo que cree que está haciendo. Revisa todo. | Y, ¿qué es lo que hace?
- @ Como dice Jippie, la resistencia de compuerta MOSFET puede ser pequeña de 100 ohmios o incluso de 10 ohmios. 10k como se muestra probablemente no sea causa de problemas, pero es demasiado grande.
- ESO ‘ es un FET INCREÍBLE. Hoja de datos aquí
Responder
Creo que debería mantener la resistencia R2, pero hágalo 1k y coloque antes una resistencia desplegable de 10k para que cualquier carga almacenada en la capacitancia NMOS Cgate se descargue, siempre que haya High-Z en el puerto D9. Además, nunca olvide la resistencia que limita la corriente directa del diodo, que generalmente es de 20 mA, pero debe verificarlo cada vez en la hoja de datos. En el caso de la tira de LED, generalmente hay resistencias internas, pero si está usando un voltaje más alto, debe restringir la corriente. ¿Podría decirnos más acerca de por qué está utilizando PWM, no un puerto de salida simple con un integrador, por ejemplo, y qué observa y mide exactamente cuando enciende y apaga (atenúa-enciende-apaga) el LED?
simula este circuito – Esquema creado usando CircuitLab
¿Cómo hacer el diagrama un poco más pequeño?
Comentarios
- Él ‘ está manejando una tira de 12V con resistencias internas – no se necesita un LED externo r. Él ‘ usa PWM porque quiere una solución digital y no analógica.
- @lalamer Para escalar los diagramas en ESE, debe ampliarlos, Hago esto colocando un punto / segmento / texto a la izquierda y / o derecha para que encoja todo el diagrama, funciona bien.
- @RussellMcMahon sí, tienes razón, esta es una tira de led y hay una resistencia interna. He actualizado mi respuesta. Gracias por comprometerse.
Respuesta
No hay necesidad de los 10KOhm. Los MOSFET son dispositivos controlados por voltaje a diferencia de los transistores que necesitan corriente controlada. Creo que su problema podría estar en la eliminación de rebotes del interruptor. Probablemente esté obteniendo algunos falsos positivos que podrían estar haciendo que su software salga mal. Recomiendo tener una pequeña rutina de eliminación de rebotes. Por ejemplo, solo si encuentra 3 positivos sucesivos, la pulsación del interruptor se considerará un verdadero positivo o algo así.
Comentarios
- Cuando el interruptor se ve como activo, realiza una acción y luego retrasa 30 mS antes de volver a probar, por lo que efectivamente tiene un rebote de 30 mS. / li>
- Es una buena práctica tener una resistencia en serie con una compuerta para limitar la corriente de entrada. Recuerde que la puerta del MOSFET actúa como un capacitor y necesita ser cargada / descargada.
- Para lograr esto, debe conectar la puerta del MOSFET a la tierra (en el caso de NMOS). Esto descargará la capacitancia de la puerta del MOSFET rápidamente. Además, nunca debe dejar una puerta flotando, ya que es susceptible al ruido y puede encenderse y causar muchos daños. Siempre baje la puerta NMOS.