Playing with a led strip…

luca 26/10/2013 15

Led strips have become very common for various uses: from interior and exterior lighting, to decoration… today I’ll explain you which types of strips are available and I’ll show a pratical example for controlling them using Arduino and C#.

Led strips

A led strip is made by a variable number of leds (usually in SMD package) soldered on a flexible PCB. Leds may be single color or RGB, able to produce (almost) all the colors in the light spectrum.

Led strips can also be waterproof, for outdoor use.

The degree of protection against the water is defined through the IP code; for example the code IP65 means a protection against water jets.

The strips include also the resistors needed to drive the leds; the power supply is usually 5 or 12V.

Addressable (digital) strips

Some strips are addressable or digital: those strips include some control chips that allow to drive each led independently from one another. Sometimes the chips are visibile, sometimes they are embedded in the leds:

It’s very important to distinguish the strips according to the number of independent leds: the cheapest ones use a single chip to drive 3 leds. Sometimes in the datasheets you may read about the number of pixel: a led strip with 30 leds/m and 10 pixels/m is a strip with only 10 chips, each of which drives 3 leds; so you can cut the strip only every 3 leds.

The most used control chips are: WS2801WS2811LPD8803, HL1606… the Arduino’s library I chose support all of them!

Arduino

Almost all the digital led strips use a simple serial protocol: you need only an Arduino digital PIN to send the data and its ground, connected to the ground of the power supply you use for the strip.

In my example, I’m going to use Arduino to supply the strip: this is ok only for a small number of leds: it’s always better to use an external power supply!

On the Internet you can find some libraries for Arduino; I chose fastspi (official site) because it supports many control chips, it’s easy to use and very efficient in the use of the (limited) hardware resources of Arduino. In the next page you’ll find the Arduino’s sketch and the GUI, developed in C#…

Pages: 1 2

15 Comments »

  1. schmurtz 04/03/2014 at 01:32 - Reply

    Thanks a lot for these concise and precise explanations. Thanks to share it with us, it works perfectly !

  2. Louis 04/03/2014 at 17:16 - Reply

    Hello,
    Thank you for your article, it helped me a lot.
    Is the 60Leds Restriction because of the Byte[] size package ?

    • luca 15/03/2014 at 10:50 - Reply

      Hi! Well no, I put that restriction because my led strip had 60 leds but of course you can increase it with a small change in the code!

  3. Massimiliano 31/12/2014 at 17:51 - Reply

    Complimenti Luca ottimo tutorial.

  4. Umberto 06/05/2016 at 09:26 - Reply

    Buondì Sig. Luca,
    Complimenti per il Suo lavoro.
    Avrei bisogno del Suo aiuto in merito ad un progetto per un segnapunti da pallavolo.
    Mi occorre realizzare 4 digit a 7 segmenti con pezzi di strisce led per essere visibili da almeno 15m.
    A tal proposito ho pensato di utilizzare dei led indirizzabili come quelli della Adafruit NeoPixel.
    Visto che la suddetta casa commercia segmenti da 8 led ognuno, ogni digit avrà 7×8=56 Led.
    In sintesi, riuscirei a creare un indirizzamento per così tanti led? C’è un limite? Grazie e Scusi la domanda ma sono un neofita di Arduino.
    Saluti, Umberto.

    • luca 16/05/2016 at 07:53 - Reply

      Salve Umberto, l’unica accortezza è sull’alimentatore usato per accendere tanti led: deve essere adeguato come corrente di uscita. Per risparmiare potrebbe anche utilizzare delle strisce non indirizzabili, pilotando ogni segmento con un apposito MOSFET.

  5. Umberto 06/05/2016 at 09:30 - Reply

    P.S. – Per farmi comprendere meglio, mi sono ispirato a questo articolo.

    http://rubyist.github.io/blog/2014/01/20/led-strips-as-7-segment-display/

    Grazie ancora.

  6. Marcello 08/05/2017 at 15:30 - Reply

    Ciao Luca,
    grazie per il tutoria.
    Una info: volendo controllare la scriscia direttamente con l’alimentazione di Arduino e non con fonte esterna, quanti led posso indirizzare al massimo se utilizzo per es. la striscia di Adafruit? Ci possono essere cali di intensità luminosa al crescere del numero di led con questa soluzione di alimentazione?

    • luca 09/05/2017 at 16:19 - Reply

      Ciao Marcello, purtroppo il chip di alimentazione di Arduino è in grado di fornire qualche centinaio di mA. Adafruit consiglia di stimare 60mA per ogni led, quindi non superarne una decina, altrimenti rischi di danneggiare il tuo Arduino.

  7. luigi 14/11/2017 at 10:23 - Reply

    Salve, buonasera; piacere sono Luigi volevo dirti che girando su internet mi sono imbattuto negli spettacoli di luci natalizi musicali che fanno in America cercando di capire i vari software e hardware che utilizzano, alla fine mi sono ritrovato difronte ad “arduino” e schede relè “solid state relay” 8 canali e ti allego la foto di quello che ho comprato. Ho acquistato tutto il necessario, utilizzando il software “vixen” ; facendo molte prove ho riscontrato un problema molto strano: colleganado le schede e le luci al relè 220v riesco a farle giocare, invece collegando le luci rgb a 12v le luci si presentano immobili e solo di un colore. Se è possibile un tuo aiuto vorrei capire il problema e se per lei non è un fastidio mandarmi i collegamenti delle schede ad arduino. Le dico anche credendo che arduino 1 non ce la faceva a far giocare le luci ho acquistato anche “arduino mega”.
    Aspetto una risposta al più presto,la ringrazio in anticipo.
    Buona serata.

    • luca 15/11/2017 at 10:22 - Reply

      Luigi è difficile capire cosa non vada, sicuramente una led strip rgb non può essere comandata con i relays. A seconda della led strip che ha acquistato (“smart”, quindi con controllo intergrato oppure da comandare in PWM da Arduino) servirà collegarla correttamente ad Arduino. Non conosco Vixen quindi le consiglio magari di rivolgersi a forum dedicati a questo software dove sicuramente la sapranno aiutare meglio.

  8. Phil 19/12/2017 at 10:34 - Reply

    Thanks for your sharing
    I have some 12v individual pixel led strips,
    could it be the same?
    http://addressable-led.com/Products/gs8208-12v-individual-pixel-led-strip.html

    • luca 20/12/2017 at 08:56 - Reply

      Hi Phil, no your led strip uses a different controller (GS8208)

  9. eredin 13/06/2018 at 11:36 - Reply

    This arduino code does not work with new fastled library andThe FastSPI_led is hard to find nowdays. Do you have a copy of this library? Or you know diffrent lib that will make it work without changeing the code for Arduino?

    • luca 17/06/2018 at 13:59 - Reply

      Hi, unfortunately not, the article was posted 5 years ago…

Leave A Response »

This website uses cookies to ensure you get the best experience on our website maggiori informazioni

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.

Chiudi