Arduino伺服电机和串口监控器突然“崩溃”

时间:2017-01-25 20:25:38

标签: arduino monitor servo controlling

我一直试图控制我的2台伺服电机连续监视器。当我输入数字1-5到串行监视器时,它遵循代码中说明的命令。我写了几次数字1-5,伺服器突然停止,我再也无法进入串行监视器。当我只有代码的前进部分时,它工作得很好。

enter image description here

#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


  }
    }

1 个答案:

答案 0 :(得分:1)

我认为这是因为串行通信。串行在9600 BAUD非常慢,并停止服务器。尝试删除串行打印,如果它仍然冻结,那么问题就是其他问题。