Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Занятие 3 Драйверы двигателей, управление моторами роботов.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
210 Кб
Скачать
☆

Практическое занятие 1. Подключение драйвера и представление в программе

  1. Для возможности управления скоростью управляющие контакты драйвера нужно подключать к контактам, поддерживающим analogWrite (3, 5, 6, 9, 10, 11, помечены штрихом на Arduino Uno). В целях стандартизации схемы и программ рекомендуется следующее подключение (см. приложенную схему). Подключите драйвер в соответствии со схемой

  2. Создайте новый скетч: Файл / Создать и сохраните его в D:\Arduino\Ваша фамилия латиницей или, предпочтительно, на Вашей флешке

  3. В самом начале (выше блока setup) пропишите в программе номера пинов, к которым подключены контакты драйвера:

    int LF= 10;

    int LB= 9;

    int RF = 6;

    int RB = 5;

  4. В блоке setup определите пины контроллера, подключенные к драйверу, как выходные:

void setup() {

pinMode(LF, OUTPUT);

pinMode(LR, OUTPUT);

pinMode(RF, OUTPUT);

pinMode(RB, OUTPUT);

}

Практическое занятие 2. Управление одним колесом робота

Примечание 1: все изменения в схеме проводить только при полностью отключенном питании робота

Примечание 2: если на драйвер двигателя подано питание (тумблер в положении ВКЛ, светодиоды горят даже без подключения к USB компьютера) работу с ним проводить только при наличии приподнятых колес или на полу, чтобы предотвратить падение со стола

Примечание 3: передней частью робота считается та, где расположен контроллер и макетная плата, задней – где расположено свободно вращающееся третье колесо

  1. Откройте программу Файл / Примеры / Basic / Blink

  2. Скопируйте блок loop в свою программу

  3. Замените в своей программе переменную led на LF

  4. Загрузите программу в контроллер

  5. Включите тумблер питания от аккумуляторов и убедитесь, что левый мотор то вращается, то останавливается (колеса робота должны быть подняты, либо робот должен стоять на полу)

  6. Если мотор вращается так, что двигает робота не вперед, а назад – поменяйте местами контакты мотора в клеммнике, к которому он подключен

Практическое занятие 2. Робот едет вперед

  1. Добавьте в программу еще один контакт – RF, который включает езду второго колеса. Добавьте к включению первого включение и второго мотора:

digitalWrite(LF, HIGH);

digitalWrite(RF, HIGH);

и, соответственно, выключение:

digitalWrite(LF, LOW);

digitalWrite(RF, LOW);

  1. Загрузите программу в робота, поставьте его на пол и нажмите кнопку включения. Робот должен поехать вперед, остановиться, снова поехать вперед и т.д.

  2. Если робот вращается на месте вместо движения вперед – поменяйте местами контакты второго мотора в клеммнике

Практическое занятие 3. Робот едет вперед и назад

  1. При изменении направления движения может возникнуть ситуация, когда Вы включите пин, включающий езду назад, но забудете выключить пин, включающий езду вперед. В этом случае, естественно, мотор никуда не поедет. Чтобы избежать подобной ситуации, всегда используют код, задающий состояния для всех контактов драйвера. Для езды вперед:

digitalWrite(LF, HIGH);

digitalWrite(LB, LOW);

digitalWrite(RF, HIGH);

digitalWrite(RB, LOW);

Для езды назад:

digitalWrite(LF, LOW);

digitalWrite(LB, HIGH);

digitalWrite(RF, LOW);

digitalWrite(RB, HIGH);

  1. На основе этого кода напишите программу, реализующую следующий алгоритм

    1. Включение езды робота вперед

    2. Ожидание 2 секунды

    3. Включение езды робота назад

    4. Ожидание 2 секунды

Примечание: ожидание delay нужно, чтобы дать моторам возможность поработать в этом режиме и сколько-то проехать. Расстояние, которое проедет робот, зависит от времени delay

  1. Загрузите программу в робота, поставьте его на пол, включите его и убедитесь, что он выполняет заданный алгоритм