LED-Matrix: einen Punkt leuchten lassen



Was ist eine LED Matrix?
Ordnet man mehrere LEDs sowohl untereinander als auch nebeneinander an, entsteht eine sogenannte LED-Matrix.
Nimmt man genügend LEDs, kann man  damit Zeichen und Grafiken ausgeben und noch mehr.




Sowas gibt es auch als fertiges Bauelement:




 

Ich habe meins hier gekauft.

Es hat 8x8 = 64 LEDs.
Durch eine trickreiche Zusammenschaltung der LEDs werden nur 2x8 = 16 Anschlüsse herausgeführt. Nämlich 8 Anoden und 8 Katoden.

Soll die LED oben links leuchten, muss an Anode 1 ein Plus der Stromversorgung liegen und an Katode 1 ein Minus der Stromversorgung.
Das ist schon das ganze Geheimnis. Was allerdings Probleme macht, sobald man zwei LEDs leuchten lassen will. Doch dazu später.

Ich habe vor jede Anode einen 220 Ohm Widerstand zur Strombegrenzung geschaltet und dann 16 Arduino Pins benutzt. 



Wie Du siehst, habe ich:

    - Pin 13 ("Digital_13") nicht benutzt, weil da schon die Board LED dran hängt

    - die sonst als Analogeingänge zu benutzenden Pins einfach als digitale Ausgänge 14, 15 und 16 vorgesehen

    - ein "universelles" Schaltsymbol für die Matrix benutzt, weil bei Deiner LED-Matrix höchstwahrscheinlich
      die Anoden und die Katoden an anderen Pins liegen als bei meiner Matrix

      Du musst auf jeden Fall für Deine Matrix ermitteln, wo sie Ihre Anoden und wo sie ihre Katoden hat!




Hier das  Programm, das genau eine LED Deiner Wahl leuchten lässt:

/*
 Hello World LED-Matrix
 (einen Punkt leuchten lassen)
 
 www.arduinospielwiese.de 
 */


 //Die Zahlen sind die am Arduino verwendeten Pins
 //Jede Anode hat einen 220 Ohm Widerstand im Stromweg!
 int spalte[]  = { 0, 1, 2, 3, 4, 5, 6, 7 }; //Anoden
 int zeile[] = { 8, 9, 10, 11, 12, 14, 15, 16 }; //Katoden
 
 
void setup()
{               
  pinMode(zeile[0], OUTPUT);
  pinMode(zeile[1], OUTPUT);
  pinMode(zeile[2], OUTPUT);
  pinMode(zeile[3], OUTPUT);
  pinMode(zeile[4], OUTPUT);
  pinMode(zeile[5], OUTPUT);
  pinMode(zeile[6], OUTPUT);
  pinMode(zeile[7], OUTPUT);
 
  pinMode(spalte[0], OUTPUT);
  pinMode(spalte[1], OUTPUT);
  pinMode(spalte[2], OUTPUT);
  pinMode(spalte[3], OUTPUT);
  pinMode(spalte[4], OUTPUT);
  pinMode(spalte[5], OUTPUT);
  pinMode(spalte[6], OUTPUT);
  pinMode(spalte[7], OUTPUT);

  //Alle Kathoden auf HIGH setzen
  for (int i=0; i<=7; i++) digitalWrite(zeile[i], HIGH);
}



void loop()
{
  //obenlinks = 0,0 / untenrechts= 7,7
  int z=0, s=0;
 
  digitalWrite(zeile[z], LOW); digitalWrite(spalte[s], HIGH);

}



Verändere die Werte für z und s und schieb das Programm erneut in Deinen Arduino.