Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Электронный компонент:Плата Xadow с драйвером моторов

Материал из Онлайн справочника
Перейти к: навигация, поиск

Перевод: Максим Кузьмин (Cubewriter)
Перевел 2703 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Ambox content.png Черновик


Плата Xadow с драйвером моторов[1]

X motor.jpg

Плата Xadow с драйвером моторов предназначена для управления моторами. Ее основные компоненты – это чип LB1836M и микроконтроллер ATmega168. LB1836M – это 2-канальный драйвер моторов с низким напряжением насыщения и двумя направлениями вращения. ATmega168 – это микроконтроллер, который управляет чипом LB1836M через шину I2C. Плата Xadow с драйвером моторов поддерживает изменение I2C-адреса. Для работы моторов требуется дополнительное питание, которое обеспечивается за счет батареи (питания от главной платы Xadow будет недостаточно).

Характеристики

  • Драйвер моторов – чип LB1836M
  • Напряжение батареи – между 2.5 и 9 вольтами
  • Макс. сила тока на одном канале – 300 мА
  • Шина для передачи данныхI2C
  • Возможность менять I2C-адрес
  • Размеры – 25.43 мм х 20.35 мм

Описание и расположение компонентов

Xadow Motor Black View.png
  • 1 – Чип LB1836M. Это 2-канальный драйвер моторов с низким напряжением насыщения и двумя направлениями вращения.
  • 2 – Порт для подключения батареи, питающей моторы.
  • 3, 4 – Контакты для подключения моторов.
  • 5, 6 – Перемычки для изменения I2C-адреса. По умолчанию A0 и A1 подключены к контактам H, но их также можно подключить к контактам L. Более подробно о смене I2C-адреса читайте ниже, в разделе «Изменение I2C-адреса».
  • 7 – Интерфейс SPI. Используется для загрузки прошивки на ATmega168.
  • 8 – Микроконтроллер ATmega168.
  • 9 – Перемычка для переключения питания ATmega168. По умолчанию контакт DVCC подключен к VOUT, и это значит, что ATmega168 питается от батареи. Если подключить DVCC к 3.3V, ATmega168 начнет питаться от соединения с главной платой Xadow.

Демо-проект

Давайте разберем проект, с помощью которого плата Xadow с драйвером моторов будет одновременно управлять двумя моторами.

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

  1. Подключите DC-моторы к интерфейсам J5 и J6. Чтобы соединение держалось крепко, можно закрепить его пайкой.
  2. Подключите батарею. Без нее моторы не будут вращаться.
  3. Подключите плату Xadow с драйвером моторов к главной плате Xadow (имеется в виду плата Xadow Main Board; она не совместима с модулями Xadow версии 2 и RePhone).

Примечание: Подключая кабель, следите за тем, чтобы одна его сторона была подключена к порту, который находится на стороне со срезанными углами, а другая – к порту, который находится на стороне с целыми углами.

Загрузка прошивки

1. Загрузите библиотеку «Xadow Motor Driver», а затем установите ее в IDE Arduino. О том, как устанавливать в IDE Arduino новые библиотеки, читайте здесь или здесь. Для управления шаговыми моторами эта библиотека не подходит.

2. Кликните в IDE Arduino по Файл > Примеры > xadow_motor > motorCtrl (File > Examples > xadow_motor > motorCtrl), чтобы открыть вот такой скетч:

  1. /*
  2. Для моторов доступны следующие состояния:
  3.  
  4. -MSTOP                -> остановка
  5. -MFOR                 -> езда вперед
  6. -MREV                 -> езда назад
  7. -MHOLD                -> закрепить предыдущее состояние
  8.  
  9. **ПРИМЕЧАНИЕ:
  10.  
  11. Для платы можно задать 4 разных адреса:
  12. -MOTORADDRESS0 0x40  //  A0 LOW, A1 LOW
  13. -MOTORADDRESS1 0x41  //  A0 HIGH, A1 LOW
  14. -MOTORADDRESS2 0x42  //  A0 LOW, A1 HIGH
  15. -MOTORADDRESS3 0x43  //  A0 HIGH, A1 HIGH
  16.  
  17. Вот эта функция позволяет управлять сразу двумя моторами:
  18. setMotorRun(unsigned char sMotorA, unsigned char sMotorB);
  19.  
  20. */
  21.  
  22. #include <Wire.h>
  23.  
  24. #include "XadowMotor.h"
  25.  
  26. void setup()
  27. {
  28.     Serial.begin(38400);
  29.     xadowMotor.begin(MOTORADDRESS3);
  30. }
  31.  
  32. void loop()
  33. {
  34.  
  35.     Serial.print("bat vol :");  //  "Напряжение батареи: "
  36.     Serial.println(xadowMotor.getBatVol());
  37.  
  38.     xadowMotor.setMotorRun(MFOR, MFOR);
  39.  
  40.     delay(2000);
  41.  
  42.     xadowMotor.setMotorRun(MSTOP, MSTOP);
  43.  
  44.     delay(500);
  45.  
  46.     xadowMotor.setMotorRun(MREV, MREV);
  47.  
  48.     delay(2000);
  49.  
  50.     xadowMotor.setPwrDown();
  51.     delay(1000);
  52.     xadowMotor.setWakeUp();
  53.  
  54. }

Примечание: В этом коде функция xadowMotor.begin(MOTORADDRESS3) используется, чтобы задать I2C-адрес платы Xadow с драйвером моторов. Параметр MOTORADDRESS3 меняет состояние контактов A0 и A1. Более подробно читайте ниже, в разделе «Изменение I2C-адреса».

3. Загрузите скетч на плату Xadow с драйвером моторов. Не забудьте выбрать в IDE Arduino правильную плату, кликнув на Инструменты > Плата > Seeeduino Xadow (Tools > Board > Seeeduino Xadow), а также правильный COM-порт в меню Инструменты > Порт (Tools > Port).

В результате моторы, подключенные к плате, должны начать периодически крутиться то вперед, то назад. Кроме того, в мониторе порта IDE Arduino можно наблюдать напряжение батареи, питающей электромоторы.

Изменение I2C-адреса

I2C-адрес платы Xadow с драйвером моторов можно менять, и доступных вариантов – четыре. Они задаются при помощи контактов A0 и A1. По умолчанию контакты A0 и A1 подключены к H внутри платы. Но это можно изменить. Например, паяльником разрушив соединение между H и A0, а затем припаяв A0 к L. В результате контакт A0 получит значение LOW. Кроме того, I2C-адрес можно менять в коде с помощью функции xadowMotor.begin(). Более подробно смотрите в таблице ниже.

I2C-адрес Состояние контакта A0 Состояние контакта A1 Параметр для функции xadowMotor.begin()
0x40 L L MOTORADDRESS0
0x41 L H MOTORADDRESS1
0x42 H L MOTORADDRESS2
0x43 H H MOTORADDRESS3

Полезные ссылки

См.также

Внешние ссылки

  1. wiki.seeed.cc - Xadow - Motor Driver