Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
main:shields:motor_shield [2020/07/27 16:14]
smartadmin [Плюсы использования]
main:shields:motor_shield [2023/09/17 14:13]
smartadmin [Описание]
Строка 5: Строка 5:
 Плата имеет два канала для управления моторами и позволяет подключить два коллекторных мотора или один шаговый. Допускается параллельное подключение нескольких моторов в один канал. Такой вариант подключения будет удобен,​ например,​ для четырехколесных роботов. Motor Shield позволяет подключать моторы мощностью до 2 А на каждый канал. При необходимости использования более мощного мотора - каналы можно объединить,​ получив при этом суммарно до 4 А. Обратите внимание,​ при работе платы с моторами потребляющими большой ток, микросхема сильно нагревается. Во избежании ожога, не прикасайтесь к микросхеме в процессе работы. Плата имеет два канала для управления моторами и позволяет подключить два коллекторных мотора или один шаговый. Допускается параллельное подключение нескольких моторов в один канал. Такой вариант подключения будет удобен,​ например,​ для четырехколесных роботов. Motor Shield позволяет подключать моторы мощностью до 2 А на каждый канал. При необходимости использования более мощного мотора - каналы можно объединить,​ получив при этом суммарно до 4 А. Обратите внимание,​ при работе платы с моторами потребляющими большой ток, микросхема сильно нагревается. Во избежании ожога, не прикасайтесь к микросхеме в процессе работы.
  
-Для управления направлением вращения моторов используются выводы М1 и М2, по умолчанию с помощью перемычек использующие выводы ​и контроллера и шилда. Для управления скоростью вращения моторов используются выводы Е1 и Е2, по умолчанию с помощью перемычек использующие выводы ​и контроллера и шилда. Вы можете использовать другие выводы контроллера и шилда для управления моторами - для этого соедините выводы шилда М1, М2, Е1 и Е2 с другими цифровыми выводами посредством гибких проводов "​мама-мама"​ (обратите внимание,​ для регулировки скорости вращения моторв выводы Е1 и Е2 должны подключаться к выводам,​ поддерживающим ШИМ).+Для управления направлением вращения моторов используются выводы М1 и М2, по умолчанию с помощью перемычек использующие выводы ​и контроллера и шилда. Для управления скоростью вращения моторов используются выводы Е1 и Е2, по умолчанию с помощью перемычек использующие выводы ​и контроллера и шилда. Вы можете использовать другие выводы контроллера и шилда для управления моторами - для этого соедините выводы шилда М1, М2, Е1 и Е2 с другими цифровыми выводами посредством гибких проводов "​мама-мама"​ (обратите внимание,​ для регулировки скорости вращения моторв выводы Е1 и Е2 должны подключаться к выводам,​ поддерживающим ШИМ).
  
 Плата совмещает в себе возможности Motor Shield и Sensor Shield. Для подключения периферии на плату выведены трехконтактные разъемы для подключения модулей и датчиков (13 цифровых и 6 аналоговых). ​ Кроме того, на плате предусмотрены следующие дополнительные разъемы:​ UART, I2C, а также DIST и INDICATOR. Плата совмещает в себе возможности Motor Shield и Sensor Shield. Для подключения периферии на плату выведены трехконтактные разъемы для подключения модулей и датчиков (13 цифровых и 6 аналоговых). ​ Кроме того, на плате предусмотрены следующие дополнительные разъемы:​ UART, I2C, а также DIST и INDICATOR.
  
-Разъем DIST позволяет подключить ультразвуковой дальномер (HC-SR04 или US-015) или другой датчик или модуль,​ использующий аналогичную распиновку. Для работы данный разъем использует цифровые выводы ​12 и 13 контрллера и шилда.+Разъем DIST позволяет подключить ультразвуковой дальномер (HC-SR04 или US-015) или другой датчик или модуль,​ использующий аналогичную распиновку. Для работы данный разъем использует цифровые выводы ​и контрллера и шилда.
  
-Разъем INDICATOR позволяет подключить модуль 4-х разрядного индикатора или другой модуль или датчик,​ использующий аналогичную распиновку. Для работы данный разъем использует цифровые выводы ​и контрллера и шилда.+Разъем INDICATOR позволяет подключить модуль 4-х разрядного индикатора или другой модуль или датчик,​ использующий аналогичную распиновку. Для работы данный разъем использует цифровые выводы ​12 и 13 контрллера и шилда.
  
 Светодиод на плате отображает состояние питания Motor Shield: если светодиод горит - шилд получает питание,​ если не горит - питание на шилд не поступает. Светодиод на плате отображает состояние питания Motor Shield: если светодиод горит - шилд получает питание,​ если не горит - питание на шилд не поступает.
  
-Перемычка JOIN на плате отвечает за режим питания. Если перемычка установлена - внешнее питание от разъема PWR поступает ​и на шилд ​и на контроллер через пин Vin. Рекомендуемое напряжение в таком случае должно быть 7-12 В. Если перемычка снята - внешнее питание поступает только на Motor Shield (для питания контроллера требуется дополнительный источник питания). Рекомендуемое напряжение в таком случае может быть 5-24 В. В качестве внешнего питания можно использовать Power Shield, установив его между контроллером и Motor Shield.+Перемычка JOIN на плате отвечает за режим питания. Если перемычка установлена - внешнее питание от разъема PWR поступает и на контроллер через пин Vin, и на питание моторов. Рекомендуемое напряжение в таком случае должно быть 7-12 В. Если перемычка снята - внешнее питание поступает только на Motor Shield ​для питания моторов ​(для питания контроллера ​и периферии ​требуется дополнительный источник питания, подключаемый к контроллеру). Рекомендуемое напряжение в таком случае может быть 5-24 В. В качестве внешнего питания можно использовать Power Shield, установив его между контроллером и Motor Shield.
  
 ==== Схема платы ==== ==== Схема платы ====
Строка 101: Строка 101:
 **Скетч для загрузки:​** **Скетч для загрузки:​**
 <file Arduino> <file Arduino>
-#define E1 6 //Вывод платы расширения Motor Drive Shield, используемый ​для контроля скорости мотора А. +#include <​robotSE.h> ​//​подключение ​библиотеки
-#define E2 5 //​Вывод платы расширения Motor Drive Shield, используемый для контроля скорости мотора В. +
-#define M1 7 //​Вывод платы расширения Motor Drive Shield, используемый для контроля направления вращения мотора А. +
-#define M2 4 //​Вывод платы расширения Motor Drive Shield, используемый для ​контроля направления вращения мотора В.+
  
-int motorSpeed = 255   //Переменная ​для хранения скорости вращения моторов (вы можете задать свою скорость вращения колес). +robotSE myRobot; //создание объекта робота
-int delay_time = 1500;+
  
-void motor_drive_config() ​//Инициализация ​выводов платы расширения Motor Drive Shield. +int delay_time = 1500; //время задержки для движения
-+
-  pinMode(M1, OUTPUT); ​   //Назначение вывода M1 выходом. +
-  pinMode(M2, OUTPUT); ​   //​Назначение ​вывода M2 выходом. +
-  pinMode(E1, OUTPUT); ​   //​Назначение вывода E1 выходом. +
-  pinMode(E2, OUTPUT); ​   //​Назначение вывода E2 выходом. +
-}+
  
-void move_forward() //​Движение робота вперед. 
-{ 
-  digitalWrite(M1,​ HIGH); ​      //​Левые колеса вращаются вперед. 
-  digitalWrite(M2,​ HIGH); ​      //​Правые колеса вращаются вперед. 
-  analogWrite(E1,​ motorSpeed); ​ //​Скорость вращения правых колес. 
-  analogWrite(E2,​ motorSpeed); ​ //​Скорость вращения левых колес. 
-} 
- 
-void move_right() //​Движение робота вправо. 
-{ 
-  digitalWrite(M1,​ LOW);        //​Левые колеса вращаются назад. 
-  digitalWrite(M2,​ HIGH); ​      //​Правые колеса вращаются вперед. 
-  analogWrite(E1,​ motorSpeed); ​          //​Скорость вращения левых колес. 
-  analogWrite(E2,​ motorSpeed); ​ //​Скорость вращения правых колес. 
-} 
- 
-void move_left() //​Движение робота влево. 
-{ 
-  digitalWrite(M1,​ HIGH); ​      //​Левые колеса вращаются вперед. 
-  digitalWrite(M2,​ LOW);        //​Правые колеса вращаются назад. 
-  analogWrite(E1,​ motorSpeed); ​ //​Скорость вращения левых колес. 
-  analogWrite(E2,​ motorSpeed); ​          //​Скорость вращения правых колес. 
-} 
- 
-void move_stop() //​Остановка робота. 
-{ 
-  digitalWrite(M1,​ LOW);  //​Левые колеса вращаются назад. 
-  digitalWrite(M2,​ LOW);  //​Правые колеса вращаются назад. 
-  analogWrite(E1,​ 0);     //​Скорость вращения колес снизить до 0. 
-  analogWrite(E2,​ 0);     //​Скорость вращения колес снизить до 0. 
-} 
- 
-void move_back() //​Движение робота назад. 
-{ 
-  digitalWrite(M1,​ LOW);        //​Левые колеса вращаются назад. 
-  digitalWrite(M2,​ LOW);        //​Правые колеса вращаются назад. 
-  analogWrite(E1,​ motorSpeed); ​ //​Скорость вращения левых колес. 
-  analogWrite(E2,​ motorSpeed); ​ //​Скорость вращения правых колес. 
-} 
  
 void setup() // Задание начальных параметров системы. void setup() // Задание начальных параметров системы.
 { {
-  motor_drive_config(); ​      //​инициализация выводов платы расширения Motor Drive Shield. + 
-  move_stop(); ​               //​начальная позиция робота — робот стоит. ​ +
 } }
  
 void loop() //​Основной цикл void loop() //​Основной цикл
 { {
-  move_forward(); ​    //​движение вперёд+  ​myRobot.move_forward(); ​    //​движение вперёд
   delay(delay_time); ​ //​задержка   delay(delay_time); ​ //​задержка
-  move_right(); ​      //​движение вправо+  ​myRobot.move_right(); ​      //​движение вправо
   delay(delay_time); ​ //​задержка   delay(delay_time); ​ //​задержка
-  move_left(); ​       //​движение влево+  ​myRobot.move_left(); ​       //​движение влево
   delay(delay_time); ​ //​задержка   delay(delay_time); ​ //​задержка
-  move_back(); ​       //​движение назад+  ​myRobot.move_back(); ​       //​движение назад
   delay(delay_time); ​ //​задержка   delay(delay_time); ​ //​задержка
-  move_stop(); ​       //​остановка+  ​myRobot.move_stop(); ​       //​остановка
   delay(delay_time); ​ //​задержка   delay(delay_time); ​ //​задержка
 } }
 </​file>​ </​file>​