#include int fehler = 0 ; int start = 0 ; int servo = 0 ; Servo servo_pin_11; int a; void interruptPin2(); void Unterprogramm1(); void Unterprogramm2(); void Unterprogramm3(); void setup() { pinMode( 3 , INPUT); pinMode( 4 , INPUT); digitalWrite(3, HIGH); digitalWrite(4, HIGH); servo_pin_11.attach(11); pinMode( 5 , OUTPUT); pinMode( 6 , OUTPUT); pinMode( 7 , OUTPUT); pinMode( 8 , OUTPUT); pinMode( 9 , OUTPUT); attachInterrupt(0,interruptPin2,CHANGE); pinMode( 12 , OUTPUT); fehler = 0 ; start = 0 ; servo = 60 ; servo_pin_11.write( 25 ); delay( 100 ); servo_pin_11.detach(); digitalWrite( 5 , HIGH ); digitalWrite( 6 , LOW ); digitalWrite( 7 , HIGH ); digitalWrite( 8 , HIGH ); digitalWrite( 9 , HIGH ); } void loop() { if (!( digitalRead(4) )) { start = ( start + 1 ) ; digitalWrite( 5 , LOW ); digitalWrite( 6 , HIGH ); delay( 500 ); while ( !( digitalRead(3) ) ) { delay( 50 ); } } if (( ( start ) == ( 0 ) )) { fehler = 0 ; digitalWrite( 5 , HIGH ); digitalWrite( 6 , LOW ); digitalWrite( 7 , HIGH ); digitalWrite( 8 , HIGH ); digitalWrite( 9 , HIGH ); } while ( ( ( start ) == ( 1 ) ) ) { while ( !( digitalRead(3) ) ) { fehler = ( fehler + 1 ) ; if (( ( fehler ) == ( 1 ) )) { digitalWrite( 9 , LOW ); digitalWrite( 8 , HIGH ); digitalWrite( 7 , HIGH ); digitalWrite( 12 , HIGH ); delay( 500 ); digitalWrite( 12 , LOW ); } if (( ( fehler ) == ( 2 ) )) { digitalWrite( 9 , LOW ); digitalWrite( 8 , LOW ); digitalWrite( 7 , HIGH ); digitalWrite( 12 , HIGH ); delay( 500 ); digitalWrite( 12 , LOW ); } if (( ( fehler ) == ( 3 ) )) { digitalWrite( 9 , LOW ); digitalWrite( 8 , LOW ); digitalWrite( 7 , LOW ); digitalWrite( 12 , HIGH ); delay( 500 ); digitalWrite( 12 , LOW ); } } if (( ( ( start ) == ( 1 ) ) && ( ( ( fehler ) == ( 0 ) ) && !( digitalRead(4) ) ) )) { Unterprogramm1(); start = 0 ; } if (( ( ( start ) == ( 1 ) ) && ( ( ( fehler ) == ( 1 ) ) && !( digitalRead(4) ) ) )) { Unterprogramm2(); start = 0 ; } if (( ( ( start ) == ( 1 ) ) && ( ( ( fehler ) == ( 2 ) ) && !( digitalRead(4) ) ) )) { Unterprogramm3(); start = 0 ; } } } void interruptPin2() { start = 0 ; } void Unterprogramm2() { servo_pin_11.attach(11); servo_pin_11.write( 150 ); delay( 1500 ); servo = 60 ; for (a=1; a<= ( 45 ); ++a ) { servo_pin_11.write( servo ); servo = ( servo - 1 ) ; delay( 30 ); } for (a=1; a<= ( 10 ); ++a ) { servo_pin_11.write( servo ); servo = ( servo + 1 ) ; delay( 30 ); } delay( 100 ); servo_pin_11.write( 150 ); delay( 1500 ); servo = 60 ; for (a=1; a<= ( 45 ); ++a ) { servo_pin_11.write( servo ); servo = ( servo - 1 ) ; delay( 30 ); } for (a=1; a<= ( 10 ); ++a ) { servo_pin_11.write( servo ); servo = ( servo + 1 ) ; delay( 30 ); } delay( 100 ); servo_pin_11.detach(); } void Unterprogramm3() { start = 0 ; servo_pin_11.attach(11); servo_pin_11.write( 150 ); delay( 1500 ); servo = 60 ; for (a=1; a<= ( 45 ); ++a ) { servo_pin_11.write( servo ); servo = ( servo - 1 ) ; delay( 30 ); } for (a=1; a<= ( 10 ); ++a ) { servo_pin_11.write( servo ); servo = ( servo + 1 ) ; delay( 30 ); } delay( 100 ); servo_pin_11.detach(); } void Unterprogramm1() { servo_pin_11.attach(11); servo_pin_11.write( 150 ); delay( 1500 ); servo = 60 ; for (a=1; a<= ( 45 ); ++a ) { servo_pin_11.write( servo ); servo = ( servo - 1 ) ; delay( 30 ); } for (a=1; a<= ( 10 ); ++a ) { servo_pin_11.write( servo ); servo = ( servo + 1 ) ; delay( 30 ); } delay( 100 ); servo_pin_11.write( 150 ); delay( 1500 ); servo = 60 ; for (a=1; a<= ( 45 ); ++a ) { servo_pin_11.write( servo ); servo = ( servo - 1 ) ; delay( 30 ); } for (a=1; a<= ( 10 ); ++a ) { servo_pin_11.write( servo ); servo = ( servo + 1 ) ; delay( 30 ); } delay( 100 ); servo_pin_11.write( 150 ); delay( 1500 ); servo = 60 ; for (a=1; a<= ( 45 ); ++a ) { servo_pin_11.write( servo ); servo = ( servo - 1 ) ; delay( 30 ); } for (a=1; a<= ( 10 ); ++a ) { servo_pin_11.write( servo ); servo = ( servo + 1 ) ; delay( 30 ); } delay( 100 ); servo_pin_11.detach(); }