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?
- enciende solo un subconjunto de luces elegido a la vez, o
- ¿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!