Motor shield издаёт писк

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем Nouveau, 15 дек 2013.

  1. Nouveau

    Nouveau Нуб

    Всем доброго времени суток! Пару дней назад я получил Arduino Uno, Motor shield и платформу Turtle (http://amperka.ru/product/turtle-chassis). Собрал платформу и подключил двигатели к Motor shield пока без пайки, просто прикрутил провода. Питание организовано совместное для шилда и ардуино просто через usb от пк. Загрузил скетч из примера на вики
    Код (Text):

    // Моторы подключаются к клеммам M1+,M1-,M2+,M2-
    // Motor shield использует четыре контакта 6,5,7,4 для управления моторами
    #define SPEED_LEFT      6
    #define SPEED_RIGHT    5
    #define DIR_LEFT        7
    #define DIR_RIGHT      4
    void go(int speed, bool reverseLeft, bool reverseRight, int duration)
    {    
        analogWrite(SPEED_LEFT, speed);
        analogWrite(SPEED_RIGHT, speed);
        digitalWrite(DIR_LEFT, reverseLeft ? LOW : HIGH);
        digitalWrite(DIR_RIGHT, reverseRight ? LOW : HIGH);
        delay(duration);
    }
    void setup()
    {  
        for(int i = 4; i <= 7; i++)  
            pinMode(i, OUTPUT);
    }
    void loop()
    {
        delay(5000);    
        go(150, false, false, 1100);  
        go(125, true, false, 1350);
        go(150, false, false, 2200);
        go(125, false, true, 1300);
        go(150, false, false, 1200);
        go(125, true, false, 680);
        go(100, true, true, 1500);
        go(0, false, false, 0);
        while (true)
            ;
    }
    Платформа передвигается как я и ожидал, но издаёт протяжный писк. И это происходит даже с одним двигателем. Искал решение подобной проблемы, наткнулся на http://arduino.ru/forum/apparatnye-voprosy/na-motor-shield-pishchat-dvigateli-ardino-car . Но в моём случае писк слышен при любых значениях аргумента от 255 до 0. При 255 двигатели издают шум и писк не так заметен, но, например, при значении 120 писк слышен отчётливо. При аргументе <100 двигатели перестают крутиться, но писк так же хорошо слышен. При аргументе = 10 писк становится значительно тише, но тоже присутствует. При 0 писк также есть, но он еле слышен.

    Буду благодарен за любые пояснения.
     
  2. Unixon

    Unixon Оракул Модератор

    Моторам питания не хватает. Как именно вы их запитали? Схему покажите и/или фото платформы в сборе.
     
  3. Nouveau

    Nouveau Нуб

    IMG036.jpg

    Да, действительно, насчёт одного мотора я ошибался. Попробовал ещё раз, писк пропал. Спасибо большое за совет. Конечно это глупая ситуация, но я первый раз работаю с микроконтроллерами)
     
  4. Unixon

    Unixon Оракул Модератор

    При таком включении нужно устанавливать перемычку "PWR JOIN" и не забывать, что силенок у USB не так много.
     
  5. Nouveau

    Nouveau Нуб

    Да, в этом случае перемычка стояла. Иначе Motor shield вообще не получил бы питания. IMG039.jpg

    Сейчас я попробовал отдельно питать Motor shield, схема на фото. Один из моторов также продолжает издавать писк при значении скорости 120. При значении скорости 30 оба мотора неистово пищат. По моим же представлениям они должны медленно крутиться. Хотя именно отсек на 5 батареек прилагался в комплекте с платформой и был описан в гайде на вики.
     
  6. Unixon

    Unixon Оракул Модератор

    Подключите моторы напрямую к батарейкам, проверьте как должны работать на полную.
     
  7. geher

    geher Гуру

    Осмелюсь предположить. Отсек для AA, Вставлены AAA. Может где-то слабо контачит или вообще коротнуло? Или вообще данные батарейки не рассчитаны на такой ток потребления?
     
  8. NR55RU

    NR55RU Гик

    Если я не ошибаюсь то моторы управляются PWM, максимальное значение PWM 255 что выдаст все напряжение с батареек, если вы поставите лишь 100, то получите меньше половины, моторам не хватит они будут пищать.
    Проще говоря, в скетче попробуйте увеличить скорость :)
    В итоге нужно будет рассчитывать с учетом имеющегося питания минимальный показать PWM (скорости) с которого моторы начинают минимально работать без писка.
    У меня подобная беда была, мне потребовалось значение PWM в 135 что бы моторы только начинали вращаться без писка при внешнем питании в 6В, с которого при значении PWM в 135 я как раз и получал тот минимум в 3.3В что требовалось моторам.
     
  9. Nouveau

    Nouveau Нуб

    Спасибо большое за совет) Я попробую всё рассчитать, но дело в том, что я сегодня попробовал подключить один мотор напрямую к батарейному отсеку в обход Motor Shield без PWM. И тем не менее он издавал тот же неприятный звук. Конечно писк в совокупности с гудением мотора звучит по-другому, но это всё также неприятно. Здесь http://robocraft.ru/blog/arduino/170.html#comment745 я наткнулся на предположение о том, что писк - частота ШИМа и воспользовавшись библиотекой http://playground.arduino.cc/Code/Timer1 его можно убрать, выставив б'ольшую частоту ШИМ. Но в моём случае даже без ШИМ писк слышен. Ума не приложу, может это моторы такие попались.
     
  10. Unixon

    Unixon Оракул Модератор

    А что это за моторы такие? Можете измерить потребляемый мотором ток, когда он подключен напрямую к батарейному отсеку?
     
  11. Nouveau

    Nouveau Нуб

    Заранее извиняюсь за отвратительное качество, но освещение вечером никудышнее, а фотокамера так себе.

    IMG045.jpg

    Насколько я понимаю, моторы не должны потреблять более 470 мА. Действительные значения силы тока через цепь при подключении напрямую к батарейному отсеку при измерениях сильно прыгают. От 1А до 5А. Наверное я что-то неверно делаю.
     
  12. Unixon

    Unixon Оракул Модератор

    А вал свободно вращается, ничем не заблокирован?
     
  13. Nouveau

    Nouveau Нуб

    Свободно, насколько я могу видеть. Если только внутри корпуса какая-то помеха.
     
  14. Unixon

    Unixon Оракул Модератор

    А другой источник питания есть?
     
  15. Nouveau

    Nouveau Нуб

    Крона подойдёт?
     
  16. Unixon

    Unixon Оракул Модератор

    Нет, что-нибудь, что может выдать приличный ток. Сетевой\лабораторный БП или аккумулятор от ИБП.