1A Motor Shield для Arduino

Arduino MotorShield L293

Описание и назначение продукта

Mishmash 1A Motor Shield является Arduino-совместимой платой на базе чипа L293, который позволяет управлять двумя моторами постоянного тока с напряжением 5В и максимальным током 500мА.  Идеально подходит для подключения небольших колесных платформ типа DFRobot MiniQ или Mishmash Mitya.

Шилд может питаться как напрямую от Arduino, так и от внешнего источника питания.

 

Возможности

  • Поддержка 2х моторов, управляемых четырьмя ШИМ-сигналами
  • Входное питание 1-4,5В
  • Максимальный ток 1А
  • Максимальный ток 1 канала двигателя 500мА

  • 5 аналоговых или цифровых входов/выходов, позволяющих подключать сенсоры через стандартные 3-проводные шлейфы

  • 3 цифровых входа/выхода (возможность генерации ШИМ-сигнала на одном выходе) с возможностью подключения периферии через стандартные 3-проводные шлейфы
  • Удобное подключение ультразвукового дальномера HC-SR94

  • Поддержка UART
  • Кнопка для включения/выключения питания на двигатели
  • Удобная библиотека для работы с платой

Модуль в работе

Руководство по работе с модулем

Основные элементы модуля:

Arduino MotorShield L293 general

  • Чёрная кнопка POWER — включение/выключение питания
  • M1 выходы первого мотора
  • М2 выходы второго мотора
  • RESET – сброс модуля
  • POWER select – конфигурация питания модуля

Конфигурация питания модуля:

 jumper1 Питание моторов от повышающего стабилизатора шилда 5В  jumper2 Питание платы Arduino от стабилизатора шилда. Защита от помех моторов. Вызывает падение напряжения на 0,2В.
 jumper3 Питание моторов от входа питания Arduino  jumper4 Питание Arduino от стабилизатора шилда
jumper5  Питание моторов от 5В линии (стабилизатора) Arduino

Подключение периферии

Подключение аналоговых датчиков:

front_connect_analog.jpg

Подключение цифровых датчиков:

front_connect_digital

Распиновка

Пин Функция
 Цифровой пин 3  Мотор 1 управление ШИМ
 Цифровой пин 6  Мотор 1 управление ШИМ (в обратном направлении)
 Цифровой пин 9  Мотор 2 управление ШИМ
 Цифровой пин 10  Мотор 2 управление ШИМ (в обратном направлении)

 

Библиотека

Для простоты управления моторами при помощи платы Mishmash 1A Motor Shield, мы написали удобную библиоту MiniQDriver.

Скачайте библиотеку по этой ссылке. Скопируйте её в папку libraries (она должна быть в папке, где у вас установлена Ardiono IDE).

Если вы хотите написать свой скетч на основе нашей библиотеки, просто добавьте нашу библиотеку в свой скетч при помощи Sketch→Imporl Library→MiniQDriver.

 

Описание конструкторов и основных методов

MiniQDriver

Конструкторы

  •  MiniQDriver();
    Конструктор по умолчанию
  • MiniQDriver(leftForwardMotor, leftBackwardMotor, rightForwardMotor, rightBackwardMotor);
    конструктор позволяющий задать пользовательскую конфигурацию подключения платы
    Параметры задают номера пинов на плате.

Методы

  •  setPins(leftForwardMotor, leftBackwardMotor, rightForwardMotor, rightBackwardMotor);
    Меняет конфигурацию подключения платы, параметры задают номера пинов на плате.
  • void setSpeedPercent(int speedInPercent);
    Задаёт скорость движения в процентах от 0 до 100
  • int getSpeedPercent();
    Возвращает скорость движения в процентах.
    В некоторых случаях может возвращать значения вне диапазона 0..100.
  • setSpeedConvert(int minSpeed,int maxSpeed);
    Задаёт правило преобразования скорости из процентов в ШИМ.
    Эта функция изменяет скорость движение в значениях ШИМа, сохраняя скорость движения в
    процентах.
    Формула: speed=minSpeed+speedInPercent*(maxSpeed-minSpeed)/100;
    По умолчанию minSpeed равно 0, а maxSpeed равно 255.
  • void setSpeedPWM(int speed);
    Задаёт скорость движения в значениях ШИМа от 0 до 255
  • int getSpeedPWM();
    Задаёт скорость движения в значениях ШИМа.
  • void setMode(int mode);
    Устанавливает режим передвижения
    допустимые значения параметра:

    • STOP – остановка двигателей
    • MOVE_FORWARD – движение вперед
    • MOVE_BACKWARD – движение назад
    • TURN_LEFT – левый поворот
    • TURN_RIGHT – правый поворот

    При при получении неверного параметра устанавливает режим STOP.

  • int getMode();
    Возвращает режим передвижения
  • void pause();
    Останавливает двигатели, запоминает скорость и режим передвижения
  • void resume();
    Возобновляет движение остановленное вызовом pause();

 

Примечания

После выполнения всех необходимых движений необходимо остановить робота командой
setMode(STOP) или setSpeedPWM(0).
Если параметр minSpeed функции setSpeedConvert был больше 0, то команда setSpeedPercent(0)
не будет останавливать тележку.
Значения пинов по умолчанию:

  • leftForwardMotor 9
  • LeftBackwardMotor 10
  • rightForwardMotor 3
  • rightBackwardMotor 6

Если заданы пользовательские параметры у setSpeedConvert, а затем скорость установлена методом setSpeedPWM , то getSpeedPercent может вернуть значения вне диапазона 0..100.

Пример кода


#include
MiniQDriver miniQ;
void setup() {
//
//
// ()
// ,
//
miniQ.setMode(MOVE_FORWARD);//
for(int i=0;i<255;i++){//
miniQ.setSpeedPWM(i);//
delay(10);
}

miniQ.setSpeedConvert(127,255);//
miniQ.setMode(MOVE_BACKWARD);//
// 0% = 128, 100% = 255
for(int i=100;i>0;i—){//
miniQ.setSpeedPercent(i);//
delay(20);
}

miniQ.setSpeedPercent(25);// , =128+128*25/100=160
miniQ.setMode(TURN_LEFT);//
delay(500);
miniQ.pause();//
delay(1000);
miniQ.resume();//
delay(500);

miniQ.setSpeedConvert(0,255);//
miniQ.setSpeedPercent(100);// , =255
miniQ.setMode(TURN_RIGHT);//
delay(250);
miniQ.pause();//
delay(1000);
miniQ.resume();//
delay(250);
miniQ.pause();//
//! , !
}
// the loop routine runs over and over again forever:
void loop() {

}

 



Обсуждение закрыто.