Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия Следующая версия Следующая версия справа и слева | ||
main:shields:motor_shield [2020/07/27 16:14] smartadmin [Плюсы использования] |
main:shields:motor_shield [2021/02/12 12:41] smartadmin [Описание] |
||
---|---|---|---|
Строка 5: | Строка 5: | ||
Плата имеет два канала для управления моторами и позволяет подключить два коллекторных мотора или один шаговый. Допускается параллельное подключение нескольких моторов в один канал. Такой вариант подключения будет удобен, например, для четырехколесных роботов. Motor Shield позволяет подключать моторы мощностью до 2 А на каждый канал. При необходимости использования более мощного мотора - каналы можно объединить, получив при этом суммарно до 4 А. Обратите внимание, при работе платы с моторами потребляющими большой ток, микросхема сильно нагревается. Во избежании ожога, не прикасайтесь к микросхеме в процессе работы. | Плата имеет два канала для управления моторами и позволяет подключить два коллекторных мотора или один шаговый. Допускается параллельное подключение нескольких моторов в один канал. Такой вариант подключения будет удобен, например, для четырехколесных роботов. Motor Shield позволяет подключать моторы мощностью до 2 А на каждый канал. При необходимости использования более мощного мотора - каналы можно объединить, получив при этом суммарно до 4 А. Обратите внимание, при работе платы с моторами потребляющими большой ток, микросхема сильно нагревается. Во избежании ожога, не прикасайтесь к микросхеме в процессе работы. | ||
- | Для управления направлением вращения моторов используются выводы М1 и М2, по умолчанию с помощью перемычек использующие выводы 5 и 6 контроллера и шилда. Для управления скоростью вращения моторов используются выводы Е1 и Е2, по умолчанию с помощью перемычек использующие выводы 4 и 7 контроллера и шилда. Вы можете использовать другие выводы контроллера и шилда для управления моторами - для этого соедините выводы шилда М1, М2, Е1 и Е2 с другими цифровыми выводами посредством гибких проводов "мама-мама" (обратите внимание, для регулировки скорости вращения моторв выводы Е1 и Е2 должны подключаться к выводам, поддерживающим ШИМ). | + | Для управления направлением вращения моторов используются выводы М1 и М2, по умолчанию с помощью перемычек использующие выводы 7 и 4 контроллера и шилда. Для управления скоростью вращения моторов используются выводы Е1 и Е2, по умолчанию с помощью перемычек использующие выводы 5 и 6 контроллера и шилда. Вы можете использовать другие выводы контроллера и шилда для управления моторами - для этого соедините выводы шилда М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. | ||
Строка 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> |