
Новый НИРС / NIRS_Novikov_SM9-91
.pdf2.2 Выбор компонентов
Основным компонентом предполагаемого стенда был выбран микроконтроллер Arduino Nano. Это микроконтроллер с достаточным количеством входов/выходов для подключения датчиков и управления процессом измерений, а так же с возможностью чтения как цифровых, так и аналоговых сигналов, что убирает потребность использования в данном стенде отдельного аналогово-цифрового преобразователя. Рабочее напряжение для данного микроконтроллера 5 В, а так же он оборудован стабилизатором входного напряжения, что позволит использовать широкий спектр источников питания цепи, при необходимости, в том числе и исследуемую ячейку ТАБ. В качестве основного измеряющего устройства был выбран датчик тока ACS712, позволяющий измерять силу тока с высокой точностью без сложных систем контроля и записи сигнала. Чувствительность данного датчика – 0.185 В/А. Допустимый предел силы тока, протекающий через данный датчик – 5 А, что должно быть достаточно для исследования малоемкой ячейки ТАБ. Для зарядки батареи был использован источник постоянного тока напряжением 5 В и силой тока 0,5 А. В качестве драйвера двигателя выбран MINI L293D - интегрированный высоковольтный,
четырехканальный драйвер высокого тока, разработанным для принятия стандартных логических уровней и индуктивных нагрузок привода (например,
реле, соленоидов постоянного тока, шаговые двигатели), переключения силовых транзисторов. Для упрощения использования в качестве двух мостов каждая пара каналов оснащена входом включения. Для логической цепи предусмотрен отдельный вход питания, позволяющий работать при меньшем напряжении и включены внутренние защитные диоды. Данный драйвер подходит для использования в системах с ШИМ модуляцией на частотах до 5
кГц.
2.3 Разработка схемы
11

Для разработки робота с двумя электромоторами, микроконтроллером
Arduino Nano, датчиком тока и аккумуляторной батареей, можно использовать модифицированную схему Н-моста, изображенную на рисунке 1. Эта схема соответствует описанным требованиям и включает все необходимые компоненты для управления движением, а также питания робота от аккумуляторной батареи.
В состав робота войдут:
1.Микроконтроллер: Arduino Nano.
2.Двигатели: 2 коллекторных двигателя постоянного тока на 3.7V.
3.Драйвер двигателей: двухканальный H-мост (например, L298N или
L293D) для управления двигателями.
4.Датчик тока: ACS712 (датчик тока на эффекте Холла).
5.Аккумуляторная батарея: Литий-полимерная батарея 7.4V LiPo 260 mAh 5C, разделенная на две отдельных ячейки. Для данной работы будет использоваться одна ячейка из двух, обеспечивающая напряжение в
3.7V и ёмкость в 130 мА/ч.
6. Делитель напряжения: Для измерения напряжения на клеммах батареи.
Рисунок 1 – Схема подключений Н-моста на микросхеме L293D MINI
12
2.4Схема подключения
1.Подключение двигателей:
Два двигателя постоянного тока подключаются к выходам H-моста (L298N
или L293D).
Входы H-моста (IN1, IN2, IN3, IN4) подключаются к цифровым выходам
Arduino Nano (например, D2, D3, D4, D5).
Входы включения двигателей (ENA, ENB) подключаются к ШИМ-выходам
Arduino (например, D9, D10) для регулировки скорости.
Питание H-моста (VCC) подключается к аккумуляторной батарее (7.4V).
Земля (GND) H-моста подключается к общему GND схемы. 2. Подключение датчика тока (ACS712):
Вход датчика тока (VCC) подключается к +5V от Arduino Nano.
Выход датчика (OUT) подключается к аналоговому входу Arduino (например,
A0).
Земля (GND) датчика подключается к общему GND схемы.
Датчик тока подключается в разрыв цепи между аккумуляторной батареей и
H-мостом для измерения тока, потребляемого двигателями. 3. Подключение аккумуляторной батареи:
Плюс батареи подключается к входу VCC H-моста и через датчик тока.
Минус батареи подключается к общему GND схемы.
Для измерения напряжения батареи используется делитель напряжения (два резистора, например, 10 кОм и 20 кОм), подключённый к аналоговому входу
Arduino (например, A1).
2.5 Список соединений:
Arduino Nano:
5V → VCC датчика тока (ACS712).
GND → Общий GND схемы (H-мост, датчики, делитель напряжения). A0 → Выход датчика тока (ACS712 OUT).
13
A1 → Выход делителя напряжения (для измерения напряжения батареи). D2, D3, D4, D5 → Входы H-моста (IN1, IN2, IN3, IN4).
D9, D10 → Входы включения двигателей (ENA, ENB) на H-мосте.
H-мост (L298N):
VCC → Плюс аккумуляторной батареи.
GND → Общий GND схемы.
OUT1, OUT2 → Двигатель 1.
OUT3, OUT4 → Двигатель 2.
IN1, IN2, IN3, IN4 → Цифровые выходы Arduino (D2, D3, D4, D5).
ENA, ENB → ШИМ-выходы Arduino (D9, D10).
Датчик тока (ACS712):
VCC → +5V от Arduino.
OUT → Аналоговый вход Arduino (A0).
GND → Общий GND схемы.
IP+ → Плюс аккумуляторной батареи.
IP- → Вход VCC H-моста.
Делитель напряжения:
Резистор 10 кОм → Плюс батареи.
Резистор 20 кОм → Общий GND.
Средняя точка → Аналоговый вход Arduino (A1).
Аккумуляторная батарея:
Плюс → Вход VCC H-моста и IP+ датчика тока.
Минус → Общий GND схемы.
На рисунке 2 изображены внешний вид схемы робота в сборе. На рисунке 3 изображена вольт-амперная характеристика датчика ACS712 в
зависимости от температуры окружающей среды. На рисунке 4 изображена внутренняя структура микросхемы L293D.
14

Рисунок 2 – Внешний вид схемы робота в сборе, изображенный в ПО Fritzing
Рисунок 3 – Вольт-амперная характеристика датчика ACS712
15

Рисунок 4 – Внутренняя структура микросхемы L293D, используемой в качестве двухканального Н-моста
В таблице 1 изображены возможные состояния ключей Н-моста:
Таблица 1. Схема включения Н-моста
Мотор |
Режим |
IN1 |
|
IN2 |
IN3 |
|
IN4 |
|
|
|
|
|
|
|
|
|
Вперед |
1/ШИМ |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
Левый |
Назад |
0 |
|
1/ШИМ |
|
- |
|
мотор |
|
|
|
|
|
||
Остановка |
0 |
|
0 |
|
|||
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
Торможение |
1 |
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
Вперед |
|
|
|
1/ШИМ |
|
0 |
|
|
|
|
|
|
|
|
Правый |
Назад |
|
- |
0 |
|
1/ШИМ |
|
мотор |
|
|
|
|
|
||
Остановка |
|
0 |
|
0 |
|||
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
Торможение |
|
|
|
1 |
|
1 |
|
|
|
|
|
|
|
|
На рисунке 6 изображена электрическая схема разработанного робота. В
состав схемы вошли два электромотора, микроконтроллер Arduino Nano,
микросхема L293D, датчик тока ACS712, литий-полимерная батарея на 3.7V,
и делитель напряжения, собранный из резистором номиналом 10кОм и 20кОм.
16

Рисунок 5 – Электрическая схема разработанного робота
2.6 Программирование
Далее, была написана программа для микроконтроллера Arduino Nano,
которая будет считывать данные от датчиков, обрабатывать их и выводить в интерактивном режиме на экран компьютера. На рисунках 6-9 приведен листинг программы в ПО Fritzing. На рисунке 10 изображен интерактивный режим работы робота, посредством передачи команд через последовательный порт. Полный скрипт программы в приложении 1. Так же, в алгоритм управления роботом была добавлена фильтрация входного сигнала по методике, описанной в [1-7].
17

Рисунок 6 – Создание глобальных переменных для расчета напряжения и тока и указание номеров используемых портов
Рисунок 7 – Инициализация цифровых выходов микроконтроллера для управления Н-мостом и первичное указание опций движения для проверки работы
18

Рисунок 8 – Основной цикл расчета напряжений и цикл управления движением
Рисунок 9 – Основные функции движения робота
19

Рисунок 10 – Вывод сигнала на экран с помощью Serial Monitor
20