Цифрова частина блоку живлення є примітивною. Ардуіно керує по І2С дисплеєм і двома ЦАПами (один на живлення і один на струм). Також МК міряє справжні напругу і струм. Для цього на аналоговій платі я встановив дільники. Керується блок живлення енкодером з кнопкою. До того ж я встановив лінійний регулятор на 3.3В аби уніфікувати напругу і мати єдине вхідне джерело напруги. Терморезистор встановлений для потенційного термозахисту блока живдення.
При тестуванні примітив кілька недоліків аналогової частини: вхідна напруна 12 вольт, але через те, що використаний підсилювач не є Rail-to-rail, то максимальна вихідна напруга є 10В. Все таки тут є необхідний якісний rail-to-rail, тоді можна буде і джерего негативної напруги викинути. Окрім того потрібно поміняти шунт на менший або встановити дільник напруги на вихід підсилювача шунта, бо з максимальними 3.3В на виході ЦАПу не вдається досягти бажаних 2А.
Програмна частина наразі доволі проста. По перериванню опитуєтсья енкодер. FSM на енкодер, що я написав кілька років тому працює як годинник. 5 разів на секунду оновлюється дисплей. Кнопкою вибирається меню: нейтральне і меню встановлення напруги чи струму.
Планується зробити:
- зарядка акумуляторів з підрухунком ємності
- динамічна зміна множника енкодера (чим швидше крутиш, тим більший крок)
- термозахист
- акумуляторне живлення з потенційною комутацією батарей, моніторинг заряду батарей
- анімація екрану
- вимірювач мікроструму
Поточний проект. Далі буде...