Skip to Content
ДокументацияСборкаДетали и датчики

Детали и датчики

Микроконтроллер

КомпонентВариантыПримечание
MCUATmega328P (Arduino Nano, UNO, Pro)Основной вариант
MCU (альтернатива)LGT8F328PДешевле

Распиновка в схеме – для Arduino Nano.

Дисплей

КомпонентИнтерфейсКириллицаОсобенности
LCD 1602 I2CI2CЗависит от модуля2-строчный, 4 экрана при заряде
LCD 1604 I2CI2CЗависит от модуля4-строчный
LCD 2004 I2CI2CЗависит от модуля4-строчный, 20 символов, 2 экрана

Совместимые контроллеры дисплеев: ST7066, KS0066, SPLC780, SPLC780D1.

Датчик тока и напряжения

КомпонентПримечание
INA226Шунт (R100) с платы нужно выпаять – используется внешний шунт на основной плате

На модулях INA226 с AliExpress контакты SDA и SCL часто перепутаны местами. Если не исправить – модуль не будет отвечать по I2C и прошивка покажет «INA226 error».

Как проверить и исправить:

  1. Посмотреть на порядок контактов на модуле, считая от GND
  2. Если порядок GND → SDA → SCL – переставить джамперы (перемычки) на модуле в положение 1-2 и 4-5
  3. Если порядок 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–R77Для подавления дребезга
Конденсаторы C1–C77Для подавления дребезга

Энкодер 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)

КомпонентПараметрыПримечание
IRF490555 В, 74 А, Rds 20 мОмОсновной. Только ChipDip – на AliExpress массово подделки
AOD40330 В, 70 А, Rds 7–9 мОмНадёжная альтернатива
FDD663730 В, 55 А, Rds 57 мОмНизкий Rds(on)
SUB75P05-08Rds 7 мОмОтличные характеристики

N-канальные (схема 2.3.1)

КомпонентПримечание
IRLB3103Основной для 2.3.1
IRF3205Распространённый, для Q1 и Q4
IRFB7440Rds 2 мОм
IRL3713Rds 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, пока температура не совпадёт.

Размещение

  1. Датчик крепится к корпусу АКБ – нужен плотный тепловой контакт
  2. Сверху накрывается термоизоляцией – чтобы датчик измерял температуру батареи, а не воздуха
Last updated on