Conducción de LED de 3,3 V con un Arduino y un registro de desplazamiento

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 ohmpara 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.

Transeúnte señala algo útil: asumí que tiene algún tipo de sistema LED que realmente no quiere ver nada por encima de 3.3V. Creo que lo que dice Passerby es que tal vez hubo un error al leer las especificaciones de los LED. Podría valer la pena publicar el enlace a los LED como sugiere Passerby.
@angelatlarge farnell.com/datasheets/1639232.pdf Además, el 74HC595 fue solo un ejemplo, ya que no puede soportar la carga de 8 de esos LED al mismo tiempo. Mirando un STP16CP05MTR
Bien. Por lo tanto, 3,3 V no es el voltaje máximo que se suministra al LED, sino que es la caída de voltaje en el LED cuando conduce 20 mA. Entonces, al final, no necesitará ningún cambio de voltaje. Sin embargo, tenga en cuenta que tiene un voltaje inverso máximo de 5V.

Respuestas (2)

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:

  • Divisores de tensión: baratos y fáciles: 2 resistencias. No puede proporcionar fuentes de voltaje rígidas a menos que pierda mucha energía a través de ellas
  • Un diodo con un circuito de resistencia. Igual que el anterior
  • Cambiador de nivel (algo así como un 74LVC245)

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í:

esquemático

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 TXy 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

Gracias, consideraré estos. ¿Puedes ver mi edición por favor?
Sí, no quise decir serial TX/RX pero gracias por la aclaración :)
Entonces, entiendo que una resistencia limitadora de corriente no es un divisor de voltaje, pero ¿eso también significa que una resistencia limitadora de corriente en sí misma no es suficiente como esta? led.linear1.org/…
La respuesta es "depende" de la fuente de alimentación y de su LED. Suponiendo que su LED morirá si ve 5V a través de él, entonces el circuito al que se conecta depende de manera crucial de la fuente de alimentación (en este caso, una batería) que no mantiene 5V cuando se obtiene corriente.
@angelatlarge El 74HC595 no es SPI, la multitud de Arduino solo usa una implementación similar a SPI.
@Passerby: ¿Quieres decir porque hay una línea STCP separada? Supongo que estaba pensando en las líneas SHCP y DS como SPI. Tienes razón, probablemente debería haber dicho "como SPI".
@angelatlarge Quiero decir porque lo único que le gusta a SPI es que usan 8 bits y una línea de reloj. Es una similitud superficial.
Supongo que el grado de similitud con SPI depende de qué otras alternativas se consideren relevantes. Entre serial, 74HC595, I2C y (unidireccional, sin SS) SPI, 74HC595 es muy similar a SPI, ¿no?

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:ingrese la descripción de la imagen aquí

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.

Cuando dices "estará en cualquier lugar entre", ¿quieres decir 5.0V - Fvdrop = 2.4-3.5?
@angelatlarge Al revés. el 2,4 a 3,5 es la caída hacia adelante promedio de un LED de cualquier color dado. Obviamente rojo/naranja son más 2.4-2.6 mientras que azul es 3.2 a 3.4, blanco 3.3 a 3.5. Di un número general junto con la fórmula real. Aunque lo aclare un poco.
Pensé que los leds rojos regulares tenían V hacia adelante por debajo de 2V, ¿no? Eso es lo que tiene wikipedia de todos modos.
Decir ah. No he usado leds rojos en algunos años. Tienes razón. @angelatlarge