LED-Matrix - Count­down

Lese­zeit: 5 Minu­ten
Navi­ga­ti­on

Die ein­zel­nen LEDs wer­den in Zei­len und Spal­ten ange­spro­chen.
Die Schreib­wei­se für jede Zei­le kann binär ange­ge­ben wer­den: 0 = aus, 1 = an. Den Wer­ten wird ein "B" vor­an­ge­stellt.

void PfeilUnten()
{
  byte Zeichen[8] = 
  {
     B00111000, // 1. Reihe
     B00111000, // 2. Reihe
     B00111000, // 3. Reihe
     B00111000, // 4. Reihe
     B11111110, // 5. Reihe
     B01111100, // 6. Reihe
     B00111000, // 7. Reihe
     B00010000  // 8. Reihe
  };

  // Matrix anzeigen
  for (int i = 0; i < 8; i ++)   
  { 
    LEDMatrix.setRow(0, i, Zeichen[i]);   
  }
} 

void Kreuz()
{
  byte Zeichen[8] = 
  {
    B10000001, // 1. Reihe
    B01000010, // 2. Reihe
    B00100100, // 3. Reihe
    B00011000, // 4. Reihe 
    B00011000, // 5. Reihe 
    B00100100, // 6. Reihe
    B01000010, // 7. Reihe
    B10000001  // 8. Reihe  
  };

  // Matrix anzeigen
  for (int i = 0; i < 8; i ++)  
  { 
    LEDMatrix.setRow(0, i, Zeichen[i]);
  }
}

Als Ers­tes musst du eine Biblio­thek instal­lie­ren:

Sketch → Biblio­thek ein­bin­den → Biblio­the­ken ver­wal­ten

Jedem Befehl muss der Name der Matrix mit abschlie­ßen­dem . vor­an­ge­stellt wer­den.

Metho­den der Biblio­thek LED­Con­trol

Metho­de Funktion/Beispiele
led­Con­trol Name_der_Matrix(Data-In, CLK, CS, Anzahl­Ma­trix)LED-Matrix initia­li­sie­ren:
Led­Con­trol LED­Ma­trix = LedControl(12, 11, 10, 1);
shutDown(NummerMatrix, true/false)Matrix auf­we­cken:
shutDown(0, fal­se);
setIntensity(NummerMatrix, Hel­lig­keit)Hel­lig­keit set­zen (0−20)
setIntensity(0, 8);
clearDisplay(NummerMatrix)clearDisplay(0);
setLed(NummerMatrix, Zei­le, Spal­te, true/false);ein­zel­ne LED schal­ten
setLed(0, 0, 0, true);
setRow(NummerMatrix, Zei­le, Byte)zei­len­wei­se ein Byte schrei­ben:
setRow(0, Zei­le, B10000000);
setRow kann Wer­te zwi­schen 0 und 7 haben

setColumn(NummerMatrix, Spal­te, Byte)spal­ten­wei­se ein Byte schrei­ben:
setColumn(0, Spal­te, B10000000);
set­Co­lumn kann Wer­te zwi­schen 0 und 7 haben

Die LED-Matrix soll nach einem Tas­ter­druck einen Count­down von 9 bis 0 Sekun­den anzei­gen. Zusätz­lich ertönt jede Sekun­de ein kur­zer Ton.

Beim Start des Pro­gramms wird ein Pfeil nach unten ange­zeigt, am Ende ein Kreuz.

Array

Schlie­ße die LED-Matrix an.

Pin­be­le­gung der LED-Matrix

Benö­tig­te Bau­tei­le:

  • Tas­ter
  • LED-Matrix
  • Lei­tungs­dräh­te
  • Laut­spre­cher

Im Kopf des Pro­gramms musst du die benö­tig­te Biblio­thek ein­bin­den und die Pin­be­le­gung der LED-Matrix fest­le­gen.
Im setup-Teil wird die LED-Matrix gestar­tet und der pin­Mo­de des Tas­ter und des Laut­spre­chers fest­ge­legt.

# include <LedControl.h> 
/* 
  VCC →  5V    
  GND    
  Pin 12 →  DATA IN Pin   
  Pin 11 →  CLK Pin  
  Pin 10 →  CS Pin 
*/ 
LedControl LEDMatrix = LedControl(12, 11, 10, 1);
 
int TASTER = 7;
int LAUTSPRECHER = 5; 

int TasterLesen; 

void setup()  
{   
  // Matrix "aufwecken" 
  LEDMatrix.shutdown(0, false);

  //  mittlere Helligkeit setzen 
  LEDMatrix.setIntensity(0, 8); 
} 

Im loop-Teil wird zunächst der Pfeil nach unten ange­zeigt und der Tas­ter abge­fragt. Anschlie­ßend wird nach jeweils einer Sekun­de Pau­se die nächs­te Zahl ange­zeigt. Nach Ablauf der Zeit erscheint das Kreuz.

void loop()  
{ 
  PfeilUnten(); 

  TasterLesen = digitalRead(TASTER); 

  if (TasterLesen == LOW)   
  { 
    delay(300);
    ZahlNeun();

    tone(LAUTSPRECHER, 1000, 100); 
    delay(1000); 

    ZahlAcht(); 
    tone(LAUTSPRECHER, 1000, 100); 
    delay(1000); 

    ZahlSieben(); 
    tone(LAUTSPRECHER, 1000, 100); 
    . . .
    . . .
    Kreuz(); 
    delay(2000); 
  }
} 

Hier sind die benö­tig­ten Metho­den für die Zah­len, den Pfeil und das Kreuz:



Ver­wand­te Auf­ga­ben:


Letzte Aktualisierung: 13. Mrz 2020 @ 15:17