Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 0 1 2 3 4 5 6 7 8 9 * #
- byte keycode[] = { 0xE5, 0x73, 0x75, 0x76, 0xB3, 0xB5, 0xB6, 0xD3, 0xD5, 0xD6, 0xE3, 0xE6 };
- void setup() {
- Serial.begin(9600);
- // Col
- pinMode(2, INPUT);
- pinMode(3, INPUT);
- pinMode(4, INPUT);
- // Row
- pinMode(5, OUTPUT);
- pinMode(6, OUTPUT);
- pinMode(7, OUTPUT);
- pinMode(8, OUTPUT);
- }
- char ScanKey() {
- for (int i = 0; i < 12; i++) {
- digitalWrite(5, keycode[i] & 0b00010000);
- digitalWrite(6, keycode[i] & 0b00100000);
- digitalWrite(7, keycode[i] & 0b01000000);
- digitalWrite(8, keycode[i] & 0b10000000);
- byte key = (keycode[i] & 0xF0) | (digitalRead(4) << 2) | (digitalRead(3) << 1) | digitalRead(2);
- if (key == keycode[i]) {
- return (i < 10 ? i + '0' : i == 10 ? '*' : i == 11 ? '#' : 0);
- }
- }
- return 0;
- }
- void loop() {
- char key = ScanKey();
- if (key != 0) {
- while(ScanKey() == key) delay(10);
- Serial.println(key);
- }
- }
Add Comment
Please, Sign In to add comment