Estoy planeando construir una matriz LED simple con un Arduino y algunos registros de desplazamiento 74HC595. Sin embargo, mi Ardiuno emite 5 V a los registros que pasarán esos 5 V. ¿Cómo y en qué parte de la línea reduzco este voltaje a 3,3 V?
Editar: Encontré esto después de un tiempo de buscar en Google. ¿Es una resistencia frente a cada LED todo lo que necesito (que necesito de todos modos)?
(5–3.3) / 0.02 = 85 ohm
para un LED de 20 mA 3,3 V?
Edición 2: ¿Puedo proporcionar 3 V desde una fuente diferente al pin Vcc del registro de desplazamiento, pero enviar una lógica de 5 V en los pines seriales? Supongo que eso no funcionará, pero solo quería volver a verificar.
Hay una serie de opciones, la mayoría de ellas discutidas en esta publicación . Dado que la comunicación es una forma, puede usar:
Hay registros de desplazamiento que funcionan con 3,3 V: según la cantidad de líneas que necesite, una solución más fácil podría ser cambiar la salida de Arduino a 3,3 V y alimentarla a un registro de desplazamiento de 3,3 V. Esto probablemente (nuevamente, dependiendo de su configuración) en menos líneas para cambiar de nivel.
EDITAR: Sí, necesitará resistencias limitadoras de corriente para sus LED, sin embargo, ¡divisor de voltaje! = una sola resistencia. El divisor de voltaje se ve así:
simular este circuito : esquema creado con CircuitLab
EDIT2 : Por lo general, no. Debe leer la hoja de datos del registro de desplazamiento que planea usar sobre sus diversos voltajes máximos. PD: Cuando dices "pines seriales" no te refieres a los Serial TX
y Serial RX
, ¿verdad? Por lo general, uno controla los registros de desplazamiento utilizando pines de E/S digitales de propósito general. Puede usar pines seriales para dos de ellos, pero generalmente necesita más pines para controlar un registro de desplazamiento (generalmente al menos tres en el caso de 74HC595) . El punto es que 74HC595 se maneja a través del protocolo SPI , no RS-232
Como casi todos los circuitos integrados sin tolerancias de sobrevoltaje especialmente diseñadas, el nivel de voltaje de entrada del 74HC595 tiene un máximo de VCC o VCC + 0.3v. Alimentar el 74HC595 desde 3v está bien, pero conectar directamente las salidas de 5v del Arduino al 74HC595 a 3v no será bueno. Un cambio de nivel como @angelatlarge ha demostrado que funcionaría.
Dicho esto, la otra cosa es que el IC no pasa el voltaje de las entradas a las salidas. Si bien su diagrama lógico no muestra ningún transistor/mosfet utilizado, tiene salidas amortiguadas. Las salidas están referenciadas a VCC y GND del 74HC595. Por ejemplo, a 4.5v VCC, el nivel lógico alto solo necesita ser 2.4v (típico) para ser un nivel alto, pero la salida seguirá siendo 4.32v típica.
Entonces, puede alimentar el 74HC595 desde 3v, usar un cambiador de voltaje para llevar las entradas al nivel de 3v y conectar sus LED de esa manera. Pero aún querría resistencias en los LED para controlar cualquier corriente.
De hecho, usar las resistencias hará que alimentar el 74HC595 a 3v Y usar el divisor de voltaje sea discutible. Las resistencias deben calcularse de la misma manera que lo haría si estuviera conectando directamente una resistencia led + a una batería.
Tenga en cuenta este esquema:
Alimentado desde 5v, teniendo en cuenta que cada LED, como la mayoría de los LED estándar, tendrá entre 2 y 3,5 voltios a una corriente directa de 20 mA, lo que significa que habrá un exceso de 3 a 1,5 V. Las resistencias, cuando se calculan para una (voltaje de fuente de 5v - caída de voltaje directo de LED) / corriente de LED, "tomarán" el voltaje remanente, mientras configuran esa corriente. Lo mismo se aplica a LED Matrix en el 74HC595 también, excepto que la ubicación de la resistencia variaría y todo. No nos has dicho qué tipo de matriz quieres.
5.0V - Fvdrop = 2.4-3.5
?
angelagrande
Maciej Swic
angelagrande