Das Arduino Projekt 22 setzt die Experimente mit der LED-Matrix fort…
Vorbereitungen:
Für dieses Projekt werden folgende Bauteile benötigt:
- Steckboard
- Kabelset für Entwicklerboards
- LED-Matrix mit gemeinsamer Anode
- Schieberegister 74 HC595 (2x)
- 560 Ohm Widerstände
Schaltungsaufbau:
Im ersten LED-Matrix Projekt wurde eine Matrix mit gemeinsamer Kathode genutzt und für dieses Projekt soll eine Matrix mit gemeinsamer Anode benutzt werden. Es handelt sich um eine 8×8 Matrix vom Typ KWM-20882.
Die folgende Tabelle zeigt die Verbindungen zwischen Arduino und den zwei Schieberegistern.
Arduino-Pin | Schieberegister-Pin | |
Ground | 13 + 8 | an beiden Schieberegistern |
5 Volt | 10 + 16 | an beiden Schieberegistern |
6 | 14 | an Zeilen Schieberegister |
8 | 12 | an beiden Schieberegister |
10 | 11 | an beiden Schieberegister |
Die Verbindung zwischen den beiden Schieberegistern:
Schieberegister Zeilen | Schieberegister Spalten | |
16 + 10 | 16 + 10 | 5 Volt |
9 | 14 | |
12 | 12 | über Arduino Pin 8 |
11 | 11 | über Arduino Pin 10 |
Die folgende Tabelle zeigt die Verbindungen zwischen den Schieberegistern und der LED-Matrix.
Schieberegister Zeilen | Matrixpin | Schieberegister Spalten | Matrixpin |
15 | 1 | 15 | 5 |
1 | 2 | 1 | 6 |
2 | 3 | 2 | 7 |
3 | 4 | 3 | 8 |
4 | 12 | 4 | 16 |
5 | 11 | 5 | 15 |
6 | 10 | 6 | 14 |
7 | 9 | 7 | 13 |
Programmierung:
#define DATA 6
#define LATCH 8
#define CLOCK 10
void setup()
{
pinMode (LATCH, OUTPUT);
pinMode (CLOCK, OUTPUT);
pinMode (DATA, OUTPUT);
randomSeed(analogRead(0));
}
int binary[] = {1, 2, 4, 8, 16, 32, 64, 128};
int r, c=0;
void setLED(int row, int column, int del)
{
digitalWrite(LATCH, LOW);
shiftOut(DATA, CLOCK, MSBFIRST, binary[row]);
shiftOut(DATA, CLOCK, MSBFIRST, ~binary[column]);
digitalWrite(LATCH, HIGH);
delay(del);
}
void loop()
{
r = random(8);
c = random(8);
setLED(r, c, 40);
}