Gratis verzending vanaf €74,95 NL (€99,95 BE/DE)

Voor 16:00 besteld = morgen in huis

Express voor 13:00 besteld = vanavond in huis*

14 dagen gratis terugsturen*


Land

In dit project ga je leren hoe je je eigen LED krant kan maken.

We doen dit met een 32X8 LED matrix en een Arduino UNO. De code die bij dit project zit is lang. Dit komt doordat je iedere letter, cijfer en dergelijke zelf moet maken op een 7X8 grid. De reden dat het 7 bij 8 is is omdat we maar 7 van de 8 rijen verticaal gebruiken om de tekens te maken. Op de manier hoe wij de tekens dan maken houd dit in dat we zeven rijen van acht lang hebben. Iedere rij bestaat uit enen en nullen, 1 betekent dat dat lampje aan is en 0 dat hij uit staat.

  • Niveau – Gemiddeld 50% 50%
  • Tijdsduur – 45/75 Min 40% 40%
  • Kosten – €48.85 euro compleet 40% 40%

Stap 1: Benodigdheden

1X Arduino UNO

1X 32X8 LED matrix

5X F/M jumper wires

Stap 2: Bouwen en Bedraden

Als je nu alle onderdelen hebt kan je beginnen met het bedraden. Als eerste ga je met een kabel van de CLK naar I/O pin 13, van CS naar I/O pin 10, van DIN naar I/O pin 11, van GND naar de GND op de Arduino en van de VCC naar de 5V op de Arduino.

Stap 3: Programmeren

Nu je alles hebt aangesloten kan je gaan beginnen met programmeren.

Voor het programmeren is het belangrijk dat je de ledcontrol library hebt. Je hebt deze nodig voor het aansturen van de modules op de matrixen. Je kan deze library vinden in de Arduino IDE als je naar bibliotheken beheren gaat en als je daar bent LedControl in de zoekbalk intypt.

Het is een lange code maar het is bijna alleen maar het tekenen van figuren. De rede is dat een figuur zeven regels gebruikt onder elkaar je kan het ook in een doen. Maar zo is het makkelijker om een figuur te maken omdat je het nu al deels visualiseert. Dus weet je dan al deels hoe het eruit zal zien.

Als je het programma op de Arduino zet zoals het nu is zal je de tekst elektronica voor jou zien krijgen. Je kan dit aanpassen om een tekst naar keuze te laten zien.

#include <LedControl.h>  

 

//zorgt dat de LED lampjes alleen aangaan wanneer nodig

//als de waarde onder 14 is wordt het steeds moeilijker om te lezen wat er staat

unsigned long BL [14] = {0}; 

//zorgt dat de pinnen en hoeveelheid beeldschermen duidelijk is

LedControl lc=LedControl(11,13,10,4);

//hier zet je de text neer die je wilt laten zien

const unsigned char scrollText[] PROGMEM ={” elektronica voor jou       “};

 

void setup()

{

  //hier worden de beeldschermen gekalibreerd

  for (int x=0; x<4; x++)

  {

    lc.shutdown(x,false);      

    lc.setIntensity(x,8);      

    lc.clearDisplay(x);        

  }

}

 

//hier zorgen we dat de text beweegt

void loop(){

    scrollMessage(scrollText);      

}

 

//hier tekenen we iedere letter, cijfer en dergelijke

const unsigned char font5x7 [] PROGMEM = {    

    B00000000,  //Spatie

    B00000000,

    B00000000,

    B00000000,

    B00000000,

    B00000000,

    B00000000,

    3,

 

    B01000000,  //!

    B01000000,

    B01000000,

    B01000000,

    B01000000,

    B00000000,

    B01000000,

    2,

 

    B10100000,  //”

    B10100000,

    B10100000,

    B00000000,

    B00000000,

    B00000000,

    B00000000,

    4,

 

    B01010000,  //#

    B01010000,

    B11111000,

    B01010000,

    B11111000,

    B01010000,

    B01010000,

    6,

 

    B00100000,  //$

    B01111000,

    B10100000,

    B01110000,

    B00101000,

    B11110000,

    B00100000,

    6,

 

    B11000000,  //%

    B11001000,

    B00010000,

    B00100000,

    B01000000,

    B10011000,

    B00011000,

    6,

 

    B01100000,  //&

    B10010000,

    B10100000,

    B01000000,

    B10101000,

    B10010000,

    B01101000,

    6,

 

    B11000000,  //’

    B01000000,

    B10000000,

    B00000000,

    B00000000,

    B00000000,

    B00000000,

    3,

 

    B00100000,  //(

    B01000000,

    B10000000,

    B10000000,

    B10000000,

    B01000000,

    B00100000,

    4,

 

    B10000000,  //)

    B01000000,

    B00100000,

    B00100000,

    B00100000,

    B01000000,

    B10000000,

    4,

 

    B00000000,  //*

    B00100000,

    B10101000,

    B01110000,

    B10101000,

    B00100000,

    B00000000,

    6,

 

    B00000000,  //+

    B00100000,

    B00100000,

    B11111000,

    B00100000,

    B00100000,

    B00000000,

    6,

 

    B00000000,  //,

    B00000000,

    B00000000,

    B00000000,

    B11000000,

    B01000000,

    B10000000,

    3,

 

    B00000000,  //-

    B00000000,

    B11111000,

    B00000000,

    B00000000,

    B00000000,

    B00000000,

    6,

 

    B00000000,  //.

    B00000000,

    B00000000,

    B00000000,

    B00000000,

    B11000000,

    B11000000,

    3,

 

    B00000000,  ///

    B00001000,

    B00010000,

    B00100000,

    B01000000,

    B10000000,

    B00000000,

    6,

 

    B01110000,  //0

    B10001000,

    B10011000,

    B10101000,

    B11001000,

    B10001000,

    B01110000,

    6,

 

    B01000000,  //1

    B11000000,

    B01000000,

    B01000000,

    B01000000,

    B01000000,

    B11100000,

    4,

 

    B01110000,  //2

    B10001000,

    B00001000,

    B00010000,

    B00100000,

    B01000000,

    B11111000,

    6,

 

    B11111000,  //3

    B00010000,

    B00100000,

    B00010000,

    B00001000,

    B10001000,

    B01110000,

    6,

 

    B00010000,  //4

    B00110000,

    B01010000,

    B10010000,

    B11111000,

    B00010000,

    B00010000,

    6,

 

    B11111000,  //5

    B10000000,

    B11110000,

    B00001000,

 

    B00001000,

    B10001000,

    B01110000,

    6,

 

    B00110000,  //6

    B01000000,

    B10000000,

    B11110000,

    B10001000,

    B10001000,

    B01110000,

    6,

 

    B11111000,  //7

    B10001000,

    B00001000,

    B00010000,

    B00100000,

    B00100000,

    B00100000,

    6,

 

    B01110000,  //8

    B10001000,

    B10001000,

    B01110000,

    B10001000,

    B10001000,

    B01110000,

    6,

 

    B01110000,  //9

    B10001000,

    B10001000,

    B01111000,

    B00001000,

    B00010000,

    B01100000,

    6,

 

    B00000000,  //:

    B11000000,

    B11000000,

    B00000000,

    B11000000,

    B11000000,

    B00000000,

    3,

 

    B00000000,  //;

    B11000000,

    B11000000,

    B00000000,

    B11000000,

    B01000000,

    B10000000,

    3,

 

    B00010000,  //<

    B00100000,

    B01000000,

    B10000000,

    B01000000,

    B00100000,

    B00010000,

    5,

 

    B00000000,  //=

    B00000000,

    B11111000,

    B00000000,

    B11111000,

    B00000000,

    B00000000,

    6,

 

    B10000000,  //>

    B01000000,

    B00100000,

    B00010000,

    B00100000,

    B01000000,

    B10000000,

    5,

 

    B01110000,  //?

    B10001000,

    B00001000,

    B00010000,

    B00100000,

    B00000000,

    B00100000,

    6,

 

    B01110000,  //@

    B10001000,

    B00001000,

    B01101000,

    B10101000,

    B10101000,

    B01110000,

    6,

 

    B01110000,  //A

    B10001000,

    B10001000,

    B10001000,

    B11111000,

    B10001000,

    B10001000,

    6,

 

    B11110000,  //B

    B10001000,

    B10001000,

    B11110000,

    B10001000,

    B10001000,

    B11110000,

    6,

 

    B01110000,  //C

    B10001000,

    B10000000,

    B10000000,

    B10000000,

    B10001000,

    B01110000,

    6,

 

    B11100000,  //D

    B10010000,

    B10001000,

    B10001000,

    B10001000,

    B10010000,

    B11100000,

    6,

 

    B11111000,  //E

    B10000000,

    B10000000,

    B11110000,

    B10000000,

    B10000000,

    B11111000,

    6,

 

    B11111000,  //F

    B10000000,

    B10000000,

    B11110000,

    B10000000,

    B10000000,

    B10000000,

    6,

 

    B01110000,  //G

    B10001000,

    B10000000,

    B10111000,

    B10001000,

    B10001000,

    B01111000,

    6,

 

    B10001000,  //H

    B10001000,

    B10001000,

    B11111000,

    B10001000,

    B10001000,

    B10001000,

    6,

 

    B11100000,  //I

    B01000000,

    B01000000,

    B01000000,

    B01000000,

    B01000000,

    B11100000,

    4,

 

    B00111000,  //J

    B00010000,

    B00010000,

    B00010000,

    B00010000,

    B10010000,

    B01100000,

    6,

 

    B10001000,  //K

    B10010000,

    B10100000,

    B11000000,

    B10100000,

    B10010000,

    B10001000,

    6,

 

    B10000000,  //L

    B10000000,

    B10000000,

    B10000000,

    B10000000,

    B10000000,

    B11111000,

    6,

 

    B10001000,  //M

    B11011000,

    B10101000,

    B10101000,

    B10001000,

    B10001000,

    B10001000,

    6,

 

    B10001000,  //N

    B10001000,

    B11001000,

    B10101000,

    B10011000,

    B10001000,

    B10001000,

    6,

 

    B01110000,  //O

    B10001000,

    B10001000,

    B10001000,

    B10001000,

    B10001000,

    B01110000,

    6,

 

    B11110000,  //P

    B10001000,

    B10001000,

    B11110000,

    B10000000,

    B10000000,

    B10000000,

    6,

 

    B01110000,  //Q

    B10001000,

    B10001000,

    B10001000,

    B10101000,

    B10010000,

    B01101000,

    6,

 

    B11110000,  //R

    B10001000,

    B10001000,

    B11110000,

    B10100000,

    B10010000,

    B10001000,

    6,

 

    B01111000,  //S

    B10000000,

    B10000000,

    B01110000,

    B00001000,

    B00001000,

    B11110000,

    6,

 

    B11111000,  //T

    B00100000,

    B00100000,

    B00100000,

    B00100000,

    B00100000,

    B00100000,

    6,

 

    B10001000,  //U

    B10001000,

    B10001000,

    B10001000,

    B10001000,

    B10001000,

    B01110000,

    6,

 

    B10001000,  //V

    B10001000,

    B10001000,

    B10001000,

    B10001000,

    B01010000,

    B00100000,

    6,

 

    B10001000,  //W

    B10001000,

    B10001000,

    B10101000,

    B10101000,

    B10101000,

    B01010000,

    6,

 

    B10001000,  //X

    B10001000,

    B01010000,

    B00100000,

    B01010000,

    B10001000,

    B10001000,

    6,

 

    B10001000,  //Y

    B10001000,

    B10001000,

    B01010000,

    B00100000,

    B00100000,

    B00100000,

    6,

 

    B11111000,  //Z

    B00001000,

    B00010000,

    B00100000,

    B01000000,

    B10000000,

    B11111000,

    6,

 

    B11100000,  //[

    B10000000,

    B10000000,

    B10000000,

    B10000000,

    B10000000,

    B11100000,

    4,

 

    B00000000,  //(\)

    B10000000,

    B01000000,

    B00100000,

    B00010000,

    B00001000,

    B00000000,

    6,

 

    B11100000,  //]

    B00100000,

    B00100000,

    B00100000,

    B00100000,

    B00100000,

    B11100000,

    4,

 

    B00100000,  //^

    B01010000,

    B10001000,

    B00000000,

    B00000000,

    B00000000,

    B00000000,

    6,

 

    B00000000,  //_

    B00000000,

    B00000000,

    B00000000,

    B00000000,

    B00000000,

    B11111000,

    6,

 

    B10000000,  //`

    B01000000,

    B00100000,

    B00000000,

    B00000000,

    B00000000,

    B00000000,

    4,

 

    B00000000,  //a

    B00000000,

    B01110000,

    B00001000,

    B01111000,

    B10001000,

    B01111000,

    6,

 

    B10000000,  //b

    B10000000,

    B10110000,

    B11001000,

    B10001000,

    B10001000,

    B11110000,

    6,

 

    B00000000,  //c

    B00000000,

    B01110000,

    B10001000,

    B10000000,

    B10001000,

    B01110000,

    6,

 

    B00001000,  //d

    B00001000,

    B01101000,

    B10011000,

    B10001000,

    B10001000,

    B01111000,

    6,

 

    B00000000,  //e

    B00000000,

    B01110000,

    B10001000,

    B11111000,

    B10000000,

    B01110000,

    6,

 

    B00110000,  //f

    B01001000,

    B01000000,

    B11100000,

    B01000000,

    B01000000,

    B01000000,

    6,

 

    B00000000,  //g

    B01111000,

    B10001000,

    B10001000,

    B01111000,

    B00001000,

    B01110000,

    6,

 

    B10000000,  //h

    B10000000,

    B10110000,

    B11001000,

    B10001000,

    B10001000,

    B10001000,

    6,

 

    B01000000,  //i

    B00000000,

    B11000000,

    B01000000,

    B01000000,

    B01000000,

    B11100000,

    4,

 

    B00010000,  //j

    B00000000,

    B00110000,

    B00010000,

    B00010000,

    B10010000,

    B01100000,

    5,

 

    B10000000,  //k

    B10000000,

    B10010000,

    B10100000,

    B11000000,

    B10100000,

    B10010000,

    5,

 

    B11000000,  //l

    B01000000,

    B01000000,

    B01000000,

    B01000000,

    B01000000,

    B11100000,

    4,

 

    B00000000,  //m

    B00000000,

    B11010000,

    B10101000,

    B10101000,

    B10001000,

    B10001000,

    6,

 

    B00000000,  //n

    B00000000,

    B10110000,

    B11001000,

    B10001000,

    B10001000,

    B10001000,

    6,

 

    B00000000,  //o

    B00000000,

    B01110000,

    B10001000,

    B10001000,

    B10001000,

    B01110000,

    6,

 

    B00000000,  //p

    B00000000,

    B11110000,

    B10001000,

    B11110000,

    B10000000,

    B10000000,

    6,

 

    B00000000,  //q

    B00000000,

    B01101000,

    B10011000,

    B01111000,

    B00001000,

    B00001000,

    6,

 

    B00000000,  //r

    B00000000,

    B10110000,

    B11001000,

    B10000000,

    B10000000,

    B10000000,

    6,

 

    B00000000,  //s

    B00000000,

    B01110000,

    B10000000,

    B01110000,

    B00001000,

    B11110000,

    6,

 

    B01000000,  //t

    B01000000,

    B11100000,

    B01000000,

    B01000000,

    B01001000,

    B00110000,

    6,

 

    B00000000,  //u

    B00000000,

    B10001000,

    B10001000,

    B10001000,

    B10011000,

    B01101000,

    6,

 

    B00000000,  //v

    B00000000,

    B10001000,

    B10001000,

    B10001000,

    B01010000,

    B00100000,

    6,

 

    B00000000,  //w

    B00000000,

    B10001000,

    B10101000,

    B10101000,

    B10101000,

    B01010000,

    6,

 

    B00000000,  //x

    B00000000,

    B10001000,

    B01010000,

    B00100000,

    B01010000,

    B10001000,

    6,

 

    B00000000,  //y

    B00000000,

    B10001000,

    B10001000,

    B01111000,

    B00001000,

    B01110000,

    6,

 

    B00000000,  //z

    B00000000,

    B11111000,

    B00010000,

    B00100000,

    B01000000,

    B11111000,

    6,

};

 

//hier zorgen we dat er verticaal 7 LED

//lampjes aan gaan

void rotate(){

    for (int a = 0; a < 7; a++){                   

        unsigned long x = BL [a*2];   

        byte b = bitRead(x,31);               

        x = x<<1;                             

        BL [a*2] = x;                

        x = BL [a*2+1];              

        x = x<<1;                              

        bitWrite(x,0,b);                      

        BL [a*2+1] = x;                

    }

 

//hier zorgen wij dat iedere letter, cijfer en degelijke

//beschikbaar is om te gebruiken

void load(int ascii){

    if (ascii >= 0x20 && ascii <= 0x7f){

        for (int a = 0; a < 7; a++){                    

            unsigned long c = pgm_read_byte_near(font5x7 + ((ascii – 0x20) * 8) + a);   

            unsigned long x = BL [a*2];    

            x = x | c;                              

            BL [a*2] = x;                 

        }

        byte count = pgm_read_byte_near(font5x7 +((ascii – 0x20) * 8) + 7);   

        for (byte x = 0; x < count; x++){

            rotate();

            print();

            delay(10);

        }

    }

}

 

//hier zorgen we dat de tekst de juiste matrixen volgt

void print(){

  for (int a = 0; a < 7; a++){                   

    unsigned long x = BL [a*2+1]; 

    byte y = x;                            

    lc.setRow(3,a,y);                      

    x = BL [a*2];                  

    y = (x>>24);                           

    lc.setRow(2,a,y);                     

    y = (x>>16);                           

    lc.setRow(1,a,y);                     

    y = (x>>8);                            

    lc.setRow(0,a,y);                     

  }

}

 

//hier zorgen wij dat de tekst van

//rechts naar links beweegt

void scrollMessage(const unsigned char * messageString) {

    int counter = 0;

    int myChar=0;

    do {

 

        myChar =  pgm_read_byte_near(messageString + counter);

        if (myChar != 0){

            load(myChar);

        }

        counter++;   

    }

    while (myChar != 0);

}

Je hebt nu een werkend Arduino alarm!

De waardering van www.elektronicavoorjou.nl bij WebwinkelKeur Reviews is 9.3/10 gebaseerd op 4778 reviews.