Guest User

Untitled

a guest
May 22nd, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.95 KB | None | 0 0
  1. // 0 1 2 3 4 5 6 7 8 9 * #
  2. byte keycode[] = { 0xE5, 0x73, 0x75, 0x76, 0xB3, 0xB5, 0xB6, 0xD3, 0xD5, 0xD6, 0xE3, 0xE6 };
  3.  
  4. void setup() {
  5. Serial.begin(9600);
  6.  
  7. // Col
  8. pinMode(2, INPUT);
  9. pinMode(3, INPUT);
  10. pinMode(4, INPUT);
  11.  
  12. // Row
  13. pinMode(5, OUTPUT);
  14. pinMode(6, OUTPUT);
  15. pinMode(7, OUTPUT);
  16. pinMode(8, OUTPUT);
  17. }
  18.  
  19. char ScanKey() {
  20. for (int i = 0; i < 12; i++) {
  21. digitalWrite(5, keycode[i] & 0b00010000);
  22. digitalWrite(6, keycode[i] & 0b00100000);
  23. digitalWrite(7, keycode[i] & 0b01000000);
  24. digitalWrite(8, keycode[i] & 0b10000000);
  25.  
  26. byte key = (keycode[i] & 0xF0) | (digitalRead(4) << 2) | (digitalRead(3) << 1) | digitalRead(2);
  27. if (key == keycode[i]) {
  28. return (i < 10 ? i + '0' : i == 10 ? '*' : i == 11 ? '#' : 0);
  29. }
  30. }
  31.  
  32. return 0;
  33. }
  34.  
  35. void loop() {
  36. char key = ScanKey();
  37. if (key != 0) {
  38. while(ScanKey() == key) delay(10);
  39. Serial.println(key);
  40. }
  41. }
Add Comment
Please, Sign In to add comment