DIY MPPT-контроллер заряда на Arduino для оптимизации солнечной энергии
Компоненты и расходные материалы
| Компонент | Количество |
|---|---|
| Arduino Nano R3 | 1 |
| MOSFET-транзистор (ключевой) | 4 |
| Espressif ESP8266 ESP-01 | 1 |
| Символьный LCD-дисплей 20×4 (I2C) | 1 |
| Драйвер MOSFET (IR2104) | 1 |
| Датчик тока ACS712 (5А) | 1 |
| TVS-диод P6KE36CA | 1 |
| Транзистор NPN 2N2222 | 1 |
Необходимые библиотеки для Arduino IDE
- TimerOne.h — для работы с таймерами
- LiquidCrystal_I2C — для управления LCD-дисплеем по I2C
Важно: создайте папки с именами библиотек (TimerOne и LiquidCrystal_I2C) и поместите их в директорию Arduino/libraries.
О проекте
Что такое MPPT (Maximum Power Point Tracking)?
Алгоритм MPPT позволяет извлекать максимальную доступную мощность из фотоэлектрических модулей при заданных условиях. Это наиболее эффективный способ использования солнечной энергии — возобновляемого источника энергии. Переход на чистую энергию (солнечную, гидро, ветровую) критически важен для сокращения углеродного следа и борьбы с глобальным потеплением.
Как работает MPPT? Почему 150-ваттная панель не даёт 150 Вт?
Пример: вы купили солнечную панель, выдающую 7 А. Напряжение заряда батареи установлено на 12 В. Мощность: 7 А × 12 В = 84 Вт. Вы теряете более 66 Вт — не потому, что энергия исчезает, а из-за несоответствия тока панели и напряжения батареи.
С алгоритмом MPPT: батарея получает 12 А при 12 В. Выходная мощность: 12 × 12 = 144 Вт. Почти вся заявленная мощность используется эффективно.
Спецификации проекта
- LED-индикация уровня заряда (низкий/средний/высокий)
- LCD-дисплей 20×4 для отображения мощности, тока, напряжений
- Защита от молний и перенапряжения
- Защита от обратного тока
- Защита от перегрузки и короткого замыкания
- Логирование данных через WiFi (ThingSpeak)
- USB-порт для зарядки гаджетов
Электрические характеристики
- Номинальное напряжение: 12 В
- Максимальный входной ток: 5 А
- Ток нагрузки до: 10 А
- Входное напряжение (солнечная панель): 12–24 В
- Мощность солнечной панели: 50 Вт
Необходимые детали (детальный список)
- Резисторы: 3×200Ω, 3×330Ω, 1×1кΩ, 2×10кΩ, 2×20кΩ, 2×100кΩ, 1×470кΩ
- TVS-диоды: 2×P6KE36CA
- Arduino Nano
- Датчик тока ACS712-5A
- Понижающий преобразователь LM2596
- WiFi-модуль ESP8266
- LCD 20×4 I2C
- MOSFET: 4×IRFZ44N
- Драйвер MOSFET: IR2104
- Стабилизатор 3.3В: AMS1117
- Транзистор: 2N2222
- Диоды: 2×1N4148, 1×UF4007
- Конденсаторы: 4×0.1мкФ, 3×10мкФ, 1×100мкФ, 1×220мкФ
- Дроссель: 1×33мкГн/5А
- Светодиоды: красный, жёлтый, зелёный
- Предохранители: 5А
Модель и симуляция
Проект смоделирован в Proteus 8.6. Доступны файлы симуляции (по запросу).
WiFi-логирование через ESP8266 и ThingSpeak
- Зарегистрируйтесь на ThingSpeak
- Создайте канал, поле 1 назовите «Solar Panel Data»
- Скопируйте API Key и вставьте в исходный код
Схема подключения
Схема доступна в разделе «Schematics». Перед загрузкой кода установите все библиотеки.
Исходный код
Код доступен по ссылке: Bitbucket (библиотека LiquidCrystal). Полный скетч прилагается к проекту.
Производственный процесс
- Цифровые кости на Arduino: генератор случайных чисел с LCD-дисплеем и кнопкой
- DIY USB-геймпад на Arduino: собственный высокопроизводительный контроллер
- Pixel Chaser: игра на один тап с NeoPixel Ring и Arduino Nano
- Arduino Home Controller с Alexa: умный дом голосовым управлением
- NeoPixel Matrix Pong на Arduino Nano: неоновая игра Pong на матрице 15×10
- Arduino DMX-512 Tester Controller – Полный набор деталей для надежного управления освещением
- DIY LED-рулетка — собираем одноигровой аркадный автомат на Arduino Nano
- Продвинутая система домашнего мониторинга на Arduino Mega с IoT-датчиками
- Arduino-контроллер GrowBox: открытое ПО и руководство по железу для умного выращивания
- Система безопасности на Arduino: обнаружение движения и тревога