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-2/keyboard-2.ino | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 keyboard-2/keyboard-2.ino (limited to 'keyboard-2/keyboard-2.ino') diff --git a/keyboard-2/keyboard-2.ino b/keyboard-2/keyboard-2.ino new file mode 100644 index 0000000..2e1a4ab --- /dev/null +++ b/keyboard-2/keyboard-2.ino @@ -0,0 +1,38 @@ +int rows[] = {0, 1}; +int columns[] = {2, 3, 4}; +int pins[] = {14, 15, 16, 17, 18, 19}; + +void setup() { + for (int i = 0; i < 2; i++) { + pinMode(i, INPUT_PULLUP); + } + + pinMode(13, OUTPUT); + + for (int i=0; i<6; i++) { + pinMode(pins[i], OUTPUT); + } +} + +bool key_pressed(const int key) { + const int row = key / 3; + const int column = key % 3; + + pinMode(columns[column], OUTPUT); + digitalWrite(columns[column], LOW); + bool pressed = digitalRead(rows[row]) == LOW; + pinMode(columns[column], INPUT); + + return pressed; +} + +void loop() { + digitalWrite(13, HIGH); + for (int i=0; i<6; i++) { + if (key_pressed(i)) { + digitalWrite(pins[i], HIGH); + } else { + digitalWrite(pins[i], LOW); + } + } +} -- cgit v1.2.3