Componente consumabile

Despre proiect

Ecranele LED sunt adesea ambalate ca matrice de LED-uri aranjate în rânduri de anozi și coloane comune de catozi, sau invers. Ecranele LED pot fi folosite pentru a afișa aproape orice (controlând fiecare LED separat). În această lecție vom folosi o matrice de LEDuri 8 × 8 cu o singură culoare și acestea LEDuri vor fi controlate de un Arduino și vom afișa câteva caractere pe acest ecran.

Ecranul LED 8 x 8 cu LED-uri Matrix are multe avantaje cum ar fi consumul redus de energie, durata lungă de funcționare, costul redus, luminozitatea ridicată, un unghi larg de vizibilitate, lungimea vizuală lungă, impermeabilitatea și multe altele. Acest ecran poate satisface nevoile diferitelor aplicații, totul depinde doar de creativitatea ta. 

O matrice de LEDuri 8x8 conține 64 de LEDuri (8x8=64)

Conexiunile:

Nr Pinului Matrice. Rând Coloană Arduino pin
1 5 13
2 7 12
3 2 11
4 3 10
5 8 16 (analog pin 2)
6 5 17 (analog pin 3)
7 6 18 (analog pin 4)
8 3 19 (analog pin 5)
9 1 2
10 4 3
11 6 4
12 4 5
13 1 6
14 2 7
15 7 8
16 8 9
 

Nu contează care pinii microcontrolerului (Arduino) le conectați la rânduri și coloane, deoarece puteți să modificați atribuirea din programul software.

Schema

Scheme Image

Cod

  
//pini conectati pentru rand
int R[] = {2,7,A5,5,13,A4,12,A2};  
// pini conectati pentru coloana
int C[] = {6,11,10,3,A3,4,8,9};    
  
unsigned char biglove[8][8] =     //inima mare   
{  
  0,0,0,0,0,0,0,0,  
  0,1,1,0,0,1,1,0,  
  1,1,1,1,1,1,1,1,  
  1,1,1,1,1,1,1,1,  
  1,1,1,1,1,1,1,1,  
  0,1,1,1,1,1,1,0,  
  0,0,1,1,1,1,0,0,  
  0,0,0,1,1,0,0,0,  
};  //controlam fiecare din cele 64 leduri
  
unsigned char smalllove[8][8] =      //inima mica
{  
  0,0,0,0,0,0,0,0,  
  0,0,0,0,0,0,0,0,  
  0,0,1,0,0,1,0,0,  
  0,1,1,1,1,1,1,0,  
  0,1,1,1,1,1,1,0,  
  0,0,1,1,1,1,0,0,  
  0,0,0,1,1,0,0,0,  
  0,0,0,0,0,0,0,0,  
};  
  
void setup()  
{  
  for(int i = 0;i<8;i++)  
  // initializarea pinilor
  {  
    pinMode(R[i],OUTPUT);  
    pinMode(C[i],OUTPUT);  
  }  
}  
  
void loop()  
{  
  for(int i = 0 ; i < 100 ; i++)        //100 repetari
  {  
    Display(biglove);                   //afiseaza inima mare
  }  
  for(int i = 0 ; i < 50 ; i++)         //50 repetari
  {     
    Display(smalllove);                 //afiseaza inima mica
  }  
}  
  
void Display(unsigned char dat[8][8])    
{  
  for(int c = 0; c<8;c++)  
  {  
    digitalWrite(C[c],LOW);
    //loop
    for(int r = 0;r<8;r++)  
    {  
      digitalWrite(R[r],dat[r][c]);  
    }  
    delay(1);  
    Clear();  
  }  
}  
  
void Clear()                          
{  
  for(int i = 0;i<8;i++)  
  {  
    digitalWrite(R[i],LOW);  
    digitalWrite(C[i],HIGH);  
  }  
}
  

Comentează

Adresa dvs de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Nume *
Email *
Website