шаблоны сайт визитка joomla
Скачать шаблоны Joomla 3.5 бесплатно
Вы находитесь здесь:Главная»Учебные материалы»Arduino Scetch»Adafruit motor shield подключение к Arduino

Adafruit motor shield подключение к Arduino

Подключение к Arduino

В данном уроке рассмотрим устройство Motor Shield'а, разработанного компанией Adafruit, а также научимся управлять с его помощью различными типами двигателей
 500 adafruit motor shield

 

На борту данного шилда имеется две микросхемы L293D (1). L-ка позволяет управлять слаботочными двигателями с током потребления до 600 мА на канал. На двух пятипиновых клеммниках (2) можно насчитать 4 разъема для подключения двигателей (M1, M2, M3, M4), центральные выводы на пятипиновых клеммниках соединены с землей и служат для удобства при подключении пятипроводных шаговый двигателей. Использование двух микросхем L293D позволяет одновременно подключить 4 моторчика постоянного тока либо 2 шаговых мотора либо два моторчика и шаговый. Для управления на прямую выводами L-ки (IN1, IN2, IN3, IN4), отвечающимими за выбор направления вращения, необходимо 4 вывода, а для двух микросхем целых 8. Для уменьшения количества управляющих выводов в игру вступает сдвиговый регистр 74НС595 (3). Благодаря регистру управление сводится с 8ми пинов к 4ем. Также, на плату выведены 2 разъема для подключения сервоприводов (4). Управление сервоприводами стандартное с помощью библиотеки Servo.h и никак не связано с библиотекой которую мы будем рассматривать далее. Питание силовой части производится либо от внешнего клеммника (6) либо замыканием джампера (5) ( питанием моторов +M соединяется с выводом Vin Arduino). Напряжение для объединенного питания 6 - 12 Вольт

 

500 adafruit motor shield details


К явным минусам данного шилда можно отнести то, что он задействует практически все цифровые пины:

Выводы, отвечающие за скорость вращения двигателей (подключены к выводам Enable L-ек)

Цифровой вывод 11- DC Мотор №1 / Шаговый №1

Цифровой вывод 3- DC Мотор №2 / Шаговый №1

Цифровой вывод 5- DC Мотор №3 / Шаговый №2

Цифровой вывод 6- DC Мотор №4 / Шаговый №2

Выводы, отвечающие за выбор направления вращения двигателей (подключены к микросхеме 74HC595): 

Цифровые выводы 4, 7, 8 и 12

Выводы для управления сервоприводами (выведены на штырьки на краю платы):

Цифровой вывод 9- Сервопривод №1

Цифровой вывод 10- Сервопривод №2

В итоге незадействованными цифровыми выводами остаются только пины 2, 13 и пины интерфейса UART- 0, 1

Однако есть выход из данной ситуации. Остались незадействованные аналоговые входы A0-A5, их можно использовать как цифровые. В коде они будут записываться как цифровые с 14 по 19.


Ну что, перейдем непосредственно к управлению моторами.

Для начала необходимо скачать библиотеку AFMotor.h, закинуть в папку с библиотеками и открыть среду.

Втыкаем шилд в плату, подключаем моторы и поехали!


Подключение моторов

Подключение моторов постоянного тока (2 DC Motors)

Adafr mot Sh 2mot 900

Пример программного кода

#include <AFMotor.h>  // Подключаем библиотеку для работы с шилдом 

// Подключаем моторы к клеммникам  M3, M4

AF_DCMotor motor3(3);
AF_DCMotor motor4(4);

void setup() {
  // Задаем максимальную скорость вращения моторов (аналог работы PWM) 
  motor3.setSpeed(255);
  motor3.run(RELEASE);
  motor4.setSpeed(255);
  motor4.run(RELEASE);
}

int i;

void loop() {
  // Двигаемся условно вперед одну секунду 
  motor3.run(FORWARD);// Задаем движение вперед
 motor4.run(FORWARD);   motor3.setSpeed(255); // Задаем скорость движения
 motor4.setSpeed(255);   delay(1000);      // Останавливаем двигатели   /* Очень не рекомендуем резко переключать направление вращения двигателей.   Лучше дать небольшой промежуток времени.*/      motor3.run(RELEASE);   motor4.run(RELEASE);   delay(500);      // Двигаемся в обратном направлении   motor3.run(BACKWARD); // Задаем движение назад
motor4.run(BACKWARD);   motor3.setSpeed(255); // Задаем скорость движения
  motor4.setSpeed(255);   delay(1000);      // Останавливаем двигатели   motor3.run(RELEASE);   motor4.run(RELEASE);   delay(500);      // Разгоняем двигатели в одном направлении   motor3.run(FORWARD);   motor4.run(FORWARD);   for (i=0; i<255; i++) {     motor3.setSpeed(255);     motor4.setSpeed(255);     delay(10);  }    // Останавливаем двигатели   motor3.run(RELEASE);   motor4.run(RELEASE);   delay(500);      // Разгоняем двигатели в обратном направлении   motor3.run(BACKWARD);   motor4.run(BACKWARD);   for (i=255; i>=0; i--) {     motor3.setSpeed(255);     motor4.setSpeed(255);     delay(10);  }   // Останавливаем движение   motor3.run(RELEASE);   motor4.run(RELEASE);   delay(500); }

Подключение шагового мотора (1 Stepper Motor)

Adafr mot Sh stepper 900

Пример программного кода

#include <AFMotor.h>
#include <Servo.h> 

// Подключаем шаговый двигатель к порту 1
// порт 1 - M1, M2
// порт 2 - M3, M4
// 48 - количество шагов для полного оборота
AF_Stepper stepper(48, 1);

void setup() {
}

int i;

void loop() {
  // делаем 48 шагов в одном направлении (FORWARD)
  // DOUBLE - тип шага
  for (i=0; i<48; i++) {
    stepper.step(1, FORWARD, DOUBLE);
    delay(50);
 } 
 // и 48 шагов в обратном направлении (BACKWARD)
 for (i=50; i!=0; i--) {
    stepper.step(1, BACKWARD, DOUBLE);
    delay(50);
 } 
}

Похожие материалы (по тегу)

Новости о нас

Расписание занятий для каждой сформированной группы по робототехнике на 2017-2018 учебный год. Подробнее
Учебный год начался, и у нас очередная радостная новость для вас, педагоги! В этом году... Подробнее
Наши учащиеся выступили на августовской конференции педагогов! Подробнее
Хочешь учиться в Толтеке по выгодной цене? Приводи друзей и получай большие скидки!... Подробнее
19 августа в ТРЦ Сити Молл с блеском прошел РобоКвест! Героями квеста стали более сотни... Подробнее

Наши партнеры

 TZOyoOCZ8y0 logotip novy SF BashGU  utv logo  CityMoll  VolnoeDelo