Различия
Здесь показаны различия между двумя версиями данной страницы.
Следующая версия | Предыдущая версия Следующая версия Следующая версия справа и слева | ||
main:shields:motor_shield [2018/10/29 16:50] smartadmin создано |
main:shields:motor_shield [2020/03/30 12:03] smartadmin ↷ Страница перемещена из main:шилды:motor_shield в main:shields:motor_shield |
||
---|---|---|---|
Строка 43: | Строка 43: | ||
===== Пример подключения и использования ===== | ===== Пример подключения и использования ===== | ||
**Пример:** Для демонстрации работы шилда используется простейший робот, который движется по четырём направлениям (вперед, назад, вправо и влево). Робот собирается очень просто - берётся трёхколёсное шасси с двумя моторами, на платформу шасси крепится контроллер Smart Uno, на контроллер прикрепляется Power Shield, в свою очередь на Power shield прикрепляется Motor shield. | **Пример:** Для демонстрации работы шилда используется простейший робот, который движется по четырём направлениям (вперед, назад, вправо и влево). Робот собирается очень просто - берётся трёхколёсное шасси с двумя моторами, на платформу шасси крепится контроллер Smart Uno, на контроллер прикрепляется Power Shield, в свою очередь на Power shield прикрепляется Motor shield. | ||
+ | |||
+ | Для этого нам понадобится: | ||
+ | ^ Что нужно: ^ Кол-во, шт ^ | ||
+ | | [[http://smartelements.ru/collection/kontrollery/product/kontroller-smart-uno|Контроллер SmartUno]]| 1 | | ||
+ | | [[http://smartelements.ru/product/shassi-2wd-smartelements|Шасси 2WD SmartElements]]| 1 | | ||
+ | | [[http://smartelements.ru/product/motor-shield|Motor Shield]] | 1 | | ||
+ | | [[http://smartelements.ru/product/power-shield|Power Shield]] | 1 | | ||
+ | |||
**Подключение:** | **Подключение:** | ||
Строка 52: | Строка 60: | ||
**Скетч для загрузки:** | **Скетч для загрузки:** | ||
<file Arduino> | <file Arduino> | ||
+ | #define E1 6 //Вывод платы расширения Motor Drive Shield, используемый для контроля скорости мотора А. | ||
+ | #define E2 5 //Вывод платы расширения Motor Drive Shield, используемый для контроля скорости мотора В. | ||
+ | #define M1 7 //Вывод платы расширения Motor Drive Shield, используемый для контроля направления вращения мотора А. | ||
+ | #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() // Задание начальных параметров системы. | ||
+ | { | ||
+ | motor_drive_config(); //инициализация выводов платы расширения Motor Drive Shield. | ||
+ | move_stop(); //начальная позиция робота — робот стоит. | ||
+ | } | ||
+ | void loop() //Основной цикл | ||
+ | { | ||
+ | move_forward(); //движение вперёд | ||
+ | delay(delay_time); //задержка | ||
+ | move_right(); //движение вправо | ||
+ | delay(delay_time); //задержка | ||
+ | move_left(); //движение влево | ||
+ | delay(delay_time); //задержка | ||
+ | move_back(); //движение назад | ||
+ | delay(delay_time); //задержка | ||
+ | move_stop(); //остановка | ||
+ | delay(delay_time); //задержка | ||
+ | } | ||
</file> | </file> |