Anleitung zur LED-Matrix

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:

matrix[2][1]-440129058[1]

Programm:

#include <digitalWriteFastTiny>
 
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:

20140409_143040[1][1]-884303104[1]
20140409_143340[1][1]-1245425812[1]
20140409_143353[1][1]-1173950024[1]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert