Совет 1: Как подключить коллекторный двигатель к Arduino

Как известно, электродвигатели бывают трёх основных типов: коллекторные, шаговые и сервоприводы. В данной статье мы рассмотрим подключение коллекторного электродвигателя к Arduino с помощью драйвера двигателей на основе микросхемы L9110S или аналогичном.
Драйвер двигателей на основе микросхемы L9110S
Вам понадобится
  • - Arduino;
  • - персональный компьютер со средой разработки Arduino IDE;
  • - драйвер двигателей L9110S или аналогичный;
  • - коллекторный электромотор;
  • - соединительные провода.
Инструкция
1
Напрямую подключить электродвигатель к выводам Arduino нельзя: есть риск сжечь вывод, к которому подключён двигатель. Для безопасного подключения электродвигателей разных типов к Arduino необходим самодельный или промышленно изготовленный драйвер двигателей. Драйверы двигателей бывают самые разные. Наиболее распространены типа HG788, L9110S, L293D, L298N и другие. Драйверы двигателей имеют выводы питания, выводы для подключения электродвигателей, а также управляющие выводы. В данной статье мы будем использовать драйвер для управления двигателями, сделанный на основе микросхемы L9110S. Обычно выпускаются платы, которые поддерживают подключение нескольких двигателей. Но для демонстрации мы обойдёмся одним.
Различные драйверы двигателей
2
Самые простые двигатели - коллекторные двигатели. У таких моторов всего два управляющих контакта. В зависимости от полярности приложенного к ним напряжения меняется направление вращения вала двигателя, а величина приложенного напряжения изменяет скорость вращения.
Давайте подключим двигатель по приложенной схеме. Питание драйвера двигателя - 5 В от Arduino, для управления скоростью вращения ротора мотора управляющие контакты подключаем к выводам Ардуино, поддерживающим ШИМ (широтно-импульсную модуляцию).
Схема подключения двигателя к Arduino
3
Напишем скетч для управления коллекторным двигателем. Объявим две константы для ножек, управляющих двигателем, и одну переменную для хранения значения скорости. Будем передавать в последовательный порт значения переменной Speed и менять таким образом скорость и направление вращения двигателя.
Максимальная скорость вращения - при наибольшем значении напряжения, которое может выдать драйвер двигателя. Мы можем управлять скоростью вращения, подавая напряжения в диапазоне от 0 до 5 Вольт. Так как мы используем цифровые ножки с ШИМ, напряжение на них регулируется командой analogWtirte(pin, value), где pin - номер вывода, на котором мы хотим задать напряжение, а аргумент value - коэффициент, пропорциональный значению напряжения, принимающий значения в диапазоне от 0 (напряжение на выводе равно нулю) до 255 (напряжение на выводе равно 5 В).
Скетч управления коллекторным двигателем
4
Загрузим скетч в память Arduino. Запустим его. Двигатель не вращается. Чтобы задать скорость вращения, нужно передать в последовательный порт значение от 0 до 255. Направление вращения определяется знаком числа.
Подключимся с помощью любой терминалки к порту, передадим число "100" - двигатель начнёт вращаться со средней скоростью. Если подадим "минус 100", то он начнёт вращаться с той же скоростью в противоположном направлении.
Управление коллекторным двигателем с помощью Arduino

Совет 2: Как подключить цифровой компас HMC5883 к Arduino

Рассмотрим подключение модуля GY-273 с трёхосевым цифровым компасом HMC5883L фирмы Honeywell. Эта микросхема может использоваться для магнитометрических измерений, в навигации, если не требуется большая точность измерений (с погрешностью 1…2 градуса и возможностью калибровки). Устройство подключается по интерфейсу I2C.
Цифровой компас HMC5883
Вам понадобится
  • - Цифровой компас HMC5883;
  • - Arduino;
  • - макетная плата и соединительные провода;
  • - компьютер.
Инструкция
1
Вот основные характеристики магнитного компаса:
- 3-осевой магниточувствительный датчик;
- 12-разрядный АЦП с разрешением 2 мГс (миллигаусс);
- встроенная самопроверка;
- низкое рабочее напряжение и малое потребление;
- цифровой интерфейс I2C;
- высокая скорость опроса – до 160 раз в секунду (время одного измерения примерно 6 мс);
- точность определения направления 1°…2°;
- может применяться в сильных магнитных полях (до ±8 Гаусс).
Схема подключения магнитного датчика HMC5883L к Arduino приведена на рисунке. Она очень компактная и простая, т.к. двухпроводной интерфейс I2C тем и хорош, что требует малого количества соединений. Можно воспользоваться макетной платой.
Подключение цифрового компаса HMC5883 к Arduino
2
Должно получиться примерно так, как на фотографии. Я ещё подключу к шинам SCL и SDA логический анализатор, чтобы контролировать информационный обмен между Arduino и модулем HMC5883. Это не обязательно.
Цифровой компас HMC5883 подключён к Arduino на макетной плате
3
Давайте в качестве первого знакомства попробуем прочитать идентификационный регистры 10 (0xA), 11 (0xB) и 12 (0xC) цифрового компаса HMC5883 и напишем вот такой скетч, как на рисунке. Он снабжён подробными комментариями.
Скетч, считывающий идентификационные регистры HMC5883
4
Сигнал, полученный с помощью логического анализатора, будет таким, как на иллюстрации.
Что это значит? Первый байт – I2C адрес, с которым мы (ведущее устройство, Arduino) устанавливаем связь (старшие 7 бит 0x1E), и режим записи (младший бит – 0x0); получается число 0x3C. Второй байт – число 0xA, которое мы записали по адресу 0x1E и бит подтверждения от датчика HMC5883L, которое является ведомым. Это номер регистра, с которого мы начнём считывать данные. На этом первая транзакция закончилась. Начинается следующая. Третий байт – это запрос чтения у ведомого (старшие 7 бит – адрес 0x1E, 8-ой бит – операция чтения 0x1; получается число 0x3D). Последние 3 три байта – это ответ ведомого устройства HMC5883L из регистров 0xA, 0xB и 0xC, соответственно.
Цифровой компас HMC5883L при непрерывном считывании перемещается по регистрам самостоятельно. Т.е. каждый раз указывать регистр не обязательно (но и не запрещено). Например, если мы вместо 0xA записали бы 0x3 и 10 раз считали, то получили бы значения в 10-ти регистрах, начиная с 3-го по 12-ый.
А что это за три числа – 0x48, 0x34, 0x33? Снова воспользовавшись паспортом на цифровой компас HMC5883L, мы увидим, что это значения по умолчанию для трёх идентификационных регистров.
Временная диаграмма обмена по I2C с цифровым компасом HMC5883
5
Чтобы получить данные цифрового компаса по магнитному полю, нужно прочитать регистры с 3-го по 8-ой подобно тому, как мы прочитали идентификационные регистры. С той лишь разницей, что данные по каждой из трёх осей X, Y и Z представлены в виде двухбайтовых чисел. Переведя их в десятичные числа, мы получим направления по каждой из трёх осей.
Регистры данных цифрового компаса HMC5883
Источники:
  • Arduino UNO урок 14 – цифровой компас HMC5883L « схемопедия
Совет полезен?
Поиск
Добавить комментарий к статье
Осталось символов: 500