diff options
author | Christopher Baines <cbaines8@gmail.com> | 2011-08-31 19:45:00 +0100 |
---|---|---|
committer | Christopher Baines <cbaines8@gmail.com> | 2011-08-31 19:45:00 +0100 |
commit | 96654ea19b12be4b43230f3ff9f908eebcb416ca (patch) | |
tree | d6c6100302db17c73e4d75673d637796cee9ffd6 /Arduino/ButtonMatrix | |
parent | 4667303e15c534d390abee467eeaaee850e2d6f5 (diff) | |
download | punchingbag-96654ea19b12be4b43230f3ff9f908eebcb416ca.tar punchingbag-96654ea19b12be4b43230f3ff9f908eebcb416ca.tar.gz |
Initial commit for the modified libaries used and the ButtonMatrix arduino code. I have just cleaned this up, but not tested it.
Diffstat (limited to 'Arduino/ButtonMatrix')
-rwxr-xr-x | Arduino/ButtonMatrix/ButtonMatrix.pde | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/Arduino/ButtonMatrix/ButtonMatrix.pde b/Arduino/ButtonMatrix/ButtonMatrix.pde new file mode 100755 index 0000000..85a9bfa --- /dev/null +++ b/Arduino/ButtonMatrix/ButtonMatrix.pde @@ -0,0 +1,62 @@ +#include <Keypad.h> // Needs to be the modified version + +const byte ROWS = 19; +const byte COLS = 8; + +/* Each of the buttons can be refered to by a number + At the moment the byte overflow for the 127+ numbers is dealt with at the + getKey time, but if a unsigned byte could be used here it would remove the need + for the correction? +*/ +char keys[COLS][ROWS] = { +{1, 9, 17, 25, 33, 41, 49, 57, 65, 73, 81, 89, 97, 105, 113, 121, 129, 137, 145}, +{2, 10, 18, 26, 34, 42, 50, 58, 66, 74, 82, 90, 98, 106, 114, 122, 130, 138, 146}, +{3, 11, 19, 27, 35, 43, 51, 59, 67, 75, 83, 91, 99, 107, 115, 123, 131, 139, 147}, +{4, 12, 20, 28, 36, 44, 52, 60, 68, 76, 84, 92, 100, 108, 116, 124, 132, 140, 148}, +{5, 13, 21, 29, 37, 45, 53, 61, 69, 77, 85, 93, 101, 109, 117, 125, 133, 141, 149}, +{6, 14, 22, 30, 38, 46, 54, 62, 70, 78, 86, 94, 102, 110, 118, 126, 134, 142, 150}, +{7, 15, 23, 31, 39, 47, 55, 63, 71, 79, 87, 95, 103, 111, 119, 127, 135, 143, 151}, +{8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 128, 136, 144, 152} +}; + +byte colPins[COLS] = {9, 8, 7, 6, 5, 4, 3, 2}; +byte rowPins[ROWS] = {14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42}; + +/* + Becuase of the diodes being fitted the WRONG WAY ROUND, + the columns are rows and the rows are columns, have fun! +*/ +// ROW COL ROWS COLS +Keypad keypad = Keypad( makeKeymap(testKeysTwo), colPins, rowPins, COLS, ROWS); + +void setup(){ + Serial.begin(115200); + Serial.println("Go"); + +} +/* Send numbers back and forth to test the integrity of the serial communication + Computer sends the first byte +*/ +boolean runSerialTest() { + Serial.println("Begining Serial Test"); + delay(10); + byte sByte cByte; + for (int i=0; i<10000; i++) { + sByte = Serial.read(); + if (sByte != cByte && i != 0) return false; + sByte = ((sByte * 10) % 127); + Serial.write(sByte); + cByte = ((sByte * 10) % 127); // The next expected byte + } + return true; +} + +void loop(){ + // Serial.println("GetKeyCall"); + char customKey = customKeypad.getKey(); + int customKeyInt = customKey; + if (customKeyInt < 0) customKeyInt += 256; + if (customKey != NO_KEY){ + Serial.println(customKeyInt); + } +} |