Advertisement
Jummit

Teensy Keyboard Script

Oct 6th, 2019
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.65 KB | None | 0 0
  1. #define LAYOUT_GERMAN
  2. #define ROW_MIN 4
  3. #define ROW_MAX 12
  4. #define COL_MIN 14
  5. #define COL_MAX 29
  6. #include "keylayouts.h"
  7.  
  8. int keymap[9][16] = {
  9.     KEY_ESC      ,KEY_F1    ,KEY_F2           ,KEY_F3         ,KEY_F4         ,KEY_F5      ,KEY_F6         ,KEY_F7     ,KEY_F8              ,KEY_F9              ,KEY_F10            ,KEY_F11              ,KEY_F12              ,KEY_PRINTSCREEN     ,KEY_SCROLL_LOCK       ,KEY_PAUSE,
  10.     0            ,0         ,KEY_TILDE        ,KEY_1          ,KEY_2          ,KEY_3       ,KEY_4          ,KEY_5      ,KEY_6               ,KEY_7               ,KEY_8              ,KEY_9                ,KEY_0                ,KEY_MINUS           ,KEY_EQUAL              ,0,
  11.     0            ,0         ,KEY_TAB          ,KEY_Q          ,KEY_W          ,KEY_E       ,KEY_R          ,KEY_T      ,KEY_Y               ,KEY_U               ,KEY_I              ,KEY_O                ,KEY_P                ,KEY_LEFT_BRACE      ,KEY_RIGHT_BRACE       ,0,
  12.     0            ,0         ,KEY_CAPS_LOCK    ,KEY_A          ,KEY_S          ,KEY_D       ,KEY_F          ,KEY_G      ,KEY_H               ,KEY_J               ,KEY_K              ,KEY_L                ,KEY_SEMICOLON        ,KEY_QUOTE           ,KEY_NON_US_NUM        ,KEY_ENTER,
  13.     0            ,0         ,MODIFIERKEY_SHIFT,KEY_NON_US_100 ,KEY_Z          ,KEY_X       ,KEY_C          ,KEY_V      ,KEY_B               ,KEY_N               ,KEY_M              ,KEY_COMMA            ,KEY_PERIOD           ,KEY_SLASH           ,0                     ,MODIFIERKEY_RIGHT_SHIFT,
  14.     0            ,0         ,MODIFIERKEY_CTRL ,MODIFIERKEY_GUI,MODIFIERKEY_ALT,0           ,0              ,KEY_SPACE  ,0                   ,0                   ,0                  ,MODIFIERKEY_RIGHT_ALT,MODIFIERKEY_RIGHT_GUI,KEY_MENU            ,MODIFIERKEY_RIGHT_CTRL,KEY_LEFT,
  15.     KEY_BACKSPACE,KEY_INSERT,KEY_HOME         ,KEY_PAGE_UP    ,KEY_NUM_LOCK   ,KEYPAD_SLASH,KEYPAD_ASTERIX,KEYPAD_PLUS,KEY_DELETE          ,KEY_END             ,KEY_PAGE_DOWN          ,KEYPAD_7             ,KEYPAD_8             ,KEYPAD_9            ,KEYPAD_4              ,KEYPAD_5,
  16.     KEY_RIGHT    ,KEYPAD_0  ,KEYPAD_PERIOD    ,KEYPAD_ENTER   ,KEYPAD_1       ,KEYPAD_2    ,KEYPAD_6       ,KEYPAD_3   ,KEY_DOWN            ,KEY_UP              ,0                  ,0                    ,0                    ,0                   ,0                     ,0,
  17.     0            ,0         ,0                ,0              ,0              ,0           ,0              ,0          ,KEY_MEDIA_VOLUME_DEC,KEY_MEDIA_VOLUME_INC,KEY_MEDIA_PLAY_PAUSE,KEY_MEDIA_STOP       ,KEY_MEDIA_NEXT_TRACK ,KEY_MEDIA_PREV_TRACK,KEYPAD_MINUS          ,KEY_MEDIA_MUTE
  18. };
  19.  
  20. void setup() {
  21.   Serial.begin(38400);
  22.   while (!Serial) {;}
  23.       Serial.println("Start");
  24.  for (int r = ROW_MIN; r <= ROW_MAX; r++) {
  25.     pinMode(r, OUTPUT);
  26.     for (int c = COL_MIN; c <= COL_MAX; c++) {
  27.       pinMode(c, INPUT_PULLUP);
  28.     }
  29.  }
  30.   Serial.println(keymap[0][0]);
  31.  
  32. Serial.println(KEY_ESC);
  33. }
  34.  
  35. void loop() {
  36.  for (int r = ROW_MIN; r <= ROW_MAX; r++) {
  37.     digitalWrite(r, LOW);
  38.     Serial.print(r-ROW_MIN);
  39.     Serial.print(", ");
  40.     Serial.println(analogRead(COL_MAX+1));
  41.     digitalWrite(r, HIGH);
  42.   }
  43.   delay(1000);
  44. }
  45.  
  46. void _loop() {
  47.  for (int r = ROW_MIN; r <= ROW_MAX; r++) {
  48.     digitalWrite(r, LOW);
  49.     for (int c = COL_MIN; c <= COL_MAX; c++) {
  50.       int code = keymap[r-ROW_MIN][c-COL_MIN];
  51.       if (digitalRead(c) == LOW && code > 0) {
  52.         Serial.print(r-ROW_MIN);
  53.                 Serial.print(", ");
  54.                 Serial.println(c-COL_MIN);
  55.      //Keyboard.press(code);
  56.      //Keyboard.release(code);
  57.       }
  58.     }
  59.     digitalWrite(r, HIGH);
  60.   }
  61.   delay(20);
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement