/*******************************************************************************/ // //Copyright (c) [2016] [Elliott Graham Magee] // //Permission is hereby granted, free of charge, to any person obtaining a copy //of this software and associated documentation files (the "Software"), to deal //in the Software without restriction, including without limitation the rights //to use, copy, modify, merge, publish, distribute, sublicense, and/or sell //copies of the Software, and to permit persons to whom the Software is //furnished to do so, subject to the following conditions: // //The above copyright notice and this permission notice shall be included in all //copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR //IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, //FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE //AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER //LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, //OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE //SOFTWARE. // /*******************************************************************************/ #include int but1 = 0; //create an integer to save the state of button 1 int but2 = 0; //create an integer to save the state of button 2 int but3 = 0; //create an integer to save the state of button 3 // The setup routine runs once when you press reset: void setup() { Serial.begin(115200); pinMode(22, OUTPUT); //Forward pinMode(24, OUTPUT); //Backward pinMode(30, INPUT); //manual backwards pinMode(28, INPUT); //manual forwards pinMode(26, INPUT); //EMG overide digitalWrite(22, HIGH); //start output high as EZ-KEY reads low as input digitalWrite(24, HIGH); //start output high as EZ-Key reads low as input } // The loop routine runs over and over again forever: void loop() { int EMG = eHealth.getEMG(); //reads current EMG values but1 = digitalRead(26); //reads status button 1 (EMG overide) but2 = digitalRead(28); //reads status button 2 (manual forward) but3 = digitalRead(30); //reads status button 3 (manual backwards) if (but1 == HIGH) // checks for EMG overide //manual overide off { if (EMG > PLACE_YOUR_THRESHOLD_TRIGGER_VALUE_HERE) // EMG trigger threshold { digitalWrite(22, LOW); //sends forward trigger to EZ-KEY delay(200); //delays 200 ms digitalWrite(22, HIGH); //stops forward trigger to EZ-KEY delay(500); //delays 500 ms } else if (but2 == HIGH) // checks manual foward button { digitalWrite(22, LOW); //sends forward trigger to EZ-KEY delay(200); //delays 200 ms digitalWrite(22, HIGH); //stops forward trigger to EZ-KEY delay(200); //delays 200 ms } else if (but3 == HIGH) //checks manual back button { digitalWrite(24, LOW); //sends back trigger to EZ-KEY delay(200); //delays 200 ms digitalWrite(24, HIGH); //stops back trigger to EZ-KEY delay(200); //delays 200 ms } } //manual overide on else if (but2 == HIGH) //checks manual forward button { digitalWrite(22, LOW); //sends forward trigger to EZ-KEY delay(200); //delays 200 ms digitalWrite(22, HIGH); //stops forward trigger to EZ-KEY delay(200); //delays 200 ms } else if (but3 == HIGH) //checks manual back button { digitalWrite(24, LOW); //sends back trigger to EZ-KEY delay(200); //delays 200 ms digitalWrite(24, HIGH); //stops back tigger to EZ-KEY delay(200); //delays 200 ms } }