Различия

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

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

Следующая версия
Предыдущая версия
Следующая версия Следующая версия справа и слева
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>​