From f0556f5df58a51bcaa9595ec3df95b529fc00274 Mon Sep 17 00:00:00 2001 From: Alexander Kauerz Date: Thu, 6 Oct 2011 22:20:20 +0200 Subject: Die Ordnung wurde wiederhergestellt. --- Matrix-3x3.pde | 60 +++++++++++++++++++++++++++ Matrix-7x13.pde | 125 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ _3x3Matrix.pde | 60 --------------------------- 3 files changed, 185 insertions(+), 60 deletions(-) create mode 100644 Matrix-3x3.pde create mode 100644 Matrix-7x13.pde delete mode 100644 _3x3Matrix.pde diff --git a/Matrix-3x3.pde b/Matrix-3x3.pde new file mode 100644 index 0000000..6a2a147 --- /dev/null +++ b/Matrix-3x3.pde @@ -0,0 +1,60 @@ +/* + Blink + Turns on an LED on for one second, then off for one second, repeatedly. + + This example code is in the public domain. + */ +#define ROW 3 +#define COL 0 +#define ROWCNT 3 +#define COLCNT 3 + +#define DELAY 3 + +int frame[3][3] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, +}; + +int framenr = 0; +int rownr = 0; +void setup() { + // initialize the digital pin as an output. + // Pin 13 has an LED connected on most Arduino boards: + int i; + for (i = 0;i < ROWCNT; i++) + pinMode(ROW + i, OUTPUT); + for (i = 0;i < COLCNT; i++) + pinMode(COL + i, OUTPUT); +} + +void nextFrame() { + frame[0][0] = (framenr % 100) < 50; + frame[0][1] = (framenr % 100) < 50; + frame[0][2] = (framenr % 100) < 50; + frame[1][0] = (framenr % 100) < 50; + frame[1][1] = (framenr % 100) >= 50; + frame[1][2] = (framenr % 100) < 50; + frame[2][0] = (framenr % 100) < 50; + frame[2][1] = (framenr % 100) < 50; + frame[2][2] = (framenr % 100) < 50; +} + +void loop() { + int i; + + rownr = ( rownr + 1 ) % ROWCNT; + + if (rownr == 0) { + framenr++; + nextFrame(); + } + + for (i = 0; i < COLCNT; i++) { + digitalWrite(COL + i, frame[rownr][i]); + } + digitalWrite(ROW + rownr, HIGH); + delay(DELAY); + digitalWrite(ROW + rownr, LOW); +} diff --git a/Matrix-7x13.pde b/Matrix-7x13.pde new file mode 100644 index 0000000..377eda2 --- /dev/null +++ b/Matrix-7x13.pde @@ -0,0 +1,125 @@ +/* + Blink + Turns on an LED on for one second, then off for one second, repeatedly. + + This example code is in the public domain. + */ +#define ROW 3 +#define COL 0 +#define ROWCNT 7 +#define COLCNT 13 +#define CHARWIDTH 5 +#define FRAMELEN 10 + +#define DELAY 3 + +int frame[COLCNT][ROWCNT] = {0}; + +/*const int frame_A[ROWCNT][CHARWIDTH] = { + {0, 0, 1, 0, 0}, + {0, 0, 1, 0, 0}, + {0, 1, 0, 1, 0}, + {0, 1, 0, 1, 0}, + {1, 1, 1, 1, 1}, + {1, 0, 0, 0, 1}, + {1, 0, 0, 0, 1}, +};*/ + +/*const int frame_C[CHARWIDTH][ROWCNT] = { + {0, 0, 1, 1, 1}, + {0, 1, 1, 0, 0}, + {1, 1, 0, 0, 0}, + {1, 0, 0, 0, 0}, + {1, 1, 0, 0, 0}, + {0, 1, 1, 0, 0}, + {0, 0, 1, 1, 1}, +}; + +const int frame_H[ROWCNT][CHARWIDTH] = { + {1, 0, 0, 0, 1}, + {1, 0, 0, 0, 1}, + {1, 0, 0, 0, 1}, + {1, 1, 1, 1, 1}, + {1, 0, 0, 0, 1}, + {1, 0, 0, 0, 1}, + {1, 0, 0, 0, 1}, +}; + +const int frame_L[ROWCNT][CHARWIDTH] = { + {1, 0, 0, 0, 0}, + {1, 0, 0, 0, 0}, + {1, 0, 0, 0, 0}, + {1, 0, 0, 0, 0}, + {1, 0, 0, 0, 0}, + {1, 0, 0, 0, 0}, + {1, 1, 1, 1, 1}, +};*/ + +const int frame_MINUS[CHARWIDTH][ROWCNT] = { + {0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0}, +}; + +const int emptyCol[ROWCNT] = {0}; + +unsigned long int framenr = 0; +int rownr = 0; +void setup() { + // initialize the digital pin as an output. + // Pin 13 has an LED connected on most Arduino boards: + int i; + for (i = 0;i < ROWCNT; i++) + pinMode(ROW + i, OUTPUT); + for (i = 0;i < COLCNT; i++) + pinMode(COL + i, OUTPUT); +} + +void setCol(int c, const int data[ROWCNT]) { + int r; + + if (c > 0 && c <= COLCNT) { + for (r = 0; r < ROWCNT; r++) + frame[c][r] = data[r]; + } +} + +void setChar(int c, const int data[CHARWIDTH][ROWCNT]) { + int i; + for (i = 0; i < CHARWIDTH; i++) + setCol(c+i, data[i]); +} + +void clearFrame() { + int i = 0; + for (i = 0; i < COLCNT; i++) + setCol(i, emptyCol); +} + +void nextFrame() { + int c; + int f2 = (framenr/FRAMELEN) % (COLCNT+CHARWIDTH); + + clearFrame(); + setChar(COLCNT-f2, frame_MINUS); +} + +void loop() { + int i; + + rownr = ( rownr + 1 ) % ROWCNT; + + if (rownr == 0) { + framenr++; + nextFrame(); + } + + for (i = 0; i < COLCNT; i++) { + digitalWrite(COL + i, frame[rownr][i]); + } + digitalWrite(ROW + rownr, HIGH); + delay(DELAY); + digitalWrite(ROW + rownr, LOW); +} diff --git a/_3x3Matrix.pde b/_3x3Matrix.pde deleted file mode 100644 index 6a2a147..0000000 --- a/_3x3Matrix.pde +++ /dev/null @@ -1,60 +0,0 @@ -/* - Blink - Turns on an LED on for one second, then off for one second, repeatedly. - - This example code is in the public domain. - */ -#define ROW 3 -#define COL 0 -#define ROWCNT 3 -#define COLCNT 3 - -#define DELAY 3 - -int frame[3][3] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, -}; - -int framenr = 0; -int rownr = 0; -void setup() { - // initialize the digital pin as an output. - // Pin 13 has an LED connected on most Arduino boards: - int i; - for (i = 0;i < ROWCNT; i++) - pinMode(ROW + i, OUTPUT); - for (i = 0;i < COLCNT; i++) - pinMode(COL + i, OUTPUT); -} - -void nextFrame() { - frame[0][0] = (framenr % 100) < 50; - frame[0][1] = (framenr % 100) < 50; - frame[0][2] = (framenr % 100) < 50; - frame[1][0] = (framenr % 100) < 50; - frame[1][1] = (framenr % 100) >= 50; - frame[1][2] = (framenr % 100) < 50; - frame[2][0] = (framenr % 100) < 50; - frame[2][1] = (framenr % 100) < 50; - frame[2][2] = (framenr % 100) < 50; -} - -void loop() { - int i; - - rownr = ( rownr + 1 ) % ROWCNT; - - if (rownr == 0) { - framenr++; - nextFrame(); - } - - for (i = 0; i < COLCNT; i++) { - digitalWrite(COL + i, frame[rownr][i]); - } - digitalWrite(ROW + rownr, HIGH); - delay(DELAY); - digitalWrite(ROW + rownr, LOW); -} -- cgit v1.2.3