Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Keyboard.h>
- //Knob
- #define knobA 16
- #define knobB 14
- //Knob Clicker
- #define knobClick 10
- //Right Keys
- #define rightBottom 18
- #define rightMiddle 15
- #define rightTop 19
- //Left Keys
- #define leftBottom 9
- #define leftMiddle 8
- #define leftTop 7
- int counter = 0;
- int counterlast = 0;
- int aState;
- int aLastState;
- int clickPressed;
- int clickPressedLast;
- //Left Keys
- int lBottomPressed;
- int lBottomPressedLast;
- int lMiddlePressed;
- int lMiddlePressedLast;
- int lTopPressed;
- int lTopPressedLast;
- //Right Keys
- int rBottomPressed;
- int rBottomPressedLast;
- int rMiddlePressed;
- int rMiddlePressedLast;
- int rTopPressed;
- int rTopPressedLast;
- //Keypress bools
- boolean knobClicked;
- boolean lBottom;
- boolean lMiddle;
- boolean lTop;
- boolean rBottom;
- boolean rMiddle;
- boolean rTop;
- void setup() {
- //Knob
- pinMode (knobA,INPUT);
- pinMode (knobB,INPUT);
- //Knob Clicker
- pinMode (knobClick, INPUT_PULLUP);
- //Right Keys
- pinMode (rightBottom, INPUT_PULLUP);
- pinMode (rightMiddle, INPUT_PULLUP);
- pinMode (rightTop, INPUT_PULLUP);
- //Left Keys
- pinMode (leftBottom, INPUT_PULLUP);
- pinMode (leftMiddle, INPUT_PULLUP);
- pinMode (leftTop, INPUT_PULLUP);
- Keyboard.begin();
- aLastState = digitalRead(knobA);
- clickPressedLast = digitalRead(knobClick);
- //Left Keys
- lBottomPressedLast = digitalRead(leftBottom);
- lMiddlePressedLast = digitalRead(leftMiddle);
- lTopPressedLast = digitalRead(leftTop);
- //Right Keys
- rBottomPressedLast = digitalRead(rightBottom);
- rMiddlePressedLast = digitalRead(rightMiddle);
- rTopPressedLast = digitalRead(rightTop);
- //Make sure to set keypress bools to false to avoid inverted key detection
- clickPressed = false;
- //Left Keys
- lBottom = false;
- lMiddle = false;
- lTop = false;
- //Right Keys
- rBottom = false;
- rMiddle = false;
- rTop = false;
- }
- void loop() {
- //Read state of pins
- //Rotary Encoder
- aState = digitalRead(knobA);
- clickPressed = digitalRead(knobClick);
- //Left Keys
- lBottomPressed = digitalRead(leftBottom);
- lMiddlePressed = digitalRead(leftMiddle);
- lTopPressed = digitalRead(leftTop);
- //Right Keys
- rBottomPressed = digitalRead(rightBottom);
- rMiddlePressed = digitalRead(rightMiddle);
- rTopPressed = digitalRead(rightTop);
- //Decode rotary encoder
- if (aState != aLastState){
- if (digitalRead(knobB) != aState) {
- counter ++;
- } else {
- counter --;
- }
- if (counter < counterlast){
- Remote.decrease();
- }
- if (counter > counterlast){
- Remote.increase();
- }
- counterlast = counter;
- }
- //Check for button presses, set bool, do stuff
- if (lBottomPressed != lBottomPressedLast){ if (digitalRead(leftBottom) != lBottomPressed) { }lBottom = !lBottom;
- if (lBottom == true) {
- Remote.previous();
- }else{
- }
- }
- if (lMiddlePressed != lMiddlePressedLast){ if (digitalRead(leftMiddle) != lMiddlePressed) { } lMiddle = !lMiddle;
- if (lMiddle == true) {
- Keyboard.press(KEY_LEFT_CTRL);
- Keyboard.press(KEY_RIGHT_SHIFT);
- Keyboard.press(KEY_F12);
- }else{
- Keyboard.release(KEY_LEFT_CTRL);
- Keyboard.release(KEY_RIGHT_SHIFT);
- Keyboard.release(KEY_F12);
- }
- }
- if (lTopPressed != lTopPressedLast){ if (digitalRead(leftTop) != lTopPressed) { } lTop = !lTop;
- if (lTop == true) {
- Keyboard.release(KEY_LEFT_CTRL);
- Keyboard.press(KEY_RIGHT_SHIFT);
- Keyboard.press(KEY_F11);
- }else{
- Keyboard.release(KEY_LEFT_CTRL);
- Keyboard.release(KEY_RIGHT_SHIFT);
- Keyboard.release(KEY_F11);
- }
- }
- if (rBottomPressed != rBottomPressedLast){ if (digitalRead(rightBottom) != rBottomPressed) { } rBottom = !rBottom;
- if (rBottom == true) {
- Keyboard.press(KEY_LEFT_CTRL);
- Keyboard.press(KEY_RIGHT_SHIFT);
- Keyboard.press(KEY_F10);
- }else{
- Keyboard.release(KEY_LEFT_CTRL);
- Keyboard.release(KEY_RIGHT_SHIFT);
- Keyboard.release(KEY_F10);
- }
- }
- if (rMiddlePressed != rMiddlePressedLast){ if (digitalRead(rightMiddle) != rMiddlePressed) { } rMiddle = !rMiddle;
- if (rMiddle == true) {
- Remote.next();
- }else{
- }
- }
- if (rTopPressed != rTopPressedLast){ if (digitalRead(rightTop) != rTopPressed) { } rTop = !rTop;
- if (rTop == true) {
- Keyboard.press(KEY_LEFT_CTRL);
- Keyboard.press(KEY_RIGHT_SHIFT);
- Keyboard.press(KEY_F9);
- }else{
- Keyboard.release(KEY_LEFT_CTRL);
- Keyboard.release(KEY_RIGHT_SHIFT);
- Keyboard.release(KEY_F9);
- }
- }
- if (clickPressed != clickPressedLast){ if (digitalRead(knobClick) != clickPressed) { } knobClicked = !knobClicked;
- if (knobClicked == true) {
- Remote.play();
- }else{
- }
- }
- //Reset denoising values every loop
- aLastState = aState;
- clickPressedLast = clickPressed;
- lBottomPressedLast = lBottomPressed;
- lMiddlePressedLast = lMiddlePressed;
- lTopPressedLast = lTopPressed;
- rBottomPressedLast = rBottomPressed;
- rMiddlePressedLast = rMiddlePressed;
- rTopPressedLast = rTopPressed;
- }
Advertisement
Add Comment
Please, Sign In to add comment