Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия | Следующая версия Следующая версия справа и слева | ||
main:motors:2wd_smartelements [2020/03/30 12:10] smartadmin ↷ Имя страницы main:motors:шасси_2wd_smartelements изменено на main:motors:2wd_smartelements |
main:motors:2wd_smartelements [2020/07/28 14:48] smartadmin [Пример подключения и использования] |
||
---|---|---|---|
Строка 61: | Строка 61: | ||
- Сверху, на Power Shield закрепите плату Motor shield, путём совмещения контактов Motor shield с контактами платы Power Shield. | - Сверху, на Power Shield закрепите плату Motor shield, путём совмещения контактов Motor shield с контактами платы Power Shield. | ||
- Подключите моторы к плате расширения Motor shield, к клеммным колодкам М1 и М2 (на схеме сверху выделены оранжевым прямоугольником с номером 3). Правый мотор подключите к клеммной колодке M1, красный провод к контакту "+", чёрный к контакту "-". Аналогично подключите левый мотор к клеммной колодке М2. | - Подключите моторы к плате расширения Motor shield, к клеммным колодкам М1 и М2 (на схеме сверху выделены оранжевым прямоугольником с номером 3). Правый мотор подключите к клеммной колодке M1, красный провод к контакту "+", чёрный к контакту "-". Аналогично подключите левый мотор к клеммной колодке М2. | ||
+ | |||
+ | **Библиотеки** | ||
+ | Для удобного и быстрого программирования работы платформы существует библиотека, скачать и посмотреть её описание можно на [[main:shields:motor_drive_shield|странице Мотор шилда]]. | ||
**Скетч для загрузки:** | **Скетч для загрузки:** | ||
<file Arduino> | <file Arduino> | ||
- | #define E1 6 //Вывод платы расширения Motor Drive Shield, используемый для контроля скорости мотора А. | + | robotSE myRobot; //создание объекта робота |
- | #define E2 5 //Вывод платы расширения Motor Drive Shield, используемый для контроля скорости мотора В. | + | |
- | #define M1 7 //Вывод платы расширения Motor Drive Shield, используемый для контроля направления вращения мотора А. | + | int delay_time = 1500; //время задержки для движения |
- | #define M2 4 //Вывод платы расширения Motor Drive Shield, используемый для контроля направления вращения мотора В. | + | |
- | + | ||
- | int motorSpeed = 255; //Переменная для хранения скорости вращения моторов (вы можете задать свою скорость вращения колес). | + | |
- | int delay_time = 1500; | + | |
- | + | ||
- | void motor_drive_config() //Инициализация выводов платы расширения Motor Drive Shield. | + | |
- | { | + | |
- | 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. | + | myRobot.setSpeed(255); //установка максимальной скорости вращения колёс |
- | 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> |