Suministro de energía a una tira de LED de 5V

3

Estoy trabajando en un proyecto para crear un espejo infinito basado en un Tutorial de Instructables . En lugar de la tira de LED analógica más grande que usa el autor, opté por una tira de LED direccionable más corta que se ejecuta en 5V .

Pensé que sería capaz de ejecutarlo desde el puerto de 5 V en el Arduino, pero parece que ese no es el caso. Entiendo que la tira puede dibujar hasta 3.3 A y que el Arduino solo puede suministrar ~ 0.5 A, pero pensé que funcionaría bien si solo encendiera algunas luces (cada una dibuja ~ 0.05A). Sin embargo, muchas luces programo el Arduino para que se encienda, siempre veo ~ 10 luces aleatorias con un sesgo hacia el rojo.

El hecho de que las luces usualmente son rojas y hay alrededor de 10 de ellas trabajando en cualquiera de ellas demuestra que se trata de un problema de energía (porque el rojo es una potencia menor y 10 × 0.05A = 0.5A).

¿Alguien tiene alguna idea de cómo puedo?

  1. enciende solo un subconjunto de luces elegido a la vez, o
  2. ¿suministra la alimentación adecuada a los LED (preferiblemente de una batería)?

Aquí está el código que estoy usando a continuación, en la posibilidad de que cometí un error estúpido:

/* LedStripGradient: Example Arduino sketch that shows
 * how to control an Addressable RGB LED Strip from Pololu.
 *
 * To use this, you will need to plug an Addressable RGB LED strip from Pololu
 * into pin 12.  After uploading the sketch, you should see a pattern on the LED
 * strip that fades from green to pink and also moves along the strip. */

#include <PololuLedStrip.h>

// Create an ledStrip object and specify the pin it will use.
PololuLedStrip<12> ledStrip;

// Create a buffer for holding the colors (4 bytes per color).
#define LED_COUNT 72
rgb_color colors[LED_COUNT];

void setup() {
}

void loop() {
  // Update the colors.
  byte time = millis() >> 2;
  for(uint16_t i = 0; i < LED_COUNT; i++)
  {
    byte x = time - 8*i;
    // colors[i] = (rgb_color){ x, 255 - x, x };
    colors[i] = (rgb_color){ 0, 0, 0 };
  }
  colors[0] = (rgb_color){ 0, 0, 255 };
  colors[1] = (rgb_color){ 0, 255, 0 };
  colors[2] = (rgb_color){ 255, 0, 0 };

  // Write the colors to the LED strip.
  ledStrip.write(colors, LED_COUNT);

  delay(100);
}

¡Gracias!

    
pregunta Zaz

1 respuesta

2

Si bien no es posible encender todos los LED con un brillo máximo sin energía adicional, el problema principal fue que no me había dado cuenta de que Pololu vende 2 tiras de LED de 0,5 m casi idénticas, y estaba leyendo las instrucciones para la otra variante .

Ahora que estoy enviando instrucciones usando el protocolo correcto, todo funciona bien siempre y cuando limite la cantidad de LED que enciendo.

Perdón por el error.

    
respondido por el Zaz

Lea otras preguntas en las etiquetas