Arduino + Четырехколесная платформа

Тема в разделе "Arduino & Shields", создана пользователем Kostya, 20 сен 2011.

  1. Kostya

    Kostya Нуб

    C пироэлектрическими датчиками - разобрался все работает (данные обновляются раз в 15 сек)
     
  2. nailxx

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

    Так, обо всём по порядку. Смотрите:

    [​IMG]

    Никакой программы в Arduino на фото нет. Всё просто: Arduino подключен к БП (usb — нет), мотор M2 настроен на кручение по полной: на контакты 6 и 7 тупо поданы 5 В. На блоке питания стоит 7.5 В. Вывод вы видите. Моторы крутиться будут. У вас с такой конструкцией картина отличается? Что если сделать всё то же самое, но с батарейным отсеком?

    Теперь в кратце о том, почему на блоке 7.5 В, а на мультиметре 8.65 В. Блок питания — не стабилизированный. То есть выход зависит от нагрузки. Выставленное напряжение совпадёт с номинальным при нагрузке, потребляющей 500 мА. Я об этом совсем забыл, когда мы разговаривали о «бракованности» БП и вспомнил сегодня, отвечая на соседний вопрос. Так что с вашим блоком всё в порядке. Но поскольку тупанул я, считаем что БП — вам в подарок.
     
  3. Kostya

    Kostya Нуб

    С такой конструкцией как на фото ситуация такая же (напряжение есть). С батарейным отсеком тоже все нормально (там меньше вольтаж - 6.2В)

    Если написать скетч:
    // Моторы подключаются к клеммам M1+,M1-,M2+,M2-
    // Motor shield использует четыре контакта 6,5,7,4 для управления моторами
    #define DIR_RIGHT_SIDE 4
    #define SPEED_RIGHT_SIDE 5
    #define SPEED_LEFT_SIDE 6
    #define DIR_LEFT_SIDE 7
    void go(int speed, bool reverseLeft, bool reverseRight, int duration)
    {
    // Для регулировки скорости `speed` может принимать значения от 0 до 255,
    // чем болше, тем быстрее.
    analogWrite(SPEED_LEFT_SIDE, speed);
    analogWrite(SPEED_RIGHT_SIDE, speed);
    digitalWrite(DIR_LEFT_SIDE, reverseLeft ? LOW : HIGH);
    digitalWrite(DIR_RIGHT_SIDE, reverseRight ? LOW : HIGH);
    delay(duration);
    }
    void setup()
    {
    // Настраивает выводы платы 4,5,6,7 на вывод сигналов
    for(int i = 4; i <= 7; i++)
    pinMode(i, OUTPUT);
    }
    void loop()
    {
    // Задержка 5 секунд после включения питания

    // Cекуда с небольшим вперёд
    go(255, false, false, 20000);
    // Остановка до ресета или выключения питания
    go(0, false, false, 0);
    // Всё, приехали
    while (true);
    }
    При подключении 4-х двигателей колеса не крутятся (ни от батарей, ни от б/п)
    На пинах 5,6 - вольтаж 0.1В.
    Если 2 двигателя, на пинах 5,6 - 3.5 В. (Колеса крутятся)
     
  4. nailxx

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

    Возвращаясь к предыдущему примеру, что будет если вы просто подключите свои 4 мотора. Без скетча, просто напрямую. У меня получилось вот что:

     
  5. Kostya

    Kostya Нуб

    Это же и получается (т.е. они работают)
     
  6. nailxx

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

    Теперь я запутался. Если они работают, usb не присутствует, стало быть всё ок? Или речь идёт о том, что как только им приходится везти тележку они останавливаются? Или о том, что всё останавливается при загрузке приведённого вами скетча?
     
  7. Kostya

    Kostya Нуб

    Доброе утро!
    При подключении всех 4-х моторов и подачи 5В на прямую все работает как с платформой так и без неё.
    Но при загрузке Скетча ничего не едет если питаться от блока питания. (Если от usb - платформа едет, но очень медленно)
     
  8. nailxx

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

    Это нехватка питания. Блок питания на 500 мА, USB даёт что-то около того же. У меня есть читерский блок питания на 1200 мА, так вот с ним и вашим скетчем всё бодро крутится.

    Остаётся вопрос почему конструкция не работает от батареек. NiMH батарейки должны отдавать ну по крайней мере более 1 А. К сожалению сейчас нет подходящих под рукой. Для вас сегодня достану, попробую.
     
  9. Kostya

    Kostya Нуб

    Спасибо, буду ждать ответа.
     
  10. nailxx

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

    Нашёл таки NiMH батарейки (причём по 6 руб./шт.). Воткнул красный провод от кассеты в Vin, чёрный — в GND. Конструкция бодро закрутилась с залитым в неё скетчем, скопированным из вашего поста.

    Попробовал алкалайновые батарейки — тоже бодро крутится. Разница по идее будет заметна на половине заряда.

    Неужели у вас не то же самое?
     
  11. Kostya

    Kostya Нуб

    Доброе утро, с 2-мя моторами все действительно крутит, очень даже быстро... Но как только я подключаю 4-е то конструкция перестает ехать и начинают моргать 2-е красные лампочки на motor shield. Отключаю и 2 мотора снова крутятся....
     
  12. nailxx

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

    Тут не на что грешить кроме как на источник питания. С USB и блоком на 500 мА всё ясно — не тянут, а вот батарейки… Единственное, что могу предположить — с ними что-то не так. Например, они подсевшие или не очень хорошо припаяны к штекеру.