Controlando los LED de alimentación a través del multiplexor

2

Estoy trabajando en un circuito para controlar un número de LED de alimentación de 1W con Arduino. Usé el controlador actual constante con MOSFET desde aquí: enlace pero conecté la puerta MOSFET al pin de salida de Arduino, y funcionó como un encanto.

Pero como necesito controlar más LED que los pines de salida de Arduino, agregué multiplexores intermedios. El circuito completo se ve así:

LalógicadecontrolenArduinoesdirectaysimplementeemiteALTAalasalidacomúnyladirecciónapropiadaalospinesA/B/C.ElproblemaesquealcambiarentrelosLEDnoseapagancompletamente.Secomportancomosilasalidadelmultiplexorsedejaraflotando,aunquelahojatécnica( enlace ) dice que los pines inactivos deben obtener '0'.

Me pareció una idea razonable colocar una resistencia entre la compuerta MOSFET y el suelo para derribarla, de esta manera:

y funciona bien, pero tengo dos preguntas:

  • ¿Por qué no funcionó correctamente sin él? ¿Qué parte de la hoja técnica del multiplexor indica que necesito esa resistencia?
  • ¿Cuál debería ser el valor de R3? Tenía 100kOhm a la mano, así que solo los puse, pero preferiría tener algo elegido basado en R1 / R2 / Q1 / M1 / V1. La misma pregunta para R2 en realidad, ¿en qué influye? solo el tiempo de conmutación para M1?
pregunta miciwan

2 respuestas

0

La hoja de datos para el CD4051 muestra que tanto ENCENDIDO como APAGADO habrá +/- Corriente de fuga en los pines de salida. Esto le indica que el voltaje presente en un pin de salida puede ser alto o bajo dependiendo de la corriente de fuga. No es un '0' que es un estado digital.

Su adición de la resistencia de 100 kohm simplemente proporcionó una ruta para una cantidad suficiente de la corriente de fuga para garantizar que la salida fuera lo suficientemente baja como para cortar el FET.

Seríamuchomejorusarundispositivodigitalcomoel 74HCT595 registro de cambios de serie para lograr tu objetivo Con este dispositivo, puede cambiar en serie el estado requerido para cada uno de sus LED y luego transferir desde el almacenamiento a la salida utilizando la transición STCP. Necesitaría solo 3 pines MCU para hacer todo esto y con el nivel de OE bajo, obtendrá señales altas y bajas definidas para todos los canales.

Un potencial negativo es que el 74HCT595 no funciona a 9 V ... por lo tanto, esto debería ser alimentado desde la fuente de Arduino 5 V.

    
respondido por el Jack Creasey
0

CD4051 es un multiplexor / demultiplexor analógico (primera página de la hoja de datos), por lo que todas las demás salidas, excepto la seleccionada, se dejan flotando, esto es lo que hace un multiplexor / demultiplexor analógico.

El seleccionado actúa como conectado a la entrada con una resistencia, esto explica el comportamiento bidireccional, en realidad se usa el chip como demultiplexor para la salida de Arduino.

Para tener una buena resistencia al ruido, querría tener R3 lo más bajo posible.

El límite viene dado por la resistencia de E / S del multiplexor (que se indica en la hoja de datos como máximo 550 ohmios para VDD = 10V) que junto con R3 dividirá el voltaje de salida de Arduino en la salida del demultiplexor.

Un valor de 20 veces este valor para el R3 reducirá la tensión de salida del demux con un máximo de 5%, por lo que creo que un valor en torno a 10k es seguro y con un buen umbral de ruido.

Editar, no relacionado con la pregunta pero importante.

Veo que usas una fuente de 9v para el mux. La hoja de datos establece un nivel lógico alto mínimo de 7v para 10V VDD, por lo que podría funcionar pero no usa el mux en los parámetros correctos (la mayoría de las entradas seleccionadas están en duda).

Recomendaría suministrar el mux desde 5V donde el nivel de entrada mínimo alto es 3.5V compatible con la salida Arduino.

En este caso, la resistencia máxima de E / S es 1300ohm y el valor seguro para R3 estaría en algún lugar por encima de 26k.

    
respondido por el Dorian

Lea otras preguntas en las etiquetas