//Cliff Aaker //2019.12.9 #include #include Servo servoA; // create servo object to control a servo pin7 int oldAngle = 180; // Spur TT is pointing at 1 90 or 180 int newAngle = 180; //button input int pos = 180; // variable for next loop // EEPROM.write(addr, pos); value = EEPROM.read(addr); EEPROM.update(addr, pos); int addr = 0; //EEPROM address int buttonApin = 1; //create switch pin int buttonBpin = 2; //create switch pin int buttonCpin = 3; //create switch pin int buttonDpin = 4; //create switch pin int buttonEpin = 5; //create switch pin int buttonFpin = 6; //create switch pin int buttonGpin = 7; //create switch pin int buttonHpin = 8; //create switch pin void setup() { pinMode(buttonApin, INPUT_PULLUP); pinMode(buttonBpin, INPUT_PULLUP); pinMode(buttonCpin, INPUT_PULLUP); pinMode(buttonDpin, INPUT_PULLUP); pinMode(buttonEpin, INPUT_PULLUP); pinMode(buttonFpin, INPUT_PULLUP); pinMode(buttonGpin, INPUT_PULLUP); pinMode(buttonHpin, INPUT_PULLUP); oldAngle = EEPROM.read(addr); newAngle = oldAngle; servoA.write(oldAngle); servoA.attach(10); // attaches the servo (pin) to the servo object //servoA.write(origAngle); } void loop() { //full clockwise if (digitalRead(buttonApin) == LOW && digitalRead(buttonApin) == LOW && digitalRead(buttonApin) == LOW) { newAngle = 0; }//top if (digitalRead(buttonBpin) == LOW && digitalRead(buttonBpin) == LOW && digitalRead(buttonBpin) == LOW) { newAngle = 20; } if (digitalRead(buttonCpin) == LOW && digitalRead(buttonCpin) == LOW && digitalRead(buttonCpin) == LOW) { newAngle = 40; } if (digitalRead(buttonDpin) == LOW && digitalRead(buttonDpin) == LOW && digitalRead(buttonDpin) == LOW) { newAngle = 70; } //130 = 180 degrees if (digitalRead(buttonEpin) == LOW && digitalRead(buttonEpin) == LOW && digitalRead(buttonEpin) == LOW) { newAngle = 126; }//bottom //full counter clock if (digitalRead(buttonFpin) == LOW && digitalRead(buttonFpin) == LOW && digitalRead(buttonFpin) == LOW) { newAngle = 158; } if (digitalRead(buttonGpin) == LOW && digitalRead(buttonGpin) == LOW && digitalRead(buttonGpin) == LOW) { newAngle = 168; } //full counter clock if (digitalRead(buttonHpin) == LOW && digitalRead(buttonHpin) == LOW && digitalRead(buttonHpin) == LOW) { newAngle = 180; } if (newAngle != oldAngle) { if (newAngle > oldAngle) { //servoA.write(newAngle); for (pos = oldAngle; pos <= newAngle; pos += 1) { // in steps of 1 degree servoA.write(pos); // tell servo to go to position in variable 'pos' delay(90); // waits for the servo to reach the position } //for } else { //newAngle > //servoA.write(newAngle); for (pos = oldAngle; pos >= newAngle; pos -= 1) { // in steps of 1 degree servoA.write(pos); // tell servo to go to position in variable 'pos' delay(90); // waits for the servo to reach the position } //for }// else oldAngle = newAngle; EEPROM.write(addr, newAngle); //EEPROM.update(addr, newAngle); }//if newAngle != } //END VOID LOOP