Encienda múltiples LEDs juntos usando el Microcontrolador PIC

1

Estoy usando un microcontrolador PIC18F2420 (puedo cambiar si es necesario). La tarea es conducir hasta 20 indicadores LED de nivel de potencia junto con algunos otros indicadores LED y amp; interruptores utilizando PIC. Me imagino conectando el ánodo de los 20 LED al riel (~ 30V) y conectando el cátodo de cada LED a un pin de E / S PIC. Pero esto significaría 20 pines de E / S reservados solo para esto, desperdicio de muchas E / S. El expansor de E / S externo agregaría costos y solo otorga 8 E / S más con IC como MCP23008. El costo y los bienes raíces de PCB es una consideración importante. Con los LED Charliplexing, solo puedo encender 1 LED a la vez. No quiero conducirlos en el ciclo de trabajo con brillo reducido ..

¿Cómo puedo encender hasta 20 LED junto con el mejor uso de los pines de E / S de PIC? ¿Realmente necesito un controlador con tantos pines que tengo que asignar 1 pin para cada LED solamente? El dibujo del esquema de conexión de LED sería útil para entender ...

No quiero encender / apagar todos los 20 LED al mismo tiempo que un grupo. Estos LED son indicadores de nivel y según la entrada del usuario, debo encender cada indicador LED de nivel siguiente, manteniendo todos Los indicadores de nivel inferior también están ENCENDIDOS, a medida que el usuario aumenta el nivel y apaga cada LED de nivel superior uno por uno, a medida que el usuario disminuye el nivel.

    
pregunta user101095

5 respuestas

3

Parece que estás creando algo así como un medidor de VU de audio. La forma más fácil de hacer esto sería crear una señal PWM, filtrarla y enviarla a un LM3914 controlador de pantalla de punto / barra. Estos impulsan diez LEDs cada uno y se pueden conectar en cascada al controlador tantos como sea necesario.

    
respondido por el Transistor
1

SI desea controlar los 30 LED's individualmente ...

Use un registro de desplazamiento con una capacidad de alta corriente (si lo necesita). Los registros de desplazamiento le permiten cambiar un número mayor de pines con solo un número pequeño de pines de entrada al serializar los datos en el chip y enviarlos al número de pines que están en el dispositivo en paralelo. Hay muchos tutoriales sobre esto, solo busque los registros de turnos. Lo bueno de los registros de desplazamiento es que puede conectarlos en cadena para usar solo unos pocos pines de salida para controlar un gran número de ellos, con el compromiso de la rapidez con la que puede actualizar las salidas.

¿A qué voltaje y corriente desea que funcionen los LED? Esto limitará si puede o no ejecutar los LED desde cualquier registro de desplazamiento convencional. Es posible que deba usar el registro de desplazamiento para controlar un MOSFET si desea controlar grandes LED.

Aquí hay un enlace a un registro de cambios de hundimiento de alta corriente común:

enlace

    
respondido por el Korozjin
1

Creo que tienes tres opciones:

(1) El LED directo controla, utilizando un PIC más grande, por ejemplo, el 18f4620 (con 35 pines de E / S). Hay LEDs súper brillantes, que también están bien iluminados con 2-3 mA.

(2) Igual que el anterior, pero use un transistor pequeño y barato como emisor-seguidor para cada LED, y LED normales (incluso de alta potencia).

(3) Como 'Korozjin escribió anteriormente, use registros de desplazamiento. El TPIC6B595 es muy bueno, pero el HC595, que es mucho más barato, también es suficiente (capaz de hundir / obtener un máximo de 8-9 mA / pin a la vez).

    
respondido por el IstvanK
0

Si todos los LED deben controlarse como un grupo, todos encendidos y apagados simultáneamente, solo necesita usar una salida del microcontrolador, pero es probable que necesite un transistor de controlador para manejar la corriente total del LED.

    
respondido por el Peter Bennett
0

PMIC llevó el chip del controlador que habla sobre I2C. Más de 24 canales son fáciles y comúnmente disponibles :)

    
respondido por el Matthew Pang

Lea otras preguntas en las etiquetas