#define pinServo 1 void servoAttach(byte pin){ pinMode(pin, OUTPUT); } void servoWrite(byte pin, byte angle){ int pulseHigh = map(angle,0,180,430,2100); int pulseLow = 20000-pulseHigh; for (int i=0;i<50;i++){ digitalWrite(pin, HIGH); delayMicroseconds(pulseHigh); digitalWrite(pin, LOW); delayMicroseconds(pulseLow); } } #define pinButton 0 void setup() { servoAttach(pinServo); servoWrite(pinServo, 0); pinMode(pinButton, INPUT); } void loop() { if (!digitalRead(pinButton)){ servoWrite(pinServo, 90); delay(3000); servoWrite(pinServo, 0); } }