Informatikunterricht

am Gymnasium Kirchenfeld

Benutzer-Werkzeuge

Webseiten-Werkzeuge


arduino:matrix-multiplexing

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

arduino:matrix-multiplexing [2014/11/19 19:34] – angelegt rosarduino:matrix-multiplexing [2014/12/03 07:48] (aktuell) – gelöscht ros
Zeile 1: Zeile 1:
-====== LED-Matrix: Multiplexing-Demo ====== 
- 
-[[arduino:start|Zurück]] 
- 
-Dieses Programm steuert eine 8x8 LED-Matrix über zwei in Serie geschaltete Schieberegister (74HC595). Das erste Schieberegister steuert die Spalten der Matrix, das zweite die Zeilen. In jedem Aufruf von ''loop()'' wird jeweils nur eine Zeile angezeigt. Die Verzögerung wird mit der Zeit reduziert. Dadurch sieht der Betrachter der Übergang der Darstellung einzelner Zeilen zum gesamten Bild. 
- 
-<code c++> 
-#define DATA_PIN 0 
-#define SHIFT_CLOCK_PIN 1 
-#define STORAGE_CLOCK_PIN 2 
- 
-const byte PATTERN[] = { 
-    B01111110, 
-    B10000001, 
-    B10101001, 
-    B10000001, 
-    B10000101, 
-    B10111001, 
-    B10000001, 
-    B01111110 
-}; 
- 
-const byte DELAY[] = {200, 100, 20, 10, 2, 1}; 
-const byte DELAY_SIZE = sizeof(DELAY) / sizeof(byte); 
- 
-byte row = 0; 
-byte delayIndex = 0; 
-unsigned long changeTime; 
- 
-void showRow(byte row, byte col) { 
-    digitalWrite(STORAGE_CLOCK_PIN, LOW); 
-    shiftOut(DATA_PIN, SHIFT_CLOCK_PIN, LSBFIRST, 1 << (7 - row)); 
-    shiftOut(DATA_PIN, SHIFT_CLOCK_PIN, LSBFIRST, col ^ 255); 
-    digitalWrite(STORAGE_CLOCK_PIN, HIGH); 
-} 
- 
-void setup() { 
-    pinMode(DATA_PIN, OUTPUT); 
-    pinMode(SHIFT_CLOCK_PIN, OUTPUT); 
-    pinMode(STORAGE_CLOCK_PIN, OUTPUT); 
-    changeTime = millis() + 5000; 
-} 
- 
-void loop() { 
-    showRow(row, PATTERN[row]); 
-    row = (row + 1) % 8; 
-    delay(DELAY[delayIndex]); 
- 
-    if (millis() >= changeTime && delayIndex < DELAY_SIZE-1) { 
-        delayIndex = delayIndex + 1; 
-        changeTime = millis() + 5000; 
-    } 
-} 
-</code> 
  
arduino/matrix-multiplexing.1416422098.txt.gz · Zuletzt geändert: 2020/10/13 14:25 (Externe Bearbeitung)