сервомотор

Тема в разделе "Arduino & Shields", создана пользователем espilya, 29 янв 2017.

  1. espilya

    espilya Нерд

    как сделать чтоб сервомотор доходил до указанной позиции(на макс скорости) и потом после того как он дошел до нее уходил на вторую позицию а потом на третью?
    делал это с помощью:
    "myservo.write(180);
    delay (1000);"
    но сервотомор крутил до 180 и по истечению секунды крутился дальше. если уменьшал время то он просто не докручивал до 180 и по истечению времени уходил на вторую позицию.
     
  2. mcureenab

    mcureenab Гуру

    А где в вашем коде вторая позиция?
     
  3. rkit

    rkit Гуру

    В сервоприводах нету обратной связи. Если вам точно нужно знать, когда серво дошел до позиции, то придется прикручивать какой-нибудь внешний датчик.
     
  4. espilya

    espilya Нерд

    в коде она есть, это просто пример из кода
     
  5. espilya

    espilya Нерд

    ладно. а вот когда я использую "myservo.write(180);" сервопривод крутится на максимальной скорости, верно?
     
  6. mcureenab

    mcureenab Гуру

    Я угадаю этот код по двум операторам!
     
  7. rkit

    rkit Гуру

    Это уже зависит от мотора
     
  8. mcureenab

    mcureenab Гуру

    Скорость от напряжения питания сервомашинки зависит.
    Низкое напряжение - медленно крутит, высокое - быстро.
     
  9. Onkel

    Onkel Гуру

    это обычная штука с ардуино- хрен знает что делает библиотека, которую скачали и поставили. Может на максимальной, а может и на ограниченной, надо смотреть на все функции библиотеки. Если у вас есть осциллограф, то можно снять первый импульс и посчитать, а без прибора совет может дать только человек, который эту библиотеку писал. А другие люди могут посоветовать эту библиотеку внимательно изучить. Я управляю сервомашинками без библиотек, электромеханически сервомашинки крутятся с максимально доступоной им скоростью, никак эту скорость не ограничивают.
     
  10. espilya

    espilya Нерд

    еще вопросик:
    вот например хочу я чтобы воспроизводилась определенная мелодия а потом после нее крутился сервопривод. я это делаю вот так
    if (distance_sm < 20)
    {
    mp3_play (1); // Воспроизвести файл "mp3/0001.mp3
    myservo.write(180);
    delay (350);
    myservo.write(30);
    delay (300);
    }
    но файл воспроизводится и потом выключается. как сделать чтобы он не выключался до окончания файла?