summaryrefslogtreecommitdiffstats
path: root/Matrix_3x3/Matrix_3x3.pde
diff options
context:
space:
mode:
Diffstat (limited to 'Matrix_3x3/Matrix_3x3.pde')
-rw-r--r--Matrix_3x3/Matrix_3x3.pde57
1 files changed, 57 insertions, 0 deletions
diff --git a/Matrix_3x3/Matrix_3x3.pde b/Matrix_3x3/Matrix_3x3.pde
new file mode 100644
index 0000000..eea52e5
--- /dev/null
+++ b/Matrix_3x3/Matrix_3x3.pde
@@ -0,0 +1,57 @@
+/*
+ Blink
+
+ */
+#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.
+ 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);
+}