Motor Shield

Опубликовано: 07.10.2017

видео Motor Shield

Arduino Tutorial: Using a Motor shield!

Микроконтроллер, установленный на Arduino не может непосредственно управлять большой нагрузкой на своих цифровых выходах. Максимально возможный выходной ток с ножки микроконтроллера — 40 мА. Чтобы иметь возможность управлять большой нагрузкой существуют специализированные устройства. Именно к таким устройствам и относится Motor Shield .


Arduino for Beginners 20 Using a Motor Shield

Motor Shield — это плата расширения для Arduino, предназначенная для двухканального управления скоростью и направлением вращения коллекторных двигателей постоянного тока, напряжением 5–24 В и максимальным током до 2 А на канал.

Motor Shield также может быть использован для управления одним биполярным шаговым двигателем или, при совмещении двух каналов в один, для управления мощной нагрузкой с током до 4 А.


Arduino Tutorial - Servo Motor Control with Motor Shield

Подключение и настройка

Установите Motor Shield сверху на управляющую платформу, например Arduino Uno или Iskra Neo .

Убедитесь в наличии и правильности соединения джамперов на плате Motor Shield:

H1 с 4 пином;

E1 с 5 пином.

E2 с 6 пином;

H2 с 7 пином.

Подключите внешнее питание для моторов через клеммник PWR, соблюдая полярность.

Управление коллекторными двигателями

Приступим к демонстрации возможностей. Схема подключения — на картинке. Джампер PWR JOIN установлен в положение «Раздельное питание». Arduino запитана через USB.

Для начала простейший код для демонстрации всех основных функций Motor Shield:

2DC_Motor_Shield.ino // Моторы подключаются к клеммам M1+, M1-, M2+, M2- // Motor shield использует четыре контакта 4, 5, 6, 7 для управления моторами // 4 и 7 — для направления, 5 и 6 — для скорости #define SPEED_1 5 #define DIR_1 4   #define SPEED_2 6 #define DIR_2 7     void setup ( ) { // Настраивает выводы платы 4, 5, 6, 7 на вывод сигналов for ( int i = 4 ; i < 8 ; i ++ ) pinMode (i , OUTPUT ) ; }   void loop ( ) { // Для коллекторного мотора можно выбрать значение скорости от 0 до 255. // Покрутим в течении секунды M1 на средней скорости сначала в одну сторону... analogWrite (SPEED_1 , 126 ) ; digitalWrite (DIR_1 , LOW ) ; delay ( 1000 ) ;   // ... а затем в другую. digitalWrite (DIR_1 , HIGH ) ; delay ( 1000 ) ;   // После чего остановим мотор 1 analogWrite (SPEED_1 , 0 ) ;   // А теперь заставим мотор 2 медленно разгоняться до максимума for ( int i = 0 ; i <= 255 ; ++ i) { analogWrite (SPEED_2 , i ) ; delay ( 50 ) ; }   // Теперь он будет крутится до нажатия на Reset или выключения питания while ( true ) ; }

Следующий код подойдёт для робот платформ :

rss