IAKO NAŠ ARDUINO IMA SVEGA 13 DIGITALNIH I 5 ANALOGNIH IZLAZA KORIŠTENJEM TEHNIKE MULTIPLEKSIRANJA MOŽEMO KONTROLIRATI 64 LED DIODE U OVOJ MATRICI

Arduinom možemo kontrolirati matricu od 64 LED diode korištenjem 16 pinova. LED diode povezane su u matrici tako da svaki od izvoda na matrici kontrolira ili jedan reda ili jedan stupac matrice.
To znači ako želimo na matrici uključiti krajnje lijevu LED-icu u prvom retku moramo na pin 9 matrice dovesti pozitivni napon( +5V) a na pin 13 matrice GND (0V).
Upozorenje: Kao što znamo, bilo koju LED diodu koju spajamo na Arduino moramo u seriju spojiti s otpornikom kako bi pinove Arduina zaštitili od prevelike struje (>50mA ) koja bi uništila pin.
Prilikom spajanja matrice na Arduino na sve pinove koji predstavljaju redove (9,14,8,12,1,7,2,5) postaviti ćemo otpornike (vrijednosti između 200 i 400 ohma).

#define RED1 10
#define RED2 11
#define RED3 12
#define RED4 13
#define RED5 A5
#define RED6 A4
#define RED7 A3
#define RED8 A2
#define KOL1 2
#define KOL2 3
#define KOL3 4
#define KOL4 5
#define KOL5 6
#define KOL6 7
#define KOL7 8
#define KOL8 9
byte mask = 10000000;
const byte redovi[] = {RED1, RED2, RED3, RED4, RED5, RED6, RED7, RED8};
const byte kolone[] = {KOL1, KOL2, KOL3, KOL4, KOL5, KOL6, KOL7, KOL8};
// *****************************************************************************************
// LIKOVI ZA PRIKAZ
// (1 = ON, 0 = OFF)
byte veseli[] = {B11111111,
B10000001,
B10100100,
B10000000,
B10011000,
B11000010,
B10111100,
B10000000,
};
byte obicni[] = {B11111111,B10000001,B10100101,B10000001,B10000001,B10111101,B10000001,B11111111};
byte ljuti[] = {B11111111,B10000001,B10100101,B10000001,B00000000,B00111100,B01000010,B00000000};
byte slovoa[]={B00011000,B00111100,B01100110,B01100110,B01111110,B01111110,B01100110,B01100110};
byte slovoc[]={B00000000,B00000000,B00000000,B00111111,B00110000,B00110000,B00000000,B00000000};
byte prazno[]={B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000};
byte slovos[]={B01111110,B01111110,B01100000,B01111110,B01111110,B00000010,B01111110,B01111110};
byte slovor[]={B01111100,B01111100,B01100110,B01100110,B01111000,B01111100,B01101100,B01100110};
byte slovoe[]={B01111110,B01111110,B01100000,B01111110,B01111110,B01100000,B01111110,B01111110};
byte slovot[]={B01111110,B01111110,B00011000,B00011000,B00011000,B00011000,B00011000,B00011000};
byte slovon[]={B01100110,B01100110,B01110110,B01111110,B01111110,B01101110,B01100110,B01100110};
byte slovob[]={B01111100,B01111110,B01100110,B01111110,B01111110,B01100110,B01111110,B01111100};
byte slovoo[]={B00111100,B01111110,B01100110,B01100110,B01100110,B01100110,B01111110,B00111100};
byte slovozz[]={B00100100,B00011000,B01111110,B01111100,B00011000,B00110000,B01111110,B01111110};
byte slovoi[]={B00011000,B00011000,B00011000,B00011000,B00011000,B00011000,B00011000,B00011000};
byte slovocc[]={B00000100,B00001000,B01111110,B01111110,B01100000,B01100000,B01111110,B01111110};
float brojacVremena = 0;
void setup() {
Serial.begin(9600);
for (byte i = 2; i <= 13; i++)
pinMode(i, OUTPUT);
pinMode(A5, OUTPUT);
pinMode(A4, OUTPUT);
pinMode(A3, OUTPUT);
pinMode(A2, OUTPUT);
}
void loop() {
slovo (slovos);
slovo (slovor);
slovo (slovoe);
slovo (slovot);
slovo (slovoa);
slovo (slovon);
slovo (prazno);
slovo (slovob);
slovo (slovoo);
slovo (slovozz);
slovo (slovoi);
slovo (slovocc);
slovo (prazno);
}
void slovo(String naziv){
for (int vrijeme=0;vrijeme<30;vrijeme++){
for (byte i = 0; i<8; i++)
{
digitalWrite(kolone[i], HIGH);
for (int q = 0; q<8; q++)
{
if (~naziv[q] & mask)
{
digitalWrite(redovi[q],HIGH);
}
else
{
digitalWrite(redovi[q],LOW);
}
}
mask= mask >>1;
delay (2);
digitalWrite(kolone[i], LOW);
delay (1);
}
mask=10000000;
}
}