2017-01-25 6 views
1

Я пытался контролировать мой 2-х сервомоторный последовательный монитор. Когда я ввожу номер 1-5 в последовательный монитор, он следует команде, как сказано в коде. Я пишу в цифрах 1-5 пару раз, и сервоприводы внезапно останавливаются, и я больше не могу ничего вводить в серийный монитор. Он отлично работал, когда у меня была только движущаяся часть кода.Серводвигатели Arduino и серийный монитор внезапно «сбой»

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 


    } 
    } 
+0

Обычная проблема с * servos * не хватает * источник питания *. –

ответ

1

Я думаю, что это происходит из-за последовательной связи. Серийный номер 9600 BAUD ОЧЕНЬ МЕДЛЕННЫЙ и останавливает сервер. Попробуйте удалить серийные отпечатки, если он все еще замерзает, проблема в другом.

+0

Благодарим вас за ответ. Я пробовал скорость передачи данных 56000 и 115200, но он все еще «падает». – in2d

+1

Что делать, если вы просто удалите их. Он все еще падает? – Gigitex

+0

Работает нормально без сервомоторов. Может ли проблема, что мои порты USB выдают слишком мало напряжения для этих сервомоторов? Что вы думаете? – in2d

Смежные вопросы