Съдържание:
- Стъпка 1: Функции и цена
- Стъпка 2: Схеми и теория на работа
- Стъпка 3: ПХБ и електроника
- Стъпка 4: Корпус и монтаж
- Стъпка 5: Arduino код
- Стъпка 6: Приложение за Android
- Стъпка 7: Java код
- Стъпка 8:
Видео: Цифрово USB C захранване с Bluetooth захранване: 8 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
Искали ли сте някога захранване, което да можете да използвате в движение, дори и без електрически контакт наблизо? И няма ли да е готино, ако беше много прецизно, цифрово и управляемо чрез компютър и телефон?
В тази инструкция ще ви покажа как да изградите точно това: цифрово захранване, което се захранва през USB C. Той е съвместим с arduino и може да се управлява чрез компютъра през USB или чрез телефона ви чрез Bluetooth.
Този проект е еволюция на предишното ми захранване, което работеше на батерии и има дисплей и копчета. Проверете го тук! Исках обаче да стана по -малък, затова направих това!
Захранването може да се захранва от USB C батерия или зарядно за телефон. Това позволява до 15W мощност, което е достатъчно за захранване на повечето електроника с ниска мощност! За да имам добър потребителски интерфейс на такова малко устройство, включих Bluetooth и приложение за Android за контролите. Това прави това захранване ултра преносимо!
Ще покажа целия процес на проектиране и всички файлове на проекта могат да бъдат намерени на моята страница на GitHub:
Да започваме!
Стъпка 1: Функции и цена
Характеристика
- Захранва се от USB C
- Контролира се чрез приложение за Android през Bluetooth
- Управлява се чрез Java през USB C
- Режими на постоянно напрежение и постоянен ток
- Използва линеен регулатор с нисък шум, предшестван от проследяващ регулатор, за да сведе до минимум разсейването на мощността
- Осъществено от ATMEGA32U4, програмирано с Arduino IDE
- Може да се захранва от USB C батерия, за да стане преносим
- USB C и откриване на зарядно устройство на Apple
- 18 -милиметрови бананови щепсели за съвместимост с BNC адаптери
Спецификации
- 0 - 1A, стъпки от 1 mA (10 -битов DAC)
- 0 - 25V, стъпки от 25 mV (10 -битов DAC) (истинска 0V операция)
- Измерване на напрежение: 25 mV резолюция (10 битов ADC)
- Текущо измерване: <40mA: 10uA резолюция (ina219) <80mA: 20uA резолюция (ina219) <160mA: 40uA резолюция (ina219) <320mA: 80uA резолюция (ina219)> 320mA: 1mA резолюция (10 битов ADC)
Разходи
Пълното захранване ми струваше около $ 100, с всички еднократни компоненти. Въпреки че това може да изглежда скъпо, захранването с много по -ниска производителност и функции често струва повече от това. Ако нямате нищо против да поръчате компонентите си от ebay или aliexpress, цената ще падне до около 70 долара. Влизането на части отнема повече време, но това е жизнеспособна опция.
Стъпка 2: Схеми и теория на работа
За да разберем работата на веригата, ще трябва да разгледаме схемата. Разделих го на функционални блокове, така че да е по -лесно за разбиране; По този начин ще обясня операцията стъпка по стъпка. Тази част е доста задълбочена и изисква добри познания по електроника. Ако просто искате да знаете как да изградите веригата, можете да преминете към следващата стъпка.
Основен блок
Операцията се основава на чипа LT3080: това е линеен регулатор на напрежението, който може да понижава напреженията въз основа на управляващ сигнал. Този управляващ сигнал ще бъде генериран от микроконтролер; как се прави това, ще бъде обяснено подробно по -късно.
Настройка на напрежението
Схемата около LT3080 генерира подходящи управляващи сигнали. Първо ще разгледаме как се задава напрежението. Настройката на напрежението от микроконтролера е PWM сигнал (PWM_Vset), който се филтрира от нискочестотен филтър (C23 & R32). Това произвежда аналогово напрежение - между 0 и 5 V - пропорционално на желаното изходно напрежение. Тъй като нашият изходен диапазон е 0 - 25 V, ще трябва да усилим този сигнал с коефициент 5. Това се прави от неинвертиращата конфигурация на opamp на U7C. Печалбата към зададения щифт се определя от R31 и R36. Тези резистори са 0,1% толерантни, за да минимизират грешките. R39 и R41 нямат значение тук, тъй като те са част от веригата за обратна връзка.
Текуща настройка
Този зададен щифт може да се използва и за втората настройка: текущ режим. Искаме да измерим текущото теглене и да изключим изхода, когато това надвиши желания ток. Следователно, започваме отново с PWM сигнал (PWM_Iset), генериран от микроконтролера, който сега е нискочестотен филтриран и отслабен, за да премине от диапазон 0 - 5 V до диапазон 0 - 2,5 V. Това напрежение сега се сравнява с спада на напрежението в текущия резистор (ADC_Iout, виж по -долу) от сравнителната конфигурация на opamp U1B. Ако токът е твърде висок, това ще включи светодиод и също ще издърпа зададената линия на LT3080 към земята (чрез Q1), като по този начин ще изключи изхода. Измерването на тока и генерирането на сигнала ADC_Iout се извършва по следния начин. Изходният ток протича през резистор R22. Когато токът преминава през този резистор, той създава спад на напрежението, който можем да измерим, и се поставя преди LT3080, тъй като падането на напрежението върху него не трябва да влияе на изходното напрежение. Падането на напрежението се измерва с диференциален усилвател (U7B) с усилване 5. Това води до диапазон на напрежение от 0 - 2.5 V (повече за това по -късно), следователно делителят на напрежението при ШИМ сигнала на тока. Буферът (U7A) е там, за да се увери, че токът, протичащ в резистори R27, R34 и R35, не преминава през текущия сензорен резистор, което би повлияло на неговото отчитане. Също така имайте предвид, че това трябва да бъде опампа от релса към релса, тъй като входното напрежение на положителния вход е равно на захранващото напрежение. Неинвертиращият усилвател е само за измерване на курса, въпреки че за много прецизни измервания имаме на борда чип INA219. Този чип ни позволява да измерваме много малки токове и се адресира чрез I2C.
Допълнителни неща
На изхода на LT3080 имаме още неща. На първо място, има миене на ток (LM334). Това извлича постоянен ток от 677 uA (зададен от резистор R46), за да стабилизира LT3080. Той обаче не е свързан към земята, а към VEE, отрицателно напрежение. Това е необходимо, за да може LT3080 да работи до 0 V. Когато е свързан към земята, най -ниското напрежение ще бъде около 0,7 V. Това изглежда достатъчно ниско, но имайте предвид, че това ни пречи да изключим напълно захранването. За съжаление, тази верига е на изхода от LT3080, което означава, че нейният ток ще допринесе за изходния ток, който искаме да измерим. За щастие, той е постоянен, така че можем да калибрираме за този ток. Стабилитронът D7 се използва за захващане на изходното напрежение, ако то надвишава 25 V, а резисторният делител намалява диапазона на изходното напрежение от 0 - 25 V до 0 - 2.5 V (ADC_Vout). Буферът (U7D) гарантира, че резисторите не черпят ток от изхода.
Зареждаща помпа
Отрицателното напрежение, което споменахме преди, се генерира от любопитна малка верига: зареждащата помпа. Той се захранва от 50% PWM на микроконтролера (PWM).
Boost Converter
Нека сега разгледаме входното напрежение на нашия основен блок: VCC. Виждаме, че е 5 - 27V, но изчакайте, USB дава максимум 5 V? Наистина и затова трябва да повишим напрежението с т.нар усилващ преобразувател. Винаги можем да повишим напрежението до 27 V, без значение какъв изход искаме; това обаче би загубило много енергия в LT3080 и нещата щяха да станат прекалено горещи! Така че вместо да правим това, ще повишим напрежението до малко повече от изходното напрежение. Подходящо е около 2,5 V по -високо, за да се отчете спадането на напрежението в токовия резистор и отпадащото напрежение на LT3080. Напрежението се задава от резистори на изходния сигнал на усилвателния преобразувател. За да променим това напрежение в движение, използваме цифров потенциометър, MCP41010, който се управлява чрез SPI.
USB C
Това ни води до реалното входно напрежение: USB порта! Причината за използването на USB C (USB тип 3.1 по -точно, USB C е само тип конектор) е, защото позволява ток от 3A при 5V, това вече е доста известна мощност. Но има уловка, устройството трябва да е съвместимо, за да изтегли този ток и да „договори“с хост устройството. На практика това се осъществява чрез свързване на два 5.1k издърпващи се резистора (R12 и R13) към линията CC1 и CC2. За USB 2 съвместимост документацията е по -малко ясна. Накратко: рисувате какъвто ток искате, стига хостът да може да го предостави. Това може да се провери чрез наблюдение на напрежението на USB шината: едното напрежение падне под 4.25V, устройството извлича твърде много ток. Това се открива от сравнителя U1A и ще деактивира изхода. Той също така изпраща сигнал към микроконтролера, за да зададе максималния ток. Като бонус са добавени резистори, които подпомагат откриването на идентификатора на зарядното устройство на зарядни устройства на Apple и samsung.
5V регулатор
Захранващото напрежение от 5 V на arduino обикновено идва директно от USB. Но тъй като USB напрежението може да варира между 4,5 и 5,5 V според спецификациите на USB, това не е достатъчно точно. Следователно се използва 5V регулатор, който може да генерира 5V от по -ниско и по -високо напрежение. И все пак това напрежение не е много прецизно, но това се решава чрез стъпка на калибриране, при която работният цикъл на ШИМ сигнала се регулира съответно. Това напрежение e се измерва чрез делителя на напрежението, образуван от R42 и R43. Но тъй като нямах повече свободни входове, трябваше да накарам щифт с двойно натоварване. Когато захранването се зарежда, този щифт първо се задава като вход: той измерва захранващата шина и се калибрира. След това той е зададен като изход и може да управлява линията за избор на чип на потенциометъра.
2.56 V референтно напрежение
Този малък чип осигурява много точна справка за напрежение 2,56 V. Това се използва като отправна точка за аналоговите сигнали ADC_Vout, ADC_Iout, ADC_Vbatt. Ето защо се нуждаехме от делители на напрежение, за да намалим тези сигнали до 2,5 V.
FTDI
Последната част от това захранване е връзката с жестокия външен свят. За това трябва да преобразуваме серийните сигнали в USB сигнали. За щастие, това се прави от ATMEGA32U4, това е същият чип, който се използва в Arduino Micro.
Bluetooth
Bluetooth частта е много проста: добавен е модул с Bluetooth, който се грижи за всичко вместо нас. Тъй като логическото му ниво е 3.3V (VS 5V за микроконтролера), се използва делител на напрежение за изместване на нивото на сигнала.
И това е всичко!
Стъпка 3: ПХБ и електроника
Сега, когато разбрахме как работи схемата, можем да започнем да я изграждаме! Можете просто да поръчате печатна платка онлайн от любимия си производител (моята струва около 10 долара), гербер файловете могат да бъдат намерени на моя GitHub, заедно със сметката за материали. След това сглобяването на печатната платка е основно въпрос на запояване на разположените компоненти според копринената печат и сметката на материалите.
Докато предишното ми захранване имаше само компоненти с отвори, ограничението в размера на новия ми направи това невъзможно. Повечето компоненти все още са относително лесни за запояване, така че не се страхувайте. Като илюстрация: мой приятел, който никога не е запоявал досега, успя да засели това устройство!
Най -лесно е първо да направите компонентите от предната страна, след това отзад и да завършите с компонентите с отвори. Когато правите това, печатната платка няма да се клати при запояване на най -трудните компоненти. Последният компонент за запояване е Bluetooth модулът.
Всички компоненти могат да бъдат запоени, с изключение на 2 -те жака за банани, които ще монтираме в следващата стъпка!
Стъпка 4: Корпус и монтаж
С направената платка можем да преминем към калъфа. Специално проектирах платката около алуминиев корпус 20x50x80mm (https://www.aliexpress.com/item/Aluminium-PCB-Instr…), така че използването на друг калъф не се препоръчва. Винаги обаче можете да отпечатате 3D калъф със същите размери.
Първата стъпка е да подготвите крайния панел. Ще трябва да пробием няколко дупки за банановите крикове. Направих това на ръка, но ако имате достъп до CNC, това би било по -точен вариант. Поставете жаковете за банани в тези отвори и ги запоявайте върху печатната платка.
Добра идея е сега да добавите копринени подложки и да ги задържите на място с малка капка супер лепило. Това ще позволи пренос на топлина между LT3080 и LT1370 и кутията. Не ги забравяйте!
Сега можем да се съсредоточим върху предния панел, който просто се завинтва на място. С двата панела на място вече можем да поставим монтажа в кутията и да го затворим. На този етап хардуерът е свършен, сега остава само да вдъхнем малко живот със софтуера!
Стъпка 5: Arduino код
Мозъкът на този проект е ATMEGA32U4, който ще програмираме с Arduino IDE. В този раздел ще разгледам основната операция на кода, подробностите могат да бъдат намерени като коментари в кода.
Кодът по принцип преминава през тези стъпки:
- Изпратете данни към приложението
- Четене на данни от приложението
- Измерете напрежението
- Измерете тока
- Бутон за анкета
USB свръхтокът се обработва от рутинна услуга за прекъсване, за да бъде възможно най -отзивчив.
Преди чипът да може да бъде програмиран през USB, буутлоудъра трябва да бъде записан. Това става чрез ISP/ICSP порта (мъжки заглавки 3x2) чрез ISP програмист. Опциите са AVRISPMK2, USBTINY ISP или arduino като ISP. Уверете се, че платката получава захранване и натиснете бутона „запис на буутлоудъра“.
Кодът вече може да бъде качен на платката през USB C порта (тъй като чипът има буутлоудър). Борд: Arduino Micro Programmer: AVR ISP / AVRISP MKII Сега можем да разгледаме взаимодействието между Arduino и компютъра.
Стъпка 6: Приложение за Android
Вече имаме напълно функционално захранване, но все още няма начин да го контролираме. Много досадно. Така че ще направим приложение за Android, което да контролира захранването чрез Bluetooth.
Приложението е направено с програмата MIT app inventor. Всички файлове могат да бъдат включени за клониране и промяна на проекта. Първо изтеглете придружаващото приложение MIT AI2 на телефона си. След това импортирайте.aia файла на уебсайта на AI. Това също ви позволява да изтеглите приложението на собствения си телефон, като изберете „Build> App (предоставете QR код за.apk)“
За да използвате приложението, изберете Bluetooth устройство от списъка: то ще се покаже като модул HC-05. Когато е свързан, всички настройки могат да се променят и изходът на захранването може да се прочете.
Стъпка 7: Java код
За регистриране на данни и контролиране на захранването чрез компютъра направих java приложение. Това ни позволява лесно да контролираме дъската чрез графичен интерфейс. Подобно на кода на Arduino, няма да навлизам във всички подробности, но ще дам преглед.
Започваме, като правим прозорец с бутони, текстови полета и т.н.; основни GUI неща.
Сега идва забавната част: добавянето на USB портовете, за които използвах библиотеката jSerialComm. След като бъде избран порт, java ще слуша всички входящи данни. Също така можем да изпращаме данни до устройството.
Освен това всички входящи данни се записват в csv файл за по -късна обработка на данните.
Когато изпълняваме.jar файла, първо трябва да изберем правилния порт от падащото меню. След свързване данните ще започнат да влизат и ние можем да изпратим нашите настройки на захранването.
Въпреки че програмата е доста основна, тя може да бъде много полезна да я контролирате чрез компютър и да регистрирате данните си.
Стъпка 8:
След цялата тази работа вече имаме напълно функционално захранване!
Вече можем да се наслаждаваме на собственото си домашно захранване, което ще бъде полезно, докато работим по други страхотни проекти! И най -важното: научихме много неща по пътя.
Ако този проект ви е харесал, моля, гласувайте за мен в конкурса за джобен размер и микроконтролер, наистина ще съм благодарен!
Препоръчано:
Цифрово ниво с кръстосан лазер: 15 стъпки (със снимки)
Цифрово ниво с кръстосан лазер: Здравейте на всички, днес ще ви покажа как да направите цифрово ниво с интегриран лазер за напречна линия. Преди около година създадох цифров многофункционален инструмент. Въпреки че този инструмент включва много различни режими, за мен най -често срещаните и полезни
Захранване на компютъра с захранване: 8 стъпки (със снимки)
Захранване на Sleak Bench от PC захранване: Актуализация: Причината, поради която не се наложи да използвам резистор, за да спра автоматичното изключване на PSU, е, че (според мен …) светодиодът в превключвателя, който използвах, извлича достатъчно ток, за да предотврати Захранването се изключва. Имах нужда от настолно захранване и реших да направя
Линейно захранване с цифрово управление: 6 стъпки (със снимки)
Линейно захранване с цифрово управление: През годините на моята възраст, преди около 40 години, създадох двойно линейно захранване. Получих схематичната диаграма от списание, наречено „Elektuur“, днес наричано „Elektor“в Холандия. Това захранване използва един потенциометър за регулиране на напрежението
Генеративен дизайн - Еволюция на цифрово дърво бонсай: 15 стъпки (със снимки)
Генеративен дизайн - еволюция на цифрово бонсайско дърво: Започнах работа с изследователската група в Autodesk с Dreamcatcher преди около 2 години. По това време го използвах за проектиране на космически кораби. Оттогава се научих да обичам този софтуерен инструмент, тъй като ми позволява да изследвам хиляди дизайни
DigiLevel - цифрово ниво с две оси: 13 стъпки (със снимки)
DigiLevel - цифрово ниво с две оси: Вдъхновението за тази инструкция е DIY Digital Spirit Level, намерено тук от GreatScottLab. Хареса ми този дизайн, но исках по -голям дисплей с по -графичен интерфейс. Исках и по -добри опции за монтаж на електрониката в кутията