Матрица 8×8 содержит 64 светодиода, объединённых в строки и столбцы. Управляя каждым светодиодом отдельно, Arduino может выводить символы и простую графику.
Такие дисплеи отличаются низким энергопотреблением, долгим сроком службы, высокой яркостью и широким углом обзора.
Подключение
| Вывод матрицы | Строка | Столбец | Arduino |
|---|---|---|---|
| 1 | 5 | — | 13 |
| 2 | 7 | — | 12 |
| 3 | — | 2 | 11 |
| 4 | — | 3 | 10 |
| 5 | 8 | — | A2 |
| 6 | — | 5 | A3 |
| 7 | 6 | — | A4 |
| 8 | 3 | — | A5 |
| 9 | 1 | — | 2 |
| 10 | — | 4 | 3 |
| 11 | — | 6 | 4 |
| 12 | 4 | — | 5 |
| 13 | — | 1 | 6 |
| 14 | 2 | — | 7 |
| 15 | — | 7 | 8 |
| 16 | — | 8 | 9 |
Строки и столбцы можно подключить к другим выводам Arduino, если изменить их назначение в программе.
//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);
}
}
Схема проекта