Die Stromversorgung für den Servo lief bisher über Arduino ... habe den Stepdown-Wandler schon bestellt.
Sketch befindet sich noch im Rohbau, sollte aber verständlich sein worauf ich hinaus will... hoffe ich 
#include <Servo.h> // Einbinden der Servo-Library
Servo myservo;
#include <LedControl.h> // Einbinden der LED Control - Library
LedControl lc = LedControl(5, 7, 6, 2); // Zuweisung LED Matrix Ausgänge
#include <NewPing.h> // Einbinden der NewPing Library -> Ultraschallsensor
NewPing sonar(2, 3, 30); // Zuweisung Ultraschallsensor
int kippschalter = 0;
int motor1plus = 10;
int motor1minus = 11;
int motor2plus = 12;
int motor2minus = 13;
int count;
int zufall;
int zeit1, zeit2;
int zeitvergangen;
int pos;
void setup() // Setup läuft ein mal oder bei betätigen des Reset tasters
{
myservo.attach(9); // Zuweisung PWM Ausgang Servo
pinMode(0, INPUT_PULLUP); // KIPPSCHALTER
pinMode(10, OUTPUT); // Motor M1 +
pinMode(11, OUTPUT); // Motor M1 -
pinMode(12, OUTPUT); // Motor M2+
pinMode(13, OUTPUT); // Motor M2-
lc.shutdown(0, false);
lc.setIntensity(0, 8);
lc.shutdown(1, false);
lc.setIntensity(1, 8);
//
zeitvergangen = 11000;
zeit1 = 0;
}
void loop() // Loop läuft in Schleife
{
do
{
lc.clearDisplay(0);
lc.clearDisplay(1);
lc.setRow(0, 0, B00011100);
lc.setRow(0, 1, B00100010);
lc.setRow(0, 2, B01011101);
lc.setRow(0, 3, B01011101);
lc.setRow(0, 4, B00100010);
lc.setRow(0, 5, B10011100);
lc.setLed(0, 5, 0, true);
lc.setLed(0, 6, 0, true);
lc.setLed(0, 7, 0, true);
lc.setLed(1, 0, 0, true);
lc.setLed(1, 1, 0, true);
lc.setRow(1, 2, B10011100);
lc.setRow(1, 3, B00100010);
lc.setRow(1, 4, B01011101);
lc.setRow(1, 5, B01011101);
lc.setRow(1, 6, B00100010);
lc.setRow(1, 7, B00011100);
delay(5000);
lc.setRow(0, 0, B00011100);
lc.setRow(0, 1, B00100000);
lc.setRow(0, 2, B01000000);
lc.setRow(0, 3, B01000000);
lc.setRow(0, 4, B00100000);
lc.setRow(0, 5, B10011100);
lc.setLed(0, 5, 0, true);
lc.setLed(0, 6, 0, true);
lc.setLed(0, 7, 0, true);
lc.setLed(1, 0, 0, true);
lc.setLed(1, 1, 0, true);
lc.setRow(1, 2, B10011100);
lc.setRow(1, 3, B00100000);
lc.setRow(1, 4, B01000000);
lc.setRow(1, 5, B01000000);
lc.setRow(1, 6, B00100000);
lc.setRow(1, 7, B00011100);
delay(200);
} while (digitalRead(kippschalter) == HIGH || zeitvergangen >10000 );
if (digitalRead(kippschalter) == LOW)
{
count++;
if (count < 5) // STANDARD REAKTION
{
for (pos = 0; pos < 90; pos= pos+1) // Servo fährt von 0° - 90° in Schritten von 1°
{
myservo.write(pos);
delay(15);
}
for (pos = 90; pos < 180; pos = pos + 2) // Servo fährt von 90° - 180° in Schritten von 2°
{
myservo.write(pos);
delay(15);
}
for (pos = 180; pos >0; pos = pos + 1) // Servo fährt von 90° - 180° in Schritte non 1 °
{
myservo.write(pos);
delay(15);
}
zeit1 = millis();
}
else
{
if (count <= 20)
{
zufall = random(21);
switch (zufall)
{
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 7:
break;
case 8:
break;
case 9:
break;
case 10:
break;
case 11:
break;
case 12:
break;
case 13:
break;
case 14:
break;
case 15:
break;
case 16:
break;
case 17:
break;
case 18:
break;
case 19:
break;
case 20:
break;
}
zeit1 = millis();
}
else
{
// REAKTION AUFGABE!
}
}
}
zeit2 = millis();
zeitvergangen = 0;
zeitvergangen = zeit2 - zeit1;
}
Die ganzen Cases sollen später die verschiedenen Reaktionen sein...