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); }
Bilder: