#include Servo sailservo; // assign servo for sail Servo rudderservo; // assign servo for rudder int sailstate = 90; // assign start position for sail int rudderstate = 90; // assign start position for rudder int pos1 = 90; // assign start position for sailservo int pos2 = 90; // assign start position for rudderservo void setup() { rudderservo.attach(9); // assign sailservo to digital pin 9 sailservo.attach(10); // assign rudderservo to digital pin 10 } void loop() { if(digitalRead(4) || digitalRead(5) == HIGH){ // check if pin 4 or 5 is HIGH sailcheck(); // if 4 or 5 is HIGH go to sailcheck function } if(digitalRead(6) || digitalRead(7) == HIGH){ // check if pin 6 or 7 is HIGH ruddercheck(); // if 6 or 7 is HIGH go to ruddercheck function } else // else put rudder start position(90 degres) rudderstate = 90; rudderservo.write(rudderstate); } void sailcheck() { // sailcheck function if(digitalRead(4) == HIGH) sailstate = sailstate + 10; // if pin 4 is HIGH add 10 degres to sailservo position if(digitalRead(5) == HIGH) sailstate = sailstate - 10; // if pin 5 is HIGH remove 10 degres to sailservo position if (sailstate >= 180) sailstate = 180; // maximum position 180 if (sailstate <= 0) sailstate = 0; // minimum position 00 pos1 = sailstate; sailservo.write(pos1); delay(150); // 150 ms delay } void ruddercheck() { // ruddercheck function if(digitalRead(6) == HIGH) rudderstate = rudderstate + 15; // if pin 6 is HIGH add 15 degres to rudderservo position if(digitalRead(7) == HIGH) rudderstate = rudderstate - 15; // if pin 7 is HIGH remove 15 degres to rudderservo position if (rudderstate >= 180) rudderstate = 180; // maximum rudder position 180 if (rudderstate <= 0) rudderstate = 0; // minimum rudder position 00 rudderservo.write(rudderstate); delay(75); // 75 ms delay }