Beispiel RGB LED Strip 12 Volt Variante mit einer Leitung pro Farbe

Dependencies:   mbed

Fork of RGBLEDStrip by smd.iotkit1.ch

https://developer.mbed.org/media/cache/components/components/img_0482.jpg.200x200_q85.jpg

LED Strips (RGB LED Streifen) eröffnen neue Möglichkeiten für die Dekorative Beleuchtungen von Gegenständen und Räumen.

LED Strips werden in Laufmetern mit einer definierten Anzahl von RGB LED's pro Meter verkauft.

Es gibt unterschiedliche Arten der Ansteuerung, alle LED einer Farbe, jedes RGB LED einzeln.

Im aktuellen Beispiel verwenden wird ein 12V LED Strip mit einem Anschluss pro Farbe. Diese brauchen einen Verstärker, z.B. MOSFET.

Die LED Strip wird an den FET D5-D7) Header (+ ist oben) angeschlossen und benötigen für jede Farbe ein DigitalOut (An/Aus) oder PwmOut (Dimming).

Anwendungen

  • Raumbeleuchtung
  • Dekorative Ausleuchtung von Gegenständen

main.cpp

Committer:
marcel1691
Date:
2015-03-23
Revision:
0:0579a7c0500f
Child:
1:df3810debdde

File content as of revision 0:0579a7c0500f:

/** RGB LED Strip (SPI)
*/
#include "mbed.h"

SPI spi(D11, NC, D13); // mosi, miso, sclk

/** 3 x 3 Werte */
unsigned int strip[9];

void writeLED()
{
    for ( int p = 0; p < 9; p++ )
        spi.write( strip[p] );
}

void clearLED()
{
    for ( int p = 0; p < 9; p++ ) 
    {
        strip[p] = 0;
        spi.write( strip[p] );
    }
}

int main()
{
    printf( "LED Strip Test \n" );
     
    spi.format( 8,0 );
    spi.frequency( 800000 );
    
    while (true) 
    {
        // Gruen, Rot, Blau - von Dunkel bis Hell
        for ( int i = 0; i < 128; i+=32 )
        {
                // LED 1
                strip[0] = i;
                strip[1] = 0;
                strip[2] = 0;
                // LED 2
                strip[3] = 0;
                strip[4] = i;
                strip[5] = 0;
                // LED 3
                strip[6] = 0;
                strip[7] = 0;
                strip[8] = i;
                writeLED();
                wait( 0.1 );
        }
        wait( 1.0 );
        clearLED();

        // Lauflicht (5 x 4 Zustaende)
        int p = 0;
        for ( int i = 0; i < 20; i++ )
        {
            p++;
            switch  ( p )
            {
                case 1:
                    strip[0] = strip[1] = strip[2] = 32;
                    break;
                case 2:
                    strip[0] = strip[1] = strip[2] = 0;
                    strip[3] = strip[4] = strip[5] = 32;
                    break;
                case 3:
                    strip[3] = strip[4] = strip[5] = 0;
                    strip[6] = strip[7] = strip[8] = 32;
                    break;
                default:
                    clearLED();
                    p = 0;
                    break;
            }
            writeLED();
            wait( 0.2 );                    
        }
    }
}