Arduino зарядний пристрій. Бюджетний пристрій на базі Arduino для незрячих (open hardware)



Магнітна індукція – це технологія, яку ви, мабуть, пам'ятаєте із занять з фізики у старших класах школи. Для бездротової передачіенергії вам знадобляться дві котушки: котушка передавача та котушка приймача. Змінний струм у котушці передавача генерує магнітне поле, яке індукує напругу в котушці приймача. Ця напруга може використовуватися для живлення мобільного пристроюабо для заряджання акумулятора.


Не менше важливими елементамибудуть котушки індуктивності, які можна зробити своїми руками. Ці прості котушкинамотуються з мідних дротів і називаються котушками з повітряним сердечником. Створення такої обмотки для нашої мети є дуже простою справою. Знайдіть круглий циліндр діаметром приблизно 5 сантиметрів і намотайте провід на нього так, щоб кожен виток не накладався на інший виток, але в той же час був якомога ближче до іншого витка. Круглим циліндром може бути, наприклад, трубка з ПВХ. Можливо, вам знадобиться використовувати клейку стрічку або скотч у 2-3 місцях, щоб зберегти стабільність конструкції.


Крім Arduino і котушок індуктивності нам знадобляться: один NPN-транзистор типу 2N3055, один діодний міст 1А (діодне складання, у них чотири виводи), один світлодіод, один 100-омний резистор, два конденсатори ємністю 47 нФ, батарейка 9 а також бажано дві плати для прототипування. Схема підключення компонентів для створення бездротового пристрою даних показана на малюнку нижче.



Схему можна протестувати за допомогою простого кодудля Arduino, наведеного далі.


void setup() ( pinMode(13,OUTPUT); ) void loop() ( digitalWrite(13,HIGH); delay(0.5); digitalWrite(13,LOW); delay(0.5); )

Тим не менш, простий пристрій бездротової передачі енергії можна зробити без Arduino. В принципі, ми можемо використовувати лише один транзистор 2N2222. Підключіть його виведення бази до першого кінця котушки, а колектор до іншого кінця котушки. Виведення емітера підключається до батареї. У результаті така проста конструкція може виглядати так:




   Дякую за інтерес до інформаційного проекту сайт.
   Якщо Ви хочете, щоб цікаві та корисні матеріаливиходили частіше, і було менше реклами,
   Ви можете підтримати наш проект, пожертвувавши будь-яку суму його розвитку.

Не лише цікавий, а й корисний у побуті проект для Arduino представила у своєму блозі команда Electro-Labs. У цьому проекті розроблено програмований шилд для Arduino, який виконує функцію зарядного пристрою для літієвих акумуляторних батарей. Шилд включає в себе LCD дисплейі кнопковий інтерфейс, що дозволяє користувачеві регулювати напругу від 2В до 10В та струм від 50мА до 1,1А. Також пристрій забезпечує можливість контролювати процес заряджання.

Шилд заснований на мікросхемі LT1510 та керується Arduino Uno. Як дисплей використовується простий і доступний Nokia 5110 LCD. Він підключається за інтерфейсом SPI і живиться від напруги 3,3В. Так як I/O піни arduino працюють на 5В, підключати LCD модуль рекомендується через резистори, включені послідовно в сигнальні лінії. Для підключення Li-Ion батарейдоступні два роз'єми. Чотири кнопки керування підключені до пін A2-A5 Arduino. Напруга на акумуляторі та струм зарядки контролюються через аналогові піни A0 та A1. Деталі аналого-цифрового перетворенняпояснено у вихідному коді проекту. Два SMD світлодіоди використовуються для індикації роботи пристрою.

Принципова схема проекту була розроблена в SoloCapture із пакету SoloPCBtools. Шилд може працювати, без керування мікроконтролером. Коли в Arduino не прошита програма, зарядний пристрій, за умовчанням, має напругу відсічення 4,2В максимальний струмзаряджання 1,1А. Друкована плата спроектована у SoloPSB. Проект друкованої платиі саму програму SoloPSB можна завантажити з сайту electro-labs.com. Розміри шилду підібрані для розташування на Arduino Uno. Світлодіоди, кнопковий інтерфейс, LCD-дисплей та роз'єми для акумуляторів для зручності розташовані зверху. Всі інші елементи розташовані з зворотного бокушилда.

LCD-дисплей запрограмований на показ чотирьох сторінок, які дозволяють користувачеві ввести параметри заряджання та контролювати її процес. На першій сторінці користувач може встановити напругу відсікання та максимальний струм заряду, перейти до сторінки стану акумулятора та почати заряджання. Кнопки вгору та вниз використовуються для переходу між опціями, а вправо та вліво – для зміни параметрів та вибору опцій. Друга сторінка показує стан акумулятора. У ній можна переглянути поточну напругу на акумуляторі. Третя сторінка показує напругу та струм зарядки. Лівою або правою кнопкоюу цій сторінці можна зупинити процес заряджання та повернутися на сторінку завдання параметрів. Коли напруга акумулятора досягає заданого значення, зарядний пристрій зупиняється та показує повідомлення "Charge Complete". Щоб вийти, натисніть клавішу ліворуч.

Arduino та додана до неї схема заряду можуть бути використані для моніторингу та управління зарядкою нікель-метал-гідридних акумуляторів, наприклад, так:

Закінчений пристрій

Акумуляторні батареї є відмінним способомдля живлення портативної електроніки. Вони можуть заощадити вам багато грошей у правильної зарядки. Для того, щоб ви могли отримати максимальну віддачувід ваших акумуляторних батарей, їх потрібно правильно заряджати. Це означає, що вам потрібний гарний зарядний пристрій. Ви можете витратити купу грошей, купивши готовий зарядний пристрій, а можете отримати задоволення, зробивши його самі. У цій статті ми розглянемо, як створити зарядний пристрій, керований Arduino.

По-перше, важливо відзначити, що не існує універсального способузарядки, який підходив би для всіх акумуляторів. Різні типи акумуляторів використовують різні хімічні процеси, що забезпечують їхню роботу. В результаті, різні типиакумуляторів необхідно заряджати по-різному. У цій статті ми не зможемо охопити всі типи акумуляторних батарей та методи заряджання. Тому для простоти ми зосередимо увагу на найбільш поширеному типі акумуляторних батарей розміру AA, на нікель-метал-гідридних акумуляторах (NiMH).

Комплектуючі

Список комплектуючих зліва направо:

  • потужний резистор 10 Ом (мінімум 5 Вт);
  • резистор 1 МОм;
  • конденсатор 1 мкФ;
  • MOSFET транзистор IRF510;
  • датчик температури TMP36;
  • джерело живлення 5 вольт;

Як заряджати NiMH AA акумулятори

Збільшення швидкості заряду збільшує ризик пошкодження акумулятора.

Існує багато способів заряджання NiMH акумуляторів. Вибір методу, який ви використовуєте, в основному залежить від того, як швидко ви хочете зарядити акумулятор. Швидкість заряду вимірюється по відношенню до ємності батареї. Якщо ваша батарея має ємність 2500 мАч, і ви заряджаєте її струмом 2500 мА, то ви заряджаєте її зі швидкістю 1C. Якщо ви заряджаєте цей акумулятор струмом 250 мА, то ви заряджаєте його зі швидкістю C/10.

Під час швидкої зарядкиакумулятора (зі швидкістю вище C/10), необхідно ретельно контролювати напругу на батареї та її температуру, щоб не перезарядити її. Це може пошкодити акумулятор. Тим не менше, коли ви заряджаєте акумулятор повільно (зі швидкістю нижче C/10), у вас набагато менше шансів пошкодити батарею, якщо її випадково перезарядите. Тому повільні методи заряджання, як правило, вважаються безпечнішими і допоможуть вам збільшити термін служби батареї. Тому в нашому саморобному зарядному пристрої ми будемо використовувати швидкість заряду C/10.

Ланцюг заряду

Для даного зарядного пристрою основою є схема для управління джерелом живлення допомогою Arduino. Схема живиться від напруги 5 вольт, наприклад, від адаптера змінного струмуабо комп'ютерного блокуживлення. Більшість USB портів не підходить для даного проектучерез обмеження струму. Джерело 5В заряджає батарею через потужний резистор 10 Ом та потужний MOSFETтранзистор. MOSFET транзистор встановлює величину струму, що протікає через батарею. Резистор доданий як простий спосіб контролю струму. Контроль величини струму виконується підключенням кожного виведення резистора до аналогових вхідних висновків Arduino та вимірюванням напруги з кожної сторони. MOSFET транзистор управляється вихідним ШИМ виводом Arduino. Імпульси сигналу широтно-імпульсної модуляції згладжуються до постійної напругифільтром на резисторі 1 МОм та конденсаторі 1 мкФ. Ця схемадозволяє Arduino відстежувати та керувати струмом, що протікає через батарею.


Датчик температури

Датчик температури служить для запобігання перезаряду батареї та забезпечення безпеки.

Як додатковий запобіжний засіб до зарядного пристрою доданий датчик температури TMP36 для контролю температури батареї. Даний датчиквидає напругу, яка лінійно залежить від температури. Тому він, на відміну від термісторів, не потребує калібрування чи балансування. Датчик встановлюється в просвердленому отворі в корпусі тримача батареї та приклеюється в отворі так, щоб він притискався до батареї, коли та буде встановлена ​​у тримач. Висновки датчика підключаються до шини 5В, корпусу і аналогового вхідного висновку Arduino.

Утримувач AA батареї перед і після встановлення на макетну плату

Код


Код для цього проекту досить простий. Змінні на початку вихідного коду дозволяють налаштувати зарядний пристрій шляхом введення значень ємності батареї та точного опору потужного резистора. Також додані змінні безпечних порогів. Максимально допустима напругана батареї встановлюється значення 1,6 вольта. Максимальну температуру батареї встановлено на 35 градусів за Цельсієм. Максимальний час заряду встановлено на 13 годин. Якщо будь-який з цих порогів безпеки буде перевищено, зарядний пристрій вимикається.

У тілі програми можна побачити, що система постійно вимірює напруги на висновках потужного резистора. Це використовується для розрахунку значень напруги на батареї і струму, що протікає через неї. Струм порівнюється з цільовим значенням, яке становить C/10. Якщо розрахований струм відрізняється від цільового значеннябільш ніж на 10 мА система автоматично підлаштовує вихідне значення, щоб підкоригувати його.

Arduino використовує послідовний інтерфейс для відображення поточних даних. Якщо ви хочете проконтролювати роботу зарядного пристрою, то можете підключити Arduino до USB портукомп'ютера, але це необов'язково, оскільки Arduino живиться від напруги 5В зарядного пристрою.

Int batteryCapacity = 2500; // значення ємності батареї мАч float resistance = 10.0; // Виміряний опір потужного резистора int cutoffVoltage = 1600; // максимальна напругана батареї (в мВ), яка не повинна бути перевищена float cutoffTemperatureC = 35; // максимальна температурабатареї, яка повинна бути перевищена (у градусах C) //float cutoffTemperatureF = 95; // максимальна температура батареї, яка повинна бути перевищена (у градусах F) long cutoffTime = 46800000; // максимальний часзаряду в 13 годин, яке не повинно бути перевищено int outputPin = 9; // Провід вихідного сигналу підключений до цифрового виведення 9 int outputValue = 150; // значення вихідного ШІМ сигналу int analogPinOne = 0; // Перший датчик напруги підключений до аналогового висновку 0 float valueProbeOne = 0; // Змінна для зберігання значення на analogPinOne float voltageProbeOne = 0; // Розрахована напруга на analogPinOne int analogPinTwo = 1; // другий датчик напруги підключений до аналогового висновку 1 float valueProbeTwo = 0; // Змінна для зберігання значення на analogPinTwo float voltageProbeTwo = 0; // Розрахована напруга на analogPinTwo int analogPinThree = 2; // Третій датчик напруги підключений до аналогового висновку 2 float valueProbeThree = 0; // Змінна для зберігання значення на analogPinThree float tmp36Voltage = 0; // Розрахована напруга на analogPinThree float temperatureC = 0; //Розрахована температура датчика в градусах C //float temperatureF = 0; // Розрахована температура датчика у градусах F float voltageDifference = 0; // Різниця між напругами на analogPinOne і analogPinTwo float batteryVoltage = 0; // Розрахована напруга батареї float current = 0; // Розрахований струм, що протікає через навантаження (мА) float targetCurrent = batteryCapacity / 10; // цільовий вихідний струм (в мА) встановлюється значення // C/10 або 1/10 від ємності батареї float currentError = 0; // Різниця між цільовим і фактичним струмами (в ма) void setup() (Serial.begin(9600); // Налаштування послідовного інтерфейсу pinMode(outputPin, OUTPUT); // встановити висновок, як вихід) void loop() ( analogWrite(outputPin, outputValue); // записати вихідне значення у вихідний висновок Serial.print("Output: "); // показати вихідні значення для контролю на комп'ютері Serial.println (outputValue);valueProbeOne = analogRead(analogPinOne);// вважати вхідне значення на першому пробнику voltageProbeOne=(valueProbeOne*5000)/1023;// розрахувати напругу на першому пробнику в мілівольтах Serial.print("Voltage // показати напругу на першому пробнику Serial.println(voltageProbeOne); valueProbeTwo = analogRead(analogPinTwo); // вважати вхідне значення на другому пробнику voltageProbeTwo = (valueProbeTwo*5000)/1023; // розрахувати напругу мілівольтах Serial.print("Voltage Probe Two (mV): "); // показати напругу на другому пробнику Serial.println(voltageProbeTwo); mV): "); // показати напругу на батареї Serial.println(batteryVoltage); current = (voltageProbeTwo - voltageProbeOne) / resistance; // Розрахувати струм заряду Serial.print("Target Current (mA):"); // показати цільовий струм Serial.println(targetCurrent); Serial.print("Battery Current (mA): "); // показати фактичний струм Serial.println (current); currentError = targetCurrent - current; // Різниця між цільовим та виміряним струмами Serial.print("Current Error (mA): "); // показати помилку встановлення струму Serial.println(currentError); valueProbeThree = analogRead(analogPinThree); // рахувати вхідне значення третього пробника, tmp36Voltage = valueProbeThree * 5.0; // Перетворюючи його в напругу tmp36Voltage / = 1024.0; TemperatureC = (tmp36Voltage - 0.5) * 100; // перетворення, виходячи із залежності в 10 мВ на градус зі здвиком в 500 мВ // ((напруга - 500 мВ) помножити на 100) Serial.print("Temperature (degrees C)"); //Показати температуру в градусах Цельсія Serial.println(temperatureC); /* temperatureF = (temperatureC * 9.0/5.0) + 32.0; //перетворити на градуси Фаренгейта Serial.print("Temperature (degrees F) "); Serial.println(temperatureF); */ Serial.println(); //додаткові порожні рядкищоб полегшити читання даних при налагодженні Serial.println(); if(abs(currentError) > 10) // якщо помилка установки струму досить велика, то підлаштувати вихідна напруга(outputValue = outputValue + currentError / 10; if(outputValue< 1) // выходное значение никогда не может быть ниже 0 { outputValue = 0; } if(outputValue >254) // Вихідне значення ніколи не може бути вище 255 (outputValue = 255;) analogWrite(outputPin, outputValue); // записати нове вихідне значення ) if(temperatureC > cutoffTemperatureC) // зупинити зарядку, якщо температура батареї перевищила безпечний поріг ( outputValue = 0; Serial.print("Max Temperature Exceeded"); ) /* if(temperatureF > cutoffTempera / зупинити зарядку, якщо температура батареї перевищила безпечний поріг ( outputValue = 0; ) */ if(batteryVoltage > cutoffVoltage) // зупинити зарядку, якщо напруга на батареї перевищила безпечний поріг ( outputValue = 0; Serial.print("Max Voltage ); ) if(millis() > cutoffTime) // зупинити зарядку, якщо час заряду перевищив поріг ( outputValue = 0; Serial.print("Max Charge Time Exceeded"); ) delay(10000); // затримка в 10 секунд перед наступною ітерацією циклу)

Завантажену версію вихідного коду можна знайти за посиланням, наведеним нижче.

Кілька років тому поставив перед собою завдання розробити комплекс недорогих пристроїв, що дозволяє незрячим людям краще адаптуватися до навколишнього світу. На сьогоднішній день мені разом із командою однодумців вдалося реалізувати кілька проектів.

У цій статті хочу розповісти про ультразвукову насадку на тростину і ультразвукову брелоку. повноцінних пристрояхякі збираються з недорогих доступних модулів.

Ультразвукова насадка на тростину та ультразвуковий брелок – пристрої для незрячих людей, які попереджають про перешкоди, що знаходяться вище рівня, на якому їх можна виявити за допомогою звичайної тростини. Такими перешкодами можуть бути автомобілі з високою посадкою, шлагбауми, високі огорожі. Ультразвукова насадка кріпиться на звичайну тростину, а ультразвуковий брелок вішається на шию або носиться в руці, як ліхтарик.

Робота пристроїв полягає в відображенні ультразвукових хвиль від перешкод. Вимірюючи різницю у часі між моментом генерації імпульсу і моментом прийому відбитого луна, можна визначити відстань до перешкоди.

Для розробки пристроїв необхідно підібрати датчик для вимірювання відстані, плату керування та сигналізатор, підібрати елементи живлення, спосіб їх заряджання та відповідні корпуси.

Ультразвуковий датчик

Для вимірювання відстані до перешкоди було протестовано два пристрої:
  • Arduino-сумісний ультразвуковий модуль HC-SR04
  • Автомобільний парктронік HO 3800
Обидва пристрої працюють за схожим принципом. Відмінності полягають у діаграмі спрямованості датчиків, максимальної дальності визначення перешкод та конструктивному виконанні.
Порівняння параметрів датчиків:

У ході випробувань з'ясувалося, що модулі HC-SR04 мають дещо гіршу здатність виявляти перешкоди та працювати у складних. кліматичних умовах(холод).

Обидва датчики, незважаючи на їх відмінності, можна використовувати в ультразвуковій насадці на тростину як засіб вимірювання відстані до перешкоди, тому основним параметром для вибору датчика для нас стала ціна. Ми зупинилися на дешевшому датчику HC-SR04.

Плата керування

Як плата управління обрана платформа Arduino. У нашому випадку найбільш застосовні плати мініатюрних версій: Arduino Mini, Arduino Nanoабо Arduino Pro Mini. У випадку може бути використаний будь-який інший контролер, надає аналогічні можливості.

Елементи живлення

Для забезпечення пристрою живленням доцільно використовувати літій-іонні (Li-ion) або нікель-метал-гідридні (Ni-Mh) акумуляторні елементи.

При експлуатації в нормальних кліматичних умовах варто застосувати Li-ion акумулятори, що мають у порівнянні з Ni-Mh наступні переваги:

  • простота реалізації схеми заряджання
  • наявність готових модулів заряду
  • більша вихідна напруга
  • різноманіття габаритних розмірівта ємностей
При низьких температурахкраще використовувати Ni-Mh акумулятори.

Напруги на виході одного Ni-Mh акумулятора (1,0 -1,4 В) недостатньо для роботи пристрою. Для отримання напруги 5 (необхідного для роботи як Arduino, так і паркторника) крім акумуляторів будемо використовувати підвищує DC-DC перетворювач.

Для роботи вибраних нами DC-DC перетворювачів необхідно забезпечити вхідну напругу 0,9-6,0 В. Для отримання необхідної вихідної напруги можна було б скористатися одним Ni-Mh напругою елементом 1,2 вольт. Однак зі зменшенням вхідної напруги зменшується і здатність навантаження перетворювача, тому для стабільної роботипристрої бажано подавати на вхід перетворювача не менше 2 (два Ni-Mh елемента по 1,2 В або один Li-ion елемент напругою 3,7 В). Зазначимо, що існують DC-DC перетворювачі, для роботи яких недостатньо вхідної напруги 1,2 Ст.

Заряджання акумуляторів

Для Li-ion акумуляторівІснує безліч готових недорогих модулів з індикацією закінчення заряду.

У випадку з Ni-Mh акумуляторами все складніше. Готових вбудовуваних рішень на ринку Наразіми не знайшли. Для заряджання Ni-Mh акумуляторів можна використовувати спеціалізовані зовнішні зарядні пристрої або створити власну схему зарядки.

Один із способів зарядити Ni-Mh елемент – послідовне з'єднання c акумулятором двох лінійних стабілізаторів LM317 (або аналогічних): перший – у режимі обмеження струму, другий – у режимі обмеження напруги.

Вхідна напруга такої схеми становить 7,0-7,5 В. За відсутності охолодження стабілізаторів перевищувати цю напругу не рекомендується. Напруга на кожному Ni-Mh акумуляторпід час заряджання має бути близько 1, 45 В (напруга повністю зарядженого Ni-Mh елемента). Щоб уникнути перегріву та виходу з ладу мікросхем, струм зарядки акумуляторів не повинен перевищувати 100 мА та може бути збільшений до 200 мА при використанні відповідних радіаторів.

Перевага такої схеми зарядки полягає у відсутності необхідності контролювати стан зарядки: при досягненні потрібної напруги на елементі струм автоматично впаде до безпечного мінімуму.

Сигналізатор

Залежно від вибору каналу попередження (слуховий чи тактильний) вибирається виконавчий пристрій- Зумер або вібро-мотор. Крім того, можна комбінувати обидва способи оповіщення, надавши користувачеві можливість перемикання між ними.

У ході тестування прототипів ми з'ясували, що найзручніше передавати інформацію про близькість перешкоди через вібрацію, т.к. у цьому випадку не займається дуже важливий для незрячої людини аудіо канал. Тому всі розроблені та зібрані нами вироби використовують вібрацію для попередження про перешкоду. Інтенсивність вібрації пропорційна відстані до перешкоди.

Корпус

Нам не вдалося підібрати зручний корпус для ультразвукової насадки на тростину серед корпусів, що масово випускаються. Для проведення випробувань пристрою ми використовували надрукований на 3D принтері корпус з ABS-пластику. Для друку корпусу на 3D-принтері нами було розроблено наступну 3D-модель:

Результат випробувань дослідних зразків

У процесі розробки зібрано понад 12 варіантів виробу. Кожен новий виріб усував недоліки попередніх: у процесі розробки ми зменшили габарити та вагу виробу, підібрали ультразвуковий датчик, що задовольняє нас як за ціною, так і за технічним характеристикам, відмовилися від використання аудіо каналу та оптимізували алгоритм роботи пристроїв. Спільно з незрячими (Бортніков П.В., Шалінцев В. А.) було проведено випробування всіх зібраних виробів. В результаті ми отримали кінцевий зразок.

Нижче наведено принципову електрична схемарозробленого пристрою:

У розібраному вигляді ультразвуковий брелок на шию виглядають так:

Усі використані при складанні компоненти, крім роздрукованого на 3D-принтері корпусу для насадки на тростину, були куплені через AliExpress:

  1. Ультразвуковий датчик HC-SR04.
  2. Плата керування Adruino Pro Mini.
  3. Акумулятор 3.7 V 300 mAh.
  4. Перетворювач напруги 0.9V ~ 5V to 5V 600 мА.
  5. Модуль заряджання AC/DC 220V to 5V 1A.
  6. Зарядний пристрій LA-520W.
  7. Сигналізатор: вібро-моторчик для мобільного телефона 4x10mm DC 3V.
  8. Кнопка PB-22E60
  9. Корпус Gainta G1906 (для брелока).
  10. Транзистор: bss138/bcr108 або оптрон CPC1230N.
Зовнішній вигляд та ціни (з урахуванням доставки з Китаю) компонентів, що використовуються для складання ультразвукової насадки на тростину, наведено на малюнку:

З компонентів, що використовуються при складанні, найбільший внесок у вартість пристрою вносить корпус, надрукований на 3D-принтері.

Зовнішній вигляд та ціни (з урахуванням доставки з Китаю) компонентів, що використовуються для складання ультразвукового брелока, наведено на малюнку:

Надалі можна розробити кріплення до корпусу Gainta G1906 та використовувати пристрій з таким корпусом як насадку на тростину.

Одним із способів зниження собівартості пристроїв є економія на оплаті праці та вартості доставки компонентів пристроїв до Росії за рахунок розгортання виробництва безпосередньо в Китаї.

Розроблені нами пристрої мають такі характеристики:

Після проведення попередніх випробувань пристроїв, ми були змушені обмежити дальність виявлення перешкод до 1,5 метрів, щоб не було зайвих спрацьовувань при використанні пристроїв у потоці людей. При безперервній зміні рівня вібрації складніше визначити наближення перешкоди, тому за результатами попередніх випробувань ми зупинилися на трьох рівнях вібрації.
Зовнішній вигляд ультразвукової насадки на тростину:

Зовнішній вигляд брелока на шию:

3D-модель ультразвукової насадки на тростину та вихідний кодпрошивки для Adruino доступні для завантаження по

Arduino PWM контролер сонячної зарядки
Як зробити дуже маленький, простий і дешевий ШІМ – контролер сонячної зарядки з Arduino Pro Mini для 12V поза сіткою установок. Розмір друкованої плати збігається з розміром мініплати Pro, так що вони можуть бути затиснуті разом. PCB плани для універсального прототипу борту.

Підключення та використання цього Arduino контролера сонячного зарядудуже просто - є 2 вхідні дроти від панелі сонячних батарей(+ і -) та 2 виходи призводить йти до свинцево-кислотної батареї. Основа панелі сонячних батарей та батареї з'єднані разом. Будь-який вантаж повинен бути підключений безпосередньо на клемах акумулятора та контролера заряду автоматично оброблятиме інше.

Arduino регулярно вимірює напругу батареї свинцю та кислоти відповідно до певного значення, перемикає на МОП-транзистор для заряджання акумулятора від сонячної панелі і перемикачі МОП-транзистор вимикається, коли батарея повністю заряджена. Коли навантаження тягне енергію від батареї, контролер виявляє падіння напруги і відразу починає знову зарядити акумулятор. Протягом ночі, коли сонячна панельперестане виробляти, контролер чекає, доки панель знову не почне виводити.


Позитивний провід до панелі сонячних батарей необхідний захисний діод Шоттки, що встановлюється безпосередньо на кабелі (загорнуте в термозбіжну трубку). Це не входить до основної друкованої плати, як це робить його легше замінити його і охолонути в той же час. Ви можете легко зробити борту трохи довше, щоб поміститися в інший тип діода.

Схема та функції Опис:

Функція заснована на N-канальний МОП – транзистор IRF3205 у високій стороні ланцюга. Це вимагає напруги затвора вище, ніж 12, щоб відкрити МОП - транзистор правильно. Для того, щоб виключити необхідність зовнішнього драйвера MOSFET, він наводиться в рух заряду насоса, створеного з діодами, 2 конденсаторів та двох вихідних висновків Arduino ШІМ (3 та 11). Pin A1 вимірює напругу акумуляторної батареїі пін-код 9 управляє MOSFET ON/OFF циклу. Arduino Pro Mini інтегровані світлодіодні підключений до контакту 13 використовується, щоб показати поточний цикл ШІМ - сигналу.

Регулятор напруги та всі конденсатори навколо (C6, C5 та C4) могли б бути виключені, оскільки є регулятор включений до Arduino Pro Mini. Тим не менш, тому що я використовував дешевий клон дошка, я не хочу, щоб розраховувати на його здатність підтримувати більш високу напругу, ніж 12В протягом більш тривалих періодів часу. LP2950 дуже дешево і ефективно до 30 вольт, тому варто мати його на борту в будь-якому випадку.


Список деталей: Регулятор напруги з низьким енергоспоживанням LP2950ACZ-5.0 Транзистори 2N3904 2N3906 х 2 N-канальний МОП-транзистор IRF3205 Резистори 82K (1%) 20K (1%) 220K x3 (0,4W досить 4K3 (0,4W3) 5 (або будь-який подібний діод Шоттки 35V мінімальної 9А) Конденсатори 47N / 50V x2 керамічні 220P / 100V керамічні 1M / 50V (1000nF) керамічні 4M7 / 10V тантал 1M / 35V тантал

Схема і код цього контролера заряду є Джуліан Ілетт, він є натхненником цієї розумною річчю. Все це лише витончений документація та відповідна дизайн друкованої плати, щоб ідеально відповідати Arduino Pro Mini дошка. Він поділяє відео ефективнішого регулятора заряду Arduino MPPT, але його будівництво набагато складніше, і проект ще не завершений. Якщо ви можете покращити код або конструкцію в будь-якому випадку, будь ласка, поділіться своїми поліпшеннями в коментарях.