|
|
- /*
- * Computer Switchboard
- *
- * Because interfacing with computers should be fun
- * and a keyboard is not enough.
- *
- * Let's turn a computer into an airplane (interface wise).
- *
- *
- *
- * MINIMAL:
- * I only need the button to shutdown the computer. No rotary or 7seg.
- */
-
- //todo: debounce, see neotimer
-
- //makes serial slower so it can be read
- #define DEBUGMODE 0
-
- #include <avr/io.h>
- #include <avr/interrupt.h>
-
-
-
-
- //switch
-
- // digital pin 9 has a pushbutton attached to it. Give it a name:
- int pushButton = 9;
-
-
-
-
- // Example showing use of the MD_KeySwitch library
- //
- // Momentary switch
- //
- // Prints the switch value on the Serial Monitor
- // Allows setting of options to see theior effect (see setup())
- //
- #include <MD_KeySwitch.h>
-
- // This is just an average debounce -steak
- // what i need is a way to actually, not register if I don't pick up the depressed button
- // but good enough for now
-
-
- const uint8_t SWITCH_PIN = 9; // switch connected to this pin
- const uint8_t SWITCH_ACTIVE = LOW; // digital signal when switch is pressed 'on'
-
- MD_KeySwitch S(SWITCH_PIN, SWITCH_ACTIVE);
-
-
-
- void setup() {
- // initialize I/O pins
-
- Serial.begin(9600);
- Serial.println("GnuxSwitcher");
-
- pinMode(pushButton, INPUT_PULLUP);
- pinMode(LED_BUILTIN, OUTPUT);
-
- S.begin();
- //S.enableDoublePress(true);
- //S.enableLongPress(true);
- /*S.enableRepeat(true);
- S.enableRepeatResult(true);*/
-
-
- }
-
- void loop() {
-
-
-
-
-
-
-
-
-
-
- //BUTTONS
-
- /* int resultb = 0;
- resultb = PINB;
- delay(100);
- if (resultb == 0 ){
-
-
- decPt = 1;
-
- Serial.print("User Pressed button: ");
- Serial.println(segdisp);
-
- }
- else{
- decPt = 0;
- }
- */
- // too fast, print serial when checking switch only
- // Serial.println(resultb,BIN); // noisy, but reads 0 when low.
-
- switch(S.read())
- {
- case MD_KeySwitch::KS_NULL: /* Serial.println("NULL"); */ break;
-
- case MD_KeySwitch::KS_PRESS:
- //Serial.println("\nSINGLE PRESS");
- Serial.println("Initiate the Shutdown Procedure Immediately");
- digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
- delay(1000); // wait for a second
- digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
- break;
-
- /*
- case MD_KeySwitch::KS_DPRESS: Serial.print("\nDOUBLE PRESS");
- break;*/
-
- //case MD_KeySwitch::KS_LONGPRESS: Serial.print("\nLONG PRESS");
- //break; //this doesn't seem to work at all. - steak
- /*
- case MD_KeySwitch::KS_RPTPRESS: Serial.print("\nREPEAT PRESS");
- break;
- */
- default: Serial.print("\nUNKNOWN");
- break;
- }
-
-
-
- }
-
-
-
-
-
-
-
-
-
-
|