From 506d463544825696386acf9aa4d572ff3301f7e4 Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Mon, 8 Feb 2016 21:18:18 -0500 Subject: Add keyboard code. --- keyboard-1/keyboard-1.ino | 50 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 keyboard-1/keyboard-1.ino (limited to 'keyboard-1/keyboard-1.ino') diff --git a/keyboard-1/keyboard-1.ino b/keyboard-1/keyboard-1.ino new file mode 100644 index 0000000..5b76bdd --- /dev/null +++ b/keyboard-1/keyboard-1.ino @@ -0,0 +1,50 @@ +const int rows[] = {4, 5}; +const int kRows = 2; + +const int columns[] = {6, 7}; +const int kColumns = 2; + +bool buttons[] = {false, false, false, false}; + +void setup() { + for (int i = 0; i < kRows; i++) { + pinMode(rows[i], INPUT_PULLUP); + } + for (int i = 0; i < kColumns; i++) { + pinMode(columns[i], INPUT); + } + Serial.begin(9600); +} + +bool scanKey(int row, int column) { + pinMode(columns[column], OUTPUT); + digitalWrite(columns[column], LOW); + bool pressed = digitalRead(rows[row]) == LOW; + pinMode(columns[column], INPUT); + return pressed; +} + +void loop() { +// pinMode(4, INPUT_PULLUP); +// if (digitalRead(4) == LOW) { +// Serial.print("pushed: "); +// Serial.println(columns[0]); +// } else { +// Serial.println("not pushed"); +// } + + for (int i = 0; i < kRows; i++) { + for (int j = 0; j < kColumns; j++) { + bool pressed = scanKey(i, j); + if (pressed != buttons[i * kColumns + j]) { + if (pressed) { + Serial.print("Button pressed: "); + } else { + Serial.print("Button released: "); + } + Serial.println(i * kColumns + j); + buttons[i * kColumns + j] = pressed; + } + } + } +} -- cgit v1.2.3