5 by 40 multi-color LED display with digital/magic LED strips http://www.youtube.com/watch?v=Txduzhp29fQ

Dependencies:   mbed

main.cpp

Committer:
LNSound
Date:
2011-11-06
Revision:
1:77d32b0c953c
Parent:
0:a7ec991a632c

File content as of revision 1:77d32b0c953c:

#include "mbed.h"
PwmOut fade(p22); // voor faden van leds, not used.
DigitalOut latch(p19);
DigitalOut data(p20);
DigitalOut clk(p18);
DigitalOut s1(p17);
DigitalOut s2(p16);
DigitalOut s3(p15);
DigitalOut s4(p14);
DigitalOut s5(p13);

/*
Bit #     Meaning
7     Latchable. A 1 here makes the byte latachable, otherwise the byte is considered void and wont latch into the LED.
6     Double speed fading. See the S pin description. If set  the LED will fade at double speed. Once on S going high and agan when S goes low.
5     Blue 1
4     Blue 0
3     Red 1
2     Red 0
1     Green 1
0     Green 0
*/

/*Timing specifics:
LED PWM frequency is 500Hz.
Clock ON pulse must be > 300nSec.
Latch should be > 1uSec.
There is a 100nSec delay between latch into each LED and latch OUT of each LED.
After setting the datapin, you must wait at least 250nSec for each LED in your strip BEFORE taking clock high. 100 LEDS = 100 x 250nSec delay between sending last bit of data and taking latch high
*/

/* Color values: 
Blue : 0x81
Red : 0x84
Green: 0x94
Pink : 0x8D
White: 0x95

Method of controlling.

First activate line 1 to 5 using s1 to s5. s1=0 -> line is active s1=1 -> line is deactivated.
one LED is one RGB pixel. Send a value using sendbyte(), then use send_position() to activate the led on the chosen position. 

Want to send a letter?
e.g. A(0,0), this means letter A to position 0 and color RED, RED is starting color. What you type behind the first brace is the position, to change the color type the difference with color value and red. This will be added in the function.
Starting position of all letters is the third led on the strip, this is done because of building purposes.
*/

DigitalOut myled(LED1);


void sendByte(unsigned char it) // decoderen van een byte naar serieel uitsturen
{
char x;
clk=0;

    for(x=0; x<8; x++)
    {
        if(128 & it)        data=1;  // 128 om te kijken of de data bedoelt is om te latchen, zo niet wordt er niks uitgestuurd
        else data=0;
        it = it<<1;
        wait_us(0.1); // 250x het aantal leds, dan in ns voor te zorgen dat het signaal wel het einde van de strip bereikt.
        clk=1;
        wait_us(0.3); // vereiste pulsbreedte van de clk.
        clk=0;
    }    

}

void clear()
{   
 int i;
 for(i=0 ; i < 80 ; i++)// i< het aantal leds op de strip
        {
            sendByte(0); 
        }    
}

void latchen(){

latch=1;
wait_us(0.001);
latch=0;
}

void send_position(int x){
int i;
for(i=0 ; i < x ; i++) // doorschuiven naar positie x
        {
            sendByte(0); 
        }    
        latchen(); // die plaats aan zetten.
        clear();
     


}

void erase(){
int x = 85;

 s1=0;
       s2=0;
       s3=0;
       
       s4=0;
       s5=0;
       
   for(int i=0 ; i < x ; i++) // alle leds uitzetten
        {
            sendByte(128);
             
        }
        latchen();
       s1=1;
       s2=1;
       s3=1;
       s4=1;
       s5=1;

}

void move(int x)
{
 s1=0;
       s2=0;
       s3=0;
       
       s4=0;
       s5=0;
       
   for(int i=0 ; i < x ; i++) // x aantal leds uitzetten.
        {
            sendByte(128);
             
        }
        latchen();
            
      
       s1=1;
       s2=1;
       s3=1;
       s4=1;
       s5=1;

}

void punt(int pos, int kleur)
{

 s5=0;
        sendByte(0x84+kleur); 
        send_position(4+pos);
        
         s5=1;

}

void Z(int pos, int kleur)
{

         s1=0;
         sendByte(0x84+kleur); 
        send_position(2+pos);
         sendByte(0x84+kleur); 
        send_position(3+pos);
         sendByte(0x84+kleur); 
        send_position(4+pos);
        sendByte(0x84+kleur); 
        send_position(5+pos);
         sendByte(0x84+kleur); 
        send_position(6+pos);
        s1=1;
        s2=0;
         sendByte(0x84+kleur);
        send_position(5+pos);
       
        s2=1;
        s3=0;
        sendByte(0x84+kleur);
        send_position(4+pos);
        s3=1;
        s4=0;
        sendByte(0x84+kleur);
        send_position(3+pos);
        s4=1;
        s5=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(3+pos);
        sendByte(0x84+kleur); 
        send_position(4+pos);
        sendByte(0x84+kleur); 
        send_position(5+pos);
        sendByte(0x84+kleur); 
        send_position(6+pos);
         s5=1;
        
     /// ***** Eind Z ***/



}

void Y(int pos, int kleur)
{

        s1=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(6+pos);
        s1=1;
        s2=0;
        sendByte(0x84+kleur); 
        send_position(3+pos);
        sendByte(0x84+kleur); 
        send_position(5+pos);
        s2=1;
        s3=0;
        sendByte(0x84+kleur); 
        send_position(4+pos);
        s3=1;
        s4=0;
        sendByte(0x84+kleur); 
        send_position(4+pos);
        s4=1;
        s5=0;
        sendByte(0x84+kleur); 
        send_position(4+pos);
        s5=1;
        
      ///*** Eind Y **** ///


}

void X(int pos, int kleur)
{

        s1=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(6+pos);
        s1=1;
        s2=0;
        sendByte(0x84+kleur); 
        send_position(3+pos);
        sendByte(0x84+kleur); 
        send_position(5+pos);
        s2=1;
        s3=0;
        sendByte(0x84+kleur); 
        send_position(4+pos);
        s3=1;
        s4=0;
        sendByte(0x84+kleur); 
        send_position(3+pos);
        sendByte(0x84+kleur);
        send_position(5+pos);
        s4=1;
        s5=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur);
        send_position(6+pos);
        s5=1;
        
      ///*** Eind X **** ///


}

void W(int pos, int kleur)
{

        s1=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(6+pos);
        s1=1;
        s2=0;
        sendByte(0x84+kleur);
        send_position(2+pos);
        sendByte(0x84+kleur);
        send_position(6+pos);
        s2=1;
        s3=0;
        sendByte(0x84+kleur);
        send_position(2+pos);
        sendByte(0x84+kleur);
        send_position(6+pos);
        s3=1;
        s4=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur);
        send_position(4+pos);
        sendByte(0x84+kleur); 
        send_position(6+pos);
        s4=1;
        s5=0;
        sendByte(0x84+kleur); 
        send_position(3+pos);
        sendByte(0x84+kleur);
        send_position(5+pos);
        s5=1;
        
     /// ***** Eind W ***/


}

void V(int pos, int kleur)
{

        s1=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(6+pos);
        s1=1;
        s2=0;
        sendByte(0x84+kleur);
        send_position(2+pos);
        sendByte(0x84+kleur);
        send_position(6+pos);
        s2=1;
        s3=0;
        sendByte(0x84+kleur);
        send_position(2+pos);
        sendByte(0x84+kleur);
        send_position(6+pos);
        s3=1;
        s4=0;
        sendByte(0x84+kleur); 
        send_position(3+pos);
        sendByte(0x84+kleur);
        send_position(5+pos);
        s4=1;
        s5=0;
        sendByte(0x84+kleur);
        send_position(4+pos);
        s5=1;
        
     /// ***** Eind V ***/


}
void U(int pos, int kleur)
{

        s1=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(5+pos);
        s1=1;
        s2=0;
        sendByte(0x84+kleur);
        send_position(2+pos);
        sendByte(0x84+kleur);
        send_position(5+pos);
        s2=1;
        s3=0;
        sendByte(0x84+kleur);
        send_position(2+pos);
        sendByte(0x84+kleur);
        send_position(5+pos);
        s3=1;
        s4=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur);
        send_position(5+pos);
        s4=1;
        s5=0;
        sendByte(0x84+kleur); 
        send_position(3+pos);
        sendByte(0x84+kleur);
        send_position(4+pos);
        s5=1;
        
     /// ***** Eind U ***/

}

void T(int pos, int kleur)
{
      s1=0;
      sendByte(0x84+kleur); 
      send_position(2+pos);
      sendByte(0x84+kleur); 
      send_position(3+pos);
      sendByte(0x84+kleur); 
      send_position(4+pos);
      sendByte(0x84+kleur); 
      send_position(5+pos);;
      sendByte(0x84+kleur); 
      send_position(6+pos);
      s1=1;
      s2=0;
      sendByte(0x84+kleur); 
      send_position(4+pos);
      s2=1;
      s3=0;
      sendByte(0x84+kleur); 
      send_position(4+pos);
      s3=1;
      s4=0;
      sendByte(0x84+kleur); 
      send_position(4+pos);
      s4=1;
      s5=0;
      sendByte(0x84+kleur); 
      send_position(4+pos);
      s5=1;
       

///** Einde T ***/

}


void S(int pos, int kleur)
{

        s1=0;
        sendByte(0x84+kleur); 
        send_position(3+pos);
        sendByte(0x84+kleur); 
        send_position(4+pos);
        sendByte(0x84+kleur); 
        send_position(5+pos);
        s1=1;
        s2=0;
        sendByte(0x84+kleur);
        send_position(2+pos);
        s2=1;
        s3=0;
        sendByte(0x84+kleur);
        send_position(3+pos);
        sendByte(0x84+kleur);
        send_position(4+pos);
        s3=1;
        s4=0;
        sendByte(0x84+kleur);
        send_position(5+pos);
        s4=1;
        s5=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(3+pos);
        sendByte(0x84+kleur);
        send_position(4+pos);
        s5=1;
        
     /// ***** Eind S ***/



}
void R(int pos, int kleur)
{

        s1=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(3+pos);
        sendByte(0x84+kleur); 
        send_position(4+pos);
        s1=1;
        s2=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(4+pos);
        s2=1;
        s3=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(3+pos);
        s3=1;
        s4=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur);
        send_position(4+pos);
        s4=1;
        s5=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur);
        send_position(5+pos);
        s5=1;
        
      ///*** Eind R **** ///

}

void Q(int pos, int kleur)
{

        s1=0;
        sendByte(0x84+kleur); 
        send_position(3+pos);
        sendByte(0x84+kleur); 
        send_position(4+pos);
        s1=1;
        s2=0;
        sendByte(0x84+kleur);
        send_position(2+pos);
        sendByte(0x84+kleur);
        send_position(5+pos);
        s2=1;
        s3=0;
        sendByte(0x84+kleur);
        send_position(2+pos);
        sendByte(0x84+kleur);
        send_position(4+pos);
        sendByte(0x84+kleur);
        send_position(5+pos);
        s3=1;
        s4=0;
        sendByte(0x84+kleur); 
        send_position(3+pos);
        sendByte(0x84+kleur); 
        send_position(4+pos);
        sendByte(0x84+kleur);
        send_position(5+pos);
        s4=1;
        s5=0;
        sendByte(0x84+kleur); 
        send_position(6+pos);
        s5=1;
        

        
      ///*** Eind Q **** ///



}

void P(int pos, int kleur)
{

        s1=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(3+pos);
        sendByte(0x84+kleur); 
        send_position(4+pos);
        s1=1;
        s2=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(4+pos);
        s2=1;
        s3=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(3+pos);
        sendByte(0x84+kleur);
        send_position(4+pos);
        s3=1;
        s4=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        s4=1;
        s5=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        s5=1;
        
      ///*** Eind P **** ///


}

void O(int pos, int kleur)
{
        s1=0;
        sendByte(0x84+kleur); 
        send_position(3+pos);
        sendByte(0x84+kleur); 
        send_position(4+pos);
        s1=1;
        s2=0;
        sendByte(0x84+kleur);
        send_position(2+pos);
        sendByte(0x84+kleur);
        send_position(5+pos);
        s2=1;
        s3=0;
        sendByte(0x84+kleur);
        send_position(2+pos);
        sendByte(0x84+kleur);
        send_position(5+pos);
        s3=1;
        s4=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur);
        send_position(5+pos);
        s4=1;
        s5=0;
        sendByte(0x84+kleur); 
        send_position(3+pos);
        sendByte(0x84+kleur);
        send_position(4+pos);
        s5=1;
        
     /// ***** Eind O ***/


}

void N(int pos, int kleur)
{
        s1=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(6+pos);
        s1=1;
        s2=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(3+pos);
        sendByte(0x84+kleur); 
        send_position(6+pos);
        s2=1;
        s3=0;   
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(4+pos);
        sendByte(0x84+kleur); 
        send_position(6+pos);
        s3=1;
        s4=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(6+pos);
        sendByte(0x84+kleur); 
        send_position(5+pos);
        s4=1;
        s5=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(6+pos);
        s5=1;
        
      ///*** Eind  N**** ///



}
void M(int pos, int kleur)
{

      s1=0;
      sendByte(0x84+kleur); 
      send_position(2+pos);
      sendByte(0x84+kleur); 
      send_position(6+pos);
      s1=1;
      s2=0;
      sendByte(0x84+kleur); 
      send_position(2+pos);
      sendByte(0x84+kleur); 
      send_position(3+pos);
      sendByte(0x84+kleur); 
      send_position(5+pos);
      sendByte(0x84+kleur); 
      send_position(6+pos);
      s2=1;
      s3=0;   
      sendByte(0x84+kleur); 
      send_position(2+pos);
      sendByte(0x84+kleur); 
      send_position(4+pos);
      sendByte(0x84+kleur); 
      send_position(6+pos);
      s3=1;
      s4=0;
      s5=0;
      sendByte(0x84+kleur); 
      send_position(2+pos);
      sendByte(0x84+kleur); 
      send_position(6+pos);
      s4=1;
      s5=1;
        
      ///*** Eind  M**** ///



}


void L(int pos, int kleur)
{
        s1=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        s1=1;
        s2=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        s2=1;
        s3=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        s3=1;
        s4=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        s4=1;
        s5=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(3+pos);
        sendByte(0x84+kleur); 
        send_position(4+pos);
        sendByte(0x84+kleur); 
        send_position(5+pos);
        s5=1;
        
      ///*** Eind L **** ///

}

void K(int pos, int kleur)
{

        s1=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(5+pos);
        s1=1;
        s2=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur);
        send_position(4+pos);
        s2=1;
        s3=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(3+pos);
        s3=1;
        s4=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(4+pos);
        s4=1;
        s5=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(5+pos);
        s5=1;
        
      ///*** Eind K **** ///
}

void J(int pos, int kleur)
{

        s1=0;
        sendByte(0x84+kleur); 
        send_position(3+pos);
        sendByte(0x84+kleur); 
        send_position(4+pos);
        s1=1;
        s2=0;
        sendByte(0x84+kleur); 
        send_position(4+pos);
        s2=1;
        s3=0;
        sendByte(0x84+kleur); 
        send_position(4+pos);
        s3=1;
        s4=0;
        sendByte(0x84+kleur); 
        send_position(4+pos);
        s4=1;
        s5=0;
        sendByte(0x84+kleur);
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(3+pos);
        s5=1;

///** Einde J ***/
}
void I(int pos, int kleur)
{

        s1=0;
        sendByte(0x84+kleur); 
        send_position(3+pos);
        sendByte(0x84+kleur); 
        send_position(4+pos);
        sendByte(0x84+kleur); 
        send_position(5+pos);
        s1=1;
        s2=0;
        sendByte(0x84+kleur); 
        send_position(4+pos);
        s2=1;
        s3=0;
        sendByte(0x84+kleur); 
        send_position(4+pos);
        s3=1;
        s4=0;
        sendByte(0x84+kleur); 
        send_position(4+pos);
        s4=1;
        s5=0;
        send_position(3+pos);
        sendByte(0x84+kleur); 
        send_position(4+pos);
        sendByte(0x84+kleur); 
        send_position(5+pos);
//** Einde I ***/
}



void H(int pos, int kleur)
{     
      //// *** Begin H *** // 
       s1=0;
       sendByte(0x84+kleur); 
       send_position(2+pos);
       sendByte(0x84+kleur); 
       send_position(5+pos);
       s1=1;
       s2=0;
       sendByte(0x84+kleur); 
       send_position(2+pos);
       sendByte(0x84+kleur);
       send_position(5+pos);
       s2=1;
       s3=0;
       sendByte(0x84+kleur); 
       send_position(2+pos);
       sendByte(0x84+kleur); 
       send_position(3+pos);
       sendByte(0x84+kleur); 
       send_position(4+pos);
       sendByte(0x84+kleur); 
       send_position(5+pos);
       s3=1;
       s4=0;
       sendByte(0x84+kleur); 
       send_position(2+pos);
       sendByte(0x84+kleur); 
       send_position(5+pos);
       s4=1;
       s5=0;
       sendByte(0x84+kleur); 
       send_position(2+pos);
       sendByte(0x84+kleur); 
       send_position(5+pos);
       s5=1;
       
       ///*** Eind H ***//
}  
void G(int pos, int kleur)
{
       myled=1;
       s1=0;
       sendByte(0x84+kleur);
       send_position(2+pos);
       sendByte(0x84+kleur);
       send_position(3+pos);
       sendByte(0x84+kleur); 
       send_position(4+pos);
       sendByte(0x84+kleur); 
       send_position(5+pos);
       s1=1;
       s2=0;
       sendByte(0x84+kleur);
       send_position(2+pos);
       s2=1;
       s3=0;
       sendByte(0x84+kleur); 
       send_position(2+pos);
       sendByte(0x84+kleur); 
       send_position(4+pos);
       sendByte(0x84+kleur); 
       send_position(5+pos);
       s3=1;
       s4=0;
       sendByte(0x84+kleur); 
       send_position(2+pos);
       sendByte(0x84+kleur); 
       send_position(5+pos);
       s4=1;
       s5=0;
       sendByte(0x84+kleur); 
       send_position(2+pos);
       sendByte(0x84+kleur); 
       send_position(3+pos);
       sendByte(0x84+kleur); 
       send_position(4+pos);
       sendByte(0x84+kleur); 
       send_position(5+pos);
       s5=1;
       
       /// *** Eind G *** /
        
}   
      
void F(int pos, int kleur){

        s1=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(3+pos);
        sendByte(0x84+kleur);  
        send_position(4+pos);
        sendByte(0x84+kleur);  
        send_position(5+pos);
        s1=1;
        s2=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        s2=1;
        s3=0;
        sendByte(0x84+kleur);
        send_position(2+pos);
        sendByte(0x84+kleur);
        send_position(3+pos);
        sendByte(0x84+kleur); 
        send_position(4+pos);
        sendByte(0x84+kleur); 
        send_position(5+pos);
        s3=1;
        s4=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        s4=1;
        s5=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        s5=1;
     
      /// **** Eind F ****///
      
}      
      
void E(int pos, int kleur)
{
       
        s1=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(3+pos);
        sendByte(0x84+kleur); 
        send_position(4+pos);
        sendByte(0x84+kleur); 
        send_position(5+pos);
        s1=1;
        s2=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        s2=1;
        s3=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(3+pos);
        sendByte(0x84+kleur); 
        send_position(4+pos);
        sendByte(0x84+kleur); 
        send_position(5+pos);
        s3=1;
        s4=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        s4=1;
        s5=0;
        sendByte(0x84+kleur); 
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(3+pos);
        sendByte(0x84+kleur); 
        send_position(4+pos);
        sendByte(0x84+kleur); 
        send_position(5+pos);
        s5=1;
     
       ///*** Eind E ***///
}       
void D(int pos, int kleur)
{
        s1=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(3+pos);
        sendByte(0x84+kleur); 
        send_position(4+pos);
        s1=1;
        s2=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur);
        send_position(5+pos);
        s2=1;
        s3=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(5+pos);
        s3=1;
        s4=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(5+pos);
        s4=1;
        s5=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur); 
        send_position(3+pos);
        sendByte(0x84+kleur); 
        send_position(4+pos);
        s5=1;
       
      //**** Eind D **** /// 
}      

void C(int pos, int kleur)
{
        s1=0;
        sendByte(0x84+kleur); 
        send_position(3+pos);
        sendByte(0x84+kleur); 
        send_position(4+pos);
        sendByte(0x84+kleur); 
        send_position(5+pos);
        s1=1;
        s2=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        s2=1;
        s3=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        s3=1;
        s4=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        s4=1;
        s5=0;
        sendByte(0x84+kleur); 
        send_position(3+pos);
        sendByte(0x84+kleur); 
        send_position(4+pos);
        sendByte(0x84+kleur); 
        send_position(5+pos);
        s5=1;
        
     /// ***** Eind C ***/
}

void B(int pos, int kleur)
{    
   
       
        s1=0;
        sendByte(0x84+kleur); 
        send_position(2+pos);
        sendByte(0x84+kleur);
        send_position(3+pos);
        sendByte(0x84+kleur);
        send_position(4+pos);
        s1=1;
        s2=0;
        sendByte(0x84+kleur);
        send_position(2+pos);
        sendByte(0x84+kleur);
        send_position(5+pos);
        s2=1;
        s3=0;
        sendByte(0x84+kleur);
        send_position(2+pos);
        sendByte(0x84+kleur);
        send_position(3+pos);
        sendByte(0x84+kleur);
        send_position(4+pos);
        s3=1;
        s4=0;
        sendByte(0x84+kleur);
        send_position(2+pos);
        sendByte(0x84+kleur);
        send_position(5+pos);
        s4=1;
        s5=0;
        sendByte(0x84+kleur);
        send_position(2+pos);
        sendByte(0x84+kleur);
        send_position(3+pos);
        sendByte(0x84+kleur);
        send_position(4+pos);
        s5=1;
      
      //***** Eind B  *****/
}

void A(int pos,int kleur)
{      
      
    
      s1=0;
      sendByte(0x84+kleur); 
      send_position(4+pos);
      s1=1;
      s2=0;
      sendByte(0x84+kleur); 
      send_position(3+pos);
      sendByte(0x84+kleur); 
      send_position(5+pos);
      s2=1;
      s3=0;   
      sendByte(0x84+kleur); 
      send_position(2+pos);
      sendByte(0x84+kleur); 
      send_position(3+pos);
      sendByte(0x84+kleur); 
      send_position(4+pos);
      sendByte(0x84+kleur); 
      send_position(5+pos);
      sendByte(0x84+kleur); 
      send_position(6+pos);
      s3=1;
      s4=0;
      s5=0;
      sendByte(0x84+kleur); 
      send_position(2+pos);
      sendByte(0x84+kleur); 
      send_position(6+pos);
      s4=1;
      s5=1;
     
        //*********** Einde Letter A ****////
}
int main() {
int i,x;
fade.period_us(1);
fade=0.5;
 x=100; // aantal leds in de strip
       s1=0;
       s2=0;
       s3=0;
       
       s4=0;
       s5=0;
       
   for(i=0 ; i < x ; i++) // alle leds uitzetten om te kunnen beginnen.
        {
            sendByte(128);
             latchen();
        }
       s1=1;
       s2=1;
       s3=1;
       s4=1;
       s5=1;

   while(1)
      { 
      int x;
      for(i=0;i<92;i++){
            erase();
           
           
        
       
      
   
            if(i>0){
               
                L(0+i-6,0);
            }
            
            if(i>7){
                N(0+i-13,0);
            }
            
            if(i>11 ){
                punt(0+i-17,9);
            }
            
            if(i>14 ){
                D(0+i-20,0);
            }
            
            if(i>20){
                N(0+i-26,14);
            }
            
            if(i>26){
                U(0+i-32,-3);
            }
            
            if(i>32){
                O(0+i-38,0x11);
            }
            
            if(i>38){
                S(0+i-44,0);
            }
           
            if(i>44){
                N(0+i-50,9);
            }
            
            if(i>50){
                L(0+i-56,14);
            }
            
            wait_ms(900);
  
     }



    }
  
  }