私は2台のサーボモータを制御していました。シリアルモニタに1〜5の数字を入力すると、コードに記載されているようにコマンドに従います。私は数1-5で数回書くと、サーボは突然停止し、私はもうシリアルモニターで何も入力できません。私はコードの前進部分だけを持っていたとうまくいきました。Arduinoサーボモータとシリアルモニタが突然「クラッシュ」する
#include <Servo.h>
Servo servo1;
Servo servo2;
int servodata;
void setup()
{
Serial.begin(9600);
Serial.println("Redy");
Serial.println("1 stop ");
Serial.println("2 forward");
Serial.println("3 backward");
Serial.println("4 Turn left");
Serial.println("5 Turn right");
servo1.attach(D7) ;
pinMode(D7, OUTPUT);
servo2.attach(D8) ;
pinMode(D8, OUTPUT);
}
void loop()
{
if (Serial.available() > 0)
{
servodata = Serial.read();
if(servodata == '1') // Single Quote! This is a character.
{
Serial.println("Stop");
{
servo1.write(90); //stop
servo2.write(90);
delay(3000);
}
}
if(servodata == '4')
{
Serial.println("Turn left");
{
servo1.write(0); //Turn left
servo2.write(0);
delay(3000);
}
}
if(servodata == '5')
{
Serial.println("Turn right");
{
servo1.write(180); //Turn right
servo2.write(180);
delay(3000);
}
}
if(servodata == '2')
{
Serial.println("Forward");
{
servo1.write(0); //Forward
servo2.write(180);
delay(3000);
}
}
if(servodata == '3')
{
Serial.println("Backward");
{
servo1.write(180); //Backward
servo2.write(0);
delay(3000);
}
}
Serial.println(" "); // End the line
}
}
* servos *のよくある問題は、*電源が不十分なためです。 –