Ich versuche, zwei Servos gleichzeitig mit Arduino UNO und Arduino Motor Shield zu steuern. Meine Servos sind so modifiziert, dass sie mit ständiger Bewegung arbeiten können.
Wenn ich die erste Bestellung myservoP.write(180);
(volle Geschwindigkeit) sende , funktioniert es gut; Wenn ich jedoch versuche, meinem Servo zu befehlen, die Richtung zu ändern ( myservoP.write(0);
), stürzt mein Arduino sofort ab und wird zurückgesetzt.
Zuerst denke ich, dass es ein Problem mit der Stromversorgung sein könnte, aber nachdem ich es mit meinem Programm (unten aufgeführt) getestet habe, beginne ich zu denken, dass es ein Problem mit dem Puffer oder dem Speicher ist. Ohne Verzögerungen stürzt der Arduino nach etwa 10 Iterationen ab. Mit Verzögerung (10) stürzt es nach etwa 90 Iterationen ab. Mit der Verzögerung (20) kann Arduino einen vollständigen Zyklus fünfmal von Anfang bis Ende wiederholen. Beim 6. Versuch stürzte es erneut ab.
Hier ist mein Code:
#include <Servo.h>
Servo myservoL;
Servo myservoP;
int i;
void setup()
{
delay(2000);
myservoL.attach(9); // attaches the servo on pin 9 to the servo object
myservoP.attach(10); // attaches the servo on pin 10 to the servo object
Serial.begin(9600);
}
void loop()
{
for(i=180; i>=0; i--)
{
delay(20);
Serial.println(i);
myservoP.write(i);
myservoL.write(i);
}
for(i=0; i<=190; i++)
{
delay(20);
Serial.println(i);
myservoP.write(i);
myservoL.write(i);
}