Estoy usando un microcontrolador PIC18F2420 (puedo cambiar si es necesario). La tarea es controlar hasta 20 indicadores LED de nivel de potencia junto con algunos otros indicadores LED e interruptores mediante PIC. Puedo imaginarme conectando el ánodo de los 20 LED al riel (~ 30 V) 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 costo y solo brinda 8 E/S más con circuitos integrados como MCP23008. El costo y el espacio físico de la PCB son 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 los 20 LED junto con el mejor uso de los pines de E/S del PIC? ¿Realmente necesito un controlador con tantos pines que deba asignar 1 pin para cada LED solamente? El dibujo del esquema de conexión de los LED sería útil para comprenderlo.
No quiero encender/apagar los 20 LED al mismo tiempo como un grupo... Estos LED son indicadores de nivel y, según la entrada del usuario, necesito encender cada LED indicador de siguiente nivel manteniendo todos los indicadores de nivel inferior ENCENDIDO también, a medida que el usuario aumenta el nivel y apaga cada LED de nivel más alto uno a la vez, a medida que el usuario disminuye el nivel.
Parece que está 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 controlador de pantalla de puntos/barras LM3914 . Estos manejan diez LED cada uno y se pueden conectar en cascada al controlador tantos como sea necesario.
SI desea controlar los 30 LED individualmente...
Utilice un registro de desplazamiento con una capacidad de alta corriente (si lo necesita). Los registros de desplazamiento le permiten cambiar una mayor cantidad de pines con solo una pequeña cantidad de pines de entrada al serializar datos en el chip y enviarlos a la cantidad de pines que están en el dispositivo en paralelo. Hay muchos tutoriales sobre esto, solo busque registros de desplazamiento. Lo bueno de los registros de desplazamiento es que puede conectarlos en cadena para usar solo unos pocos pines de salida para controlar una gran cantidad de ellos, con la compensación de la rapidez con la que puede actualizar las salidas.
¿A qué voltaje y corriente desea ejecutar 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 LED grandes.
Aquí hay un enlace a un registro de desplazamiento de hundimiento de alta corriente común:
Creo que tienes tres opciones:
(1) El control directo del LED, utilizando un PIC más grande, por ejemplo, el 18f4620 (que tiene 35 pines de E/S). Hay LED superbrillantes, estos también se iluminan bien con 2-3 mA.
(2) Igual que el anterior, pero use un transistor pequeño y barato como seguidor de emisor para cada LED y LED normales (incluso de alta potencia).
(3) Como escribió 'Korozjin' arriba, use registros de desplazamiento. El TPIC6B595 es muy bueno, pero el HC595, mucho más económico, también es suficiente (capaz de disipar/generar un máximo de 8-9 mA/pin a la vez).
Si todos sus LED deben controlarse como un grupo, todos encendidos y apagados simultáneamente, solo necesita usar una salida del microcontrolador, pero probablemente necesitará un transistor controlador para manejar la corriente total del LED.
Chip de controlador led PMIC que habla sobre I2C. Más de 24 canales están disponibles fácil y comúnmente :)
Marla
Transeúnte
usuario101095
usuario101095
jwsc
usuario101095