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

Материал из Онлайн справочника
Версия от 13:15, 18 июня 2023; EducationBot (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

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


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

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

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

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

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

  • 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), чтобы открыть вот такой скетч:

/*
Для моторов доступны следующие состояния:

-MSTOP                -> остановка
-MFOR                 -> езда вперед
-MREV                 -> езда назад
-MHOLD                -> закрепить предыдущее состояние

**ПРИМЕЧАНИЕ:

Для платы можно задать 4 разных адреса:
-MOTORADDRESS0 0x40  //  A0 LOW, A1 LOW
-MOTORADDRESS1 0x41  //  A0 HIGH, A1 LOW
-MOTORADDRESS2 0x42  //  A0 LOW, A1 HIGH
-MOTORADDRESS3 0x43  //  A0 HIGH, A1 HIGH

Вот эта функция позволяет управлять сразу двумя моторами:
setMotorRun(unsigned char sMotorA, unsigned char sMotorB);

*/

#include <Wire.h>

#include "XadowMotor.h"

void setup()
{
    Serial.begin(38400);
    xadowMotor.begin(MOTORADDRESS3);
}

void loop()
{

    Serial.print("bat vol :");  //  "Напряжение батареи: "
    Serial.println(xadowMotor.getBatVol());

    xadowMotor.setMotorRun(MFOR, MFOR);

    delay(2000);

    xadowMotor.setMotorRun(MSTOP, MSTOP);

    delay(500);

    xadowMotor.setMotorRun(MREV, MREV);

    delay(2000);

    xadowMotor.setPwrDown();
    delay(1000);
    xadowMotor.setWakeUp();

}

Примечание: В этом коде функция 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

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

См.также

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