Детали и датчики
Микроконтроллер
| Компонент | Варианты | Примечание |
|---|---|---|
| MCU | ATmega328P (Arduino Nano, UNO, Pro) | Основной вариант |
| MCU (альтернатива) | LGT8F328P | Дешевле |
Распиновка в схеме – для Arduino Nano.
Дисплей
| Компонент | Интерфейс | Кириллица | Особенности |
|---|---|---|---|
| LCD 1602 I2C | I2C | Зависит от модуля | 2-строчный, 4 экрана при заряде |
| LCD 1604 I2C | I2C | Зависит от модуля | 4-строчный |
| LCD 2004 I2C | I2C | Зависит от модуля | 4-строчный, 20 символов, 2 экрана |
Совместимые контроллеры дисплеев: ST7066, KS0066, SPLC780, SPLC780D1.
Датчик тока и напряжения
| Компонент | Примечание |
|---|---|
| INA226 | Шунт (R100) с платы нужно выпаять – используется внешний шунт на основной плате |
На модулях INA226 с AliExpress контакты SDA и SCL часто перепутаны местами. Если не исправить – модуль не будет отвечать по I2C и прошивка покажет «INA226 error».
Как проверить и исправить:
- Посмотреть на порядок контактов на модуле, считая от GND
- Если порядок GND → SDA → SCL – переставить джамперы (перемычки) на модуле в положение 1-2 и 4-5
- Если порядок GND → SCL → SDA – переставить джамперы в положение 2-3 и 5-6
Джамперы – это маленькие SMD-перемычки (0 Ом резисторы) на плате модуля. Их нужно перепаять в правильное положение, чтобы SDA и SCL соответствовали разводке основной платы.
На плате 1.6.3 есть джампер J4 – переключение SDA/SCL перемычками от ПК без перепайки модуля INA226. Подробнее – в разделе Схемы.
Встречаются нерабочие модули INA226 с AliExpress. После пайки стоит проверить связь по I2C с помощью скетча I2C-сканера. Типичные адреса: 0x40, 0x44, 0x45.
Токовый шунт
| Параметр | Рекомендация |
|---|---|
| Сопротивление | 0,01 Ом (8 А макс.) или 0,004 Ом (20 А макс.) |
| Материал | Манганин, диаметр 1,5–2 мм, или шунты на 10 А 75 мВ |
Нужен именно манганин, а не константан. Константан имеет высокий температурный коэффициент – показания тока будут плавать при нагреве.
Расчёт максимального тока: 0,081 В ÷ сопротивление = макс. ток.
При шунте 0,01 Ом – максимальный ток 8,1 А.
Максимальное напряжение на шунте для INA226 – 0,081 В. Превышение может вывести INA226 из строя.
Шунт с платы INA226 нужно выпаять – используется внешний шунт на основной плате.
Дроссель
Подробная информация о выборе сердечника, намотке и расчёте – в разделе Дроссель.
Энкодер и кнопки
| Компонент | Количество | Примечание |
|---|---|---|
| Энкодер | 1 | С кнопкой, тип EC11 |
| Кнопки | 0–4 | Старт, Стоп, Плюс, Минус (опционально) |
| Резисторы R1–R7 | 7 | Для подавления дребезга |
| Конденсаторы C1–C7 | 7 | Для подавления дребезга |
Энкодер EC11
Основной энкодер – EC11 (поворотный кодировщик с кнопкой). Доступен на AliExpress с длиной ручки 15–20 мм.
Готовые модули энкодера
Можно использовать готовый модуль энкодера EC11 на плате с обвязкой резисторами. Выходы модуля подключаются напрямую ко входам Arduino – упрощает сборку.
На готовых модулях энкодера с AliExpress все линии (S1, S2, Key) связаны между собой подтягивающими резисторами 10 кОм к 5 В. Из-за этого между линиями возникают связи, которые мешают корректной работе.
Решение: отпаять любые 2 из 3 подтягивающих резисторов на модуле – этого достаточно для разрыва связей между S1, S2 и Key. После доработки модуль работает корректно.
Если энкодер работает нестабильно (пропуски, ложные срабатывания) – нужно подать +5 В на пин питания энкодера. Без подтяжки к 5 В возможны глюки.
Тип энкодера в прошивке
В файле 1_User_Setup.h настраивается тип энкодера:
#define EBSTEP EB_STEP4_LOW // по умолчаниюЕсли энкодер реагирует неправильно (два шага за один щелчок или наоборот) – нужно изменить тип.
RC-цепочки для дребезга не обязательны – в прошивке есть программный антидребезг. Но с ними лучше. Если энкодер на готовой плате – дополнительные RC-компоненты не нужны.
Силовой модуль
| Компонент | Примечание |
|---|---|
| Силовой транзистор Q1 | На радиатор |
| Диод Шоттки D1 | На радиатор |
P-канальные (схемы 1.6.x)
| Компонент | Параметры | Примечание |
|---|---|---|
| IRF4905 | 55 В, 74 А, Rds 20 мОм | Основной. Только ChipDip – на AliExpress массово подделки |
| AOD403 | 30 В, 70 А, Rds 7–9 мОм | Надёжная альтернатива |
| FDD6637 | 30 В, 55 А, Rds 57 мОм | Низкий Rds(on) |
| SUB75P05-08 | Rds 7 мОм | Отличные характеристики |
N-канальные (схема 2.3.1)
| Компонент | Примечание |
|---|---|
| IRLB3103 | Основной для 2.3.1 |
| IRF3205 | Распространённый, для Q1 и Q4 |
| IRFB7440 | Rds 2 мОм |
| IRL3713 | Rds 1,75 мОм – лучший по потерям |
На AliExpress массово продаются поддельные IRF4905 с Rds в 30 раз выше нормы (0,6 Ом вместо 0,02). Лучше покупать на проверенных площадках (ChipDip.ru) или выпаивать из оборудования.
Датчик температуры стоит ставить как можно ближе к силовому транзистору или дросселю – дроссель часто греется сильнее.
Стабилизаторы напряжения
| Компонент | Назначение | Примечание |
|---|---|---|
| LM7812 | Снижает до 12 В (Arduino, вентилятор) | На радиатор. Предпочтительнее AMS1117 |
| LM7805 (опц.) | Снижает до 5 В (Arduino) | После LM7812, на радиатор |
| Hi-Link K7805/K7812 (альт.) | Изолированные DC-DC модули | 350–500 мВт, компактные |
| LM2576S-5.0 (альт.) | DC-DC 5 В | Альтернатива линейным стабилизаторам |
Дешёвые AMS1117 не выдерживают нагрузку (вентилятор + дисплей) и выходят из строя. Лучше LM7812/LM7805 в корпусе TO-220 или отдельные DC-DC модули.
Прочие компоненты
| Компонент | Примечание |
|---|---|
| Звуковой сигнал | Пассивный (от ПК) или активный |
| Вентилятор | 12 В, до 0,2 А |
| Реле 220 В (опц.) | Обычное или твердотельное, через оптрон |
Датчик температуры АКБ
Датчик температуры аккумулятора позволяет ViktoRi:
- Корректировать напряжение заряда по температуре (свинцовые)
- Отключать заряд при опасной температуре (литиевые)
- Снижать ток при приближении к предельным значениям
DS18B20
Цифровой датчик. По сути – целый микроконтроллер. Хранит значения, сигнализирует о выходе за границы, меняет точность. Доступен в водонепроницаемом корпусе.
NTC-термистор
Полупроводниковый прибор, сопротивление которого зависит от температуры. Расчёт – программный.
Оба типа датчиков дают одинаковую точность. NTC проще в подключении, DS18B20 – функциональнее.
Подключение NTC
По схеме 1.6.3 к пину A6 Arduino.
В 1_defines.h:
#define SENSTEMP2 2
// датчик температуры АКБ:
// 1 - DS18B20 (пока не реализовано)
// 2 - NTC
// 0 - не используется
// Схема 1.6.3Параметры термистора:
#define NTCB2 3435 // B термистора (из datasheet)
#define NTCR2 10000 // Ом — сопротивление при 25°C
#define NTCRS2 10000 // Ом — подтягивающий резисторПараметр B (NTCB2) берётся из характеристик конкретного термистора. Неправильное значение – неправильная температура.
Коррекция точности
Если NTC показывает температуру с отклонением – можно подкорректировать параметр TEMPBASE2 в 1_User_Setup.h:
#define TEMPBASE2 25 // базовая температура (°C)Нужно сравнить показания NTC с точным термометром и прибавить или убавить значение TEMPBASE2, пока температура не совпадёт.
Размещение
- Датчик крепится к корпусу АКБ – нужен плотный тепловой контакт
- Сверху накрывается термоизоляцией – чтобы датчик измерял температуру батареи, а не воздуха