Serial port 'COM9' already in use. Try quiting any programs that may be using it.

Тема в разделе "Arduino & Shields", создана пользователем Вячеслав, 4 мар 2012.

  1. Есть WindowsXP, ARDUINO и серва с постоянным вращением.
    Есть вот такой скетч:

    #include <Servo.h>
    Servo myservo;
    int pos = 0;
    void setup()
    {
    myservo.attach(9); // attaches the servo on pin 9 to the servo object
    }
    void loop()
    {
    for(pos = 0; pos <=255; pos += 1) // goes from 0 degrees to 180 degrees
    {
    myservo.write(pos); // tell servo to go to position in variable 'pos'
    delay(500); // waits 15ms for the servo to reach the position
    }
    }

    Все работает серва крутиться в обе стороны. Но при попытке открыть монитор, я хотел выводить туда 'pos' получаю сообщение об ошибке:
    Serial port 'COM9' already in use. Try quiting any programs that may be using it.

    После чего com9 вообще исчезает из системы. И появляется только после отключения от компа UNO.

    В чем дело? Что делать?
     
  2. nailxx

    nailxx Официальный Нерд Администратор

    А можете запостить именно проблемный скетч? В приведённом вами я не вижу Serial.begin(...) и Serial.write(...)
     
  3. Dmitriy Kunin

    Dmitriy Kunin Гик

    Неоднократно попадал в подобную ситуацию, и именно с сервами и моторами.
    Не особо разбирался, выдёргиваешь ардуину, закрываешь IDE, всталяешь Ардуину, открываешь IDE. :)
    Понимаю, что не очень удобно, но принимаю как явление природы :)
     
  4. Ну да. Монитор сам по себе не открывается. В данный момент скетч выглядит так.
    #include <Servo.h>
    Servo myservo;
    int pos = 0;

    void setup()
    {
    Serial.begin(9600);
    pinMode(13, OUTPUT);
    myservo.attach(9); //
    }

    void loop()
    {
    for(pos = 0; pos <=255; pos += 1) //
    { // in steps of 1 degree
    Serial.println(pos); // Вывести значение pos
    myservo.write(pos); //
    delay(1000); //
    digitalWrite(13, HIGH); // разик моргнуть
    delay(100); //
    digitalWrite(13, LOW); //
    }
    }


    Проблемы те же. После загрузки в ардуино уно не открывается монитор с тем же сообщение. Порт исчезает. Для его возврата нужно Выйти из Arduino 1.0, отключить плату, подключить плату, запустить Arduino 1.0. Но монитор все равно не откроется.
     
  5. Я хотел узнать при каких параметрах серва стоит, крутиться влево, крутится в право. Как же теперь это узнать?
     
  6. Dmitriy Kunin

    Dmitriy Kunin Гик

    Проверил на Ардуино Уно, прекрасно всё работает как на IDE 1.0 так и 0022.
    К стати ох и не быстро работает :) Четыре с половиной минуты на весь цикл, с задержкой вы погорячились :)
     
  7. У меня тоже уно. Но монитор не открывается.
     
  8. Неожиданное решение.
    1. Отключить управляющий провод сервы. У меня это pin 9.
    2. Запустить IDE 1.0
    3. Открыть монитор.
    4. Подключить провод.
    Все работает.
    Выходит крутящаяся серва как то "держит" serial.
     
  9. Dmitriy Kunin

    Dmitriy Kunin Гик

    Явно не хватает питания или прёт помеха, у меня этот эфект проявляется с мощными моторами, этот например гарантированно не даёт сериалу нормально жить.
    [​IMG]
    Вообще интересно разобраться, серва понятно, она на шине питаения сидит, но этот отдельно питается...
     
  10. Если серву подключить к фриду мотор шилду,который имеет два выхода под сервы и дать отдельное питание на шилд,то все работает на ура,а мотора такого у меня нет.можно на него даташку увидеть?
     
  11. Dmitriy Kunin

    Dmitriy Kunin Гик

    Это мотор из полноприводной машинки NIKO, увы мой ребёнок её угробил...
    Самый близкий мотор это QX-RS-385-2073 электромотор 28х57мм 9-24V.
    Только тот, что на картинке на 7.2 Вольта.
    Про моторшилд действительно интересно, к любому из них подключал этот мотор нормально работает Сериал монитор, как выносной контроллер, так цирк...
     
  12. Если у вас есть под рукой такой мотор шилд попробуйте подключить,я думаю,что все будет огонь.для верности,если есть данный м.ш. установите в него микрухи l293e у них пиковое чуть выше,чем l293(l293d).это вам даст меньший нагрев при длительной эксплуатации,если же есть в этом необходимость.
     
  13. Все верно. подключил сервы через регулятор напряжения. все заработало.