Nach langen Stunden des Lötens und Programmierens ist die Matrix hardwaremäßig endlich fertig. An der Software werde ich noch ein bisschen basteln.
Einkaufsliste:
1 x Lochrasterplatine 229 x 127 mm
232 x LED 5mm
29 x Widerstand 150 Ohm
8 x Widerstand 1k Ohm
10 x Keramikkondensator 100 nF
2 x Keramikkondensator 22 pF
1 x Quarz 16 Mhz
1 x Attiny 85
5 x Schieberegister 74HC595
4 x LED-Treiber ULN2803 50V 0,5A
8 x Transistor NPN 2N2222A 40V 0,8A
Schaltlitze
Schaltplan:
Programm:
#include <digitalWriteFastTiny.h>
byte i = 0;
byte j = 0;
byte k = 0;
#define dataPin 2
#define shiftPin 1
#define storePin 0
boolean leds[8][37] = {
{true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, false, false, false, false, false, true, false, false, true, false, false, false, false, false, false, false},
{false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, false, false, false, false, false, true, false, false, false, true, false, false, false, false, false, false},
{false, false, true, false, false, false, false, true, true, true, false, false, false, true, true, true, false, false, true, true, true, false, false, false, false, false, true, false, false, false, false, true, false, false, false, false, false},
{false, false, true, false, false, false, true, false, false, false, true, false, true, false, false, false, false, false, false, true, false, false, false, false, false, false, true, false, false, false, false, false, true, false, false, false, false},
{false, false, true, false, false, false, true, true, true, true, true, false, false, true, true, true, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, false, false},
{false, false, true, false, false, false, true, false, false, false, false, false, false, false, false, false, true, false, false, true, false, false, true, false, false, false, false, false, false, false, false, false, false, false, true, false, false},
{false, false, true, false, false, false, false, true, true, true, false, false, true, true, true, true, false, false, false, false, true, true, false, false, false, false, true, false, false, false, false, false, false, false, false, true, false},
{false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true}
};
void setup() {
pinMode(dataPin, OUTPUT);
digitalWrite(dataPin, LOW);
pinMode(shiftPin, OUTPUT);
digitalWrite(shiftPin, LOW);
pinMode(storePin, OUTPUT);
digitalWrite(storePin, LOW);
delay(2000);
}
void loop() {
for(k=1; k<=8; k++){
writeLineToMatrix(leds[k-1], k);
//delay(1);
}
}
void writeLineToMatrix(boolean line[], byte row){
digitalWriteFast(storePin, LOW);
for(i=0; i<37; i++){
digitalWriteFast(dataPin, line[i]);
digitalWriteFast(shiftPin, HIGH);
digitalWriteFast(shiftPin, LOW);
}
digitalWriteFast(dataPin, LOW);
digitalWriteFast(storePin, HIGH);
delayMicroseconds(1000);
}
digitalWriteFast Library
Bilder: