Qualche mese fa ho acquistato una striscia led non-addressable a pochi euro. Sono led RGB tipo WS5050 ad anodo comune, dove è possibile solamente pilotare i tre colori red, green e blue contemporaneamente per tutti i led della striscia.


Lo schema del circuito elettrico da realizzare è piuttosto semplice, con pochi componenti da aggiungere.

Come transistor va bene qualsiasi NPN di uso comune, considerando però l’assorbimento massimo della striscia led. Ho misurato quella in mio possesso e ogni colore non supera i 120mA di assorbimento, quindi un NPN come il 2n2222 va benissimo.
Come resistenza per saturare adeguatamente la base dovrebbe andar bene qualsiasi valore tra i 1000 Ohm e i 10k Ohm. Nel mio prototipo ho usato 1.2k Ohm, da 1/4 di W.
Per compensare eventuali picchi di assorbimento, possiamo aggiungere un piccolo condensatore capacitivo tra +5V e GND. Nel mio prototipo, ne ho messo uno da 2.2uF 16V che avevo a portata di mano.

Con l’accortezza di far accendere non tutti i led per volta, il consumo totale del tutto è inferiore ai 500mA delle porte USB del PC, quindi posso alimentare il tutto direttamente via USB senza dover ricorrere ad alimentatori esterni.
Lato software, con Arduino già configurato per gestire le board ESP8266, controllare la striscia led è piuttosto semplice e non richiede librerie esterne.
// ESP8266 WS5050 RGB Led Strip controlled
//
// Written by Michele <o-zone@zerozone.it> Pinassi
// Released under GPLv3 - No any warranty
//
// LOLIN WeMos D1 mini
//
// 0.0.1 - 12.10.2025 First release
//
// Firmware data
const char BUILD[] = __DATE__ " " __TIME__;
#define FW_NAME "ledstrip"
#define FW_VERSION "0.0.1"
#define LED_R D5
#define LED_G D6
#define LED_B D7
void setup() {
Serial.begin(115200);
delay(100);
// print firmware and build data
Serial.println();
Serial.println();
Serial.print(FW_NAME);
Serial.print(" ");
Serial.print(FW_VERSION);
Serial.print(" ");
Serial.println(BUILD);
// Led strip PINs as output
pinMode(LED_R, OUTPUT);
pinMode(LED_G, OUTPUT);
pinMode(LED_B, OUTPUT);
analogWrite(LED_R, 0);
analogWrite(LED_G, 0);
analogWrite(LED_B, 0);
}
void loop() {
analogWrite(LED_R,200);
delay(1000);
analogWrite(LED_R,0);
analogWrite(LED_G,200);
delay(1000);
analogWrite(LED_G,0);
analogWrite(LED_B,200);
delay(1000);
analogWrite(LED_B,0);
analogWrite(LED_R,0);
analogWrite(LED_G,0);
delay(2000);
}
Chiaramente questo è un primo test per verificare il corretto funzionamento della striscia. A questo punto si può aggiungere un controllo remoto via WiFi e HTTP, oppure collegando la striscia a una istanza Home Assistant (per Arduino, la libreria più completa è la arduino-home-assistant).
Buon divertimento!