Spisu treści:

Cyfrowe zasilanie Bluetooth USB C: 8 kroków (ze zdjęciami)
Cyfrowe zasilanie Bluetooth USB C: 8 kroków (ze zdjęciami)

Wideo: Cyfrowe zasilanie Bluetooth USB C: 8 kroków (ze zdjęciami)

Wideo: Cyfrowe zasilanie Bluetooth USB C: 8 kroków (ze zdjęciami)
Wideo: Podpinanie modułu Bluetooth do radia samochodowego! #101_Napraw 2024, Lipiec
Anonim
Cyfrowy zasilacz Bluetooth zasilany przez USB C
Cyfrowy zasilacz Bluetooth zasilany przez USB C
Cyfrowy zasilacz Bluetooth zasilany przez USB C
Cyfrowy zasilacz Bluetooth zasilany przez USB C
Cyfrowy zasilacz Bluetooth zasilany przez USB C
Cyfrowy zasilacz Bluetooth zasilany przez USB C
Cyfrowy zasilacz Bluetooth zasilany przez USB C
Cyfrowy zasilacz Bluetooth zasilany przez USB C

Czy kiedykolwiek chciałeś zasilacza, którego możesz używać w podróży, nawet bez gniazdka ściennego w pobliżu? Czy nie byłoby fajnie, gdyby był również bardzo precyzyjny, cyfrowy i można go było sterować za pomocą komputera i telefonu?

W tej instrukcji pokażę, jak zbudować dokładnie to: cyfrowy zasilacz, który jest zasilany przez USB C. Jest kompatybilny z arduino i może być sterowany za pomocą komputera przez USB lub telefonu przez Bluetooth.

Ten projekt jest rozwinięciem mojego poprzedniego zasilacza, który był zasilany bateryjnie z wyświetlaczem i pokrętłami. Sprawdź to tutaj! Chciałem jednak zejść na mniejsze, więc właśnie to zrobiłem!

Zasilacz może być zasilany z banku baterii USB C lub ładowarki telefonu. Pozwala to na uzyskanie aż 15W mocy, co wystarczy do zasilania większości elektroniki małej mocy! Aby mieć dobry interfejs użytkownika na tak małym urządzeniu, do sterowania dołączyłem Bluetooth i aplikację na Androida. To sprawia, że ten zasilacz jest ultraprzenośny!

Pokażę cały proces projektowania, a wszystkie pliki projektu można znaleźć na mojej stronie GitHub:

Zacznijmy!

Krok 1: Funkcje i koszt

Funkcje i koszt
Funkcje i koszt

Cechy

  • Zasilany przez USB C
  • Sterowanie przez aplikację na Androida przez Bluetooth
  • Sterowanie przez Javę przez USB C
  • Tryby stałego napięcia i stałego prądu
  • Wykorzystuje regulator liniowy o niskim poziomie szumów, poprzedzony wstępnym regulatorem śledzącym, aby zminimalizować rozpraszanie mocy
  • Zasilany przez ATMEGA32U4, zaprogramowany z Arduino IDE
  • Może być zasilany przez bank baterii USB C, aby był przenośny
  • Wykrywanie ładowarki USB C i Apple
  • Rozstawione wtyki bananowe 18 mm dla kompatybilności z adapterami BNC

Specyfikacje

  • 0 - 1A, kroki co 1 mA (10-bitowy przetwornik cyfrowo-analogowy)
  • 0 - 25V, kroki co 25mV (10-bitowy przetwornik cyfrowo-analogowy) (prawdziwe działanie 0V)
  • Pomiar napięcia: rozdzielczość 25 mV (10 bit ADC)
  • Pomiar prądu:< 40mA: rozdzielczość 10uA (ina219)< 80mA: rozdzielczość 20uA (ina219)< 160mA: rozdzielczość 40uA (ina219)< 320mA: rozdzielczość 80uA (ina219)> 320mA: rozdzielczość 1mA (10 bit ADC)

Koszt

Kompletny zasilacz kosztował mnie około 100 dolarów, ze wszystkimi jednorazowymi komponentami. Chociaż może się to wydawać drogie, zasilacze o znacznie mniejszej wydajności i funkcjach często kosztują więcej. Jeśli nie masz nic przeciwko zamawianiu komponentów z serwisu eBay lub aliexpress, cena spadnie do około 70 USD. Dostarczenie części zajmuje więcej czasu, ale jest to realna opcja.

Krok 2: Schemat i teoria działania

Schemat i teoria działania
Schemat i teoria działania

Aby zrozumieć działanie obwodu, będziemy musieli spojrzeć na schemat. Podzieliłem go na funkcjonalne bloki, aby łatwiej było go zrozumieć; Wyjaśnię więc krok po kroku działanie. Ta część jest dość dogłębna i wymaga dobrej znajomości elektroniki. Jeśli chcesz tylko wiedzieć, jak zbudować tor, możesz przejść do następnego kroku.

Główny blok

Działanie opiera się na układzie LT3080: jest to liniowy regulator napięcia, który może obniżać napięcia na podstawie sygnału sterującego. Ten sygnał sterujący będzie generowany przez mikrokontroler; jak to się robi, zostanie szczegółowo wyjaśnione później.

Ustawienie napięcia

Obwody wokół LT3080 generują odpowiednie sygnały sterujące. Najpierw przyjrzymy się, jak ustawione jest napięcie. Ustawienie napięcia z mikrokontrolera to sygnał PWM (PWM_Vset), który jest filtrowany przez filtr dolnoprzepustowy (C23 i R32). Daje to napięcie analogowe – od 0 do 5 V – proporcjonalne do pożądanego napięcia wyjściowego. Ponieważ nasz zakres wyjściowy wynosi 0 - 25 V, będziemy musieli wzmocnić ten sygnał ze współczynnikiem 5. Odbywa się to przez nieodwracającą konfigurację wzmacniacza operacyjnego U7C. Wzmocnienie ustawionego pinu jest określone przez R31 i R36. Rezystory te mają tolerancję 0,1%, aby zminimalizować błędy. R39 i R41 nie mają tutaj znaczenia, ponieważ są częścią pętli sprzężenia zwrotnego.

Obecne ustawienie

Ten zestaw pinów może być również użyty do drugiego ustawienia: bieżącego trybu. Chcemy zmierzyć pobór prądu i wyłączyć wyjście, gdy przekroczy on pożądany prąd. Dlatego zaczynamy ponownie od sygnału PWM (PWM_Iset), generowanego przez mikrokontroler, który jest teraz filtrowany dolnoprzepustowo i tłumiony, aby przejść z zakresu 0-5 V do zakresu 0-2,5 V. To napięcie jest teraz porównywane ze spadkiem napięcia na rezystorze czujnika prądu (ADC_Iout, patrz poniżej) przez konfigurację komparatora wzmacniacza operacyjnego U1B. Jeśli prąd jest zbyt wysoki, włączy diodę LED, a także pociągnie ustawioną linię LT3080 do masy (poprzez Q1), wyłączając w ten sposób wyjście. Pomiar prądu i generowanie sygnału ADC_Iout odbywa się w następujący sposób. Prąd wyjściowy przepływa przez rezystor R22. Kiedy prąd przepływa przez ten rezystor, tworzy spadek napięcia, który możemy zmierzyć i jest on umieszczony przed LT3080, ponieważ spadek napięcia na nim nie powinien wpływać na napięcie wyjściowe. Spadek napięcia mierzony jest wzmacniaczem różnicowym (U7B) o wzmocnieniu 5. Daje to zakres napięć 0 - 2,5 V (o tym później), stąd dzielnik napięcia przy sygnale PWM prądu. Bufor (U7A) służy do upewnienia się, że prąd płynący do rezystorów R27, R34 i R35 nie przechodzi przez rezystor wykrywający prąd, co miałoby wpływ na jego odczyt. Należy również pamiętać, że powinien to być wzmacniacz operacyjny rail-to-rail, ponieważ napięcie wejściowe na wejściu dodatnim jest równe napięciu zasilania. Wzmacniacz nieodwracający służy tylko do pomiaru przebiegu, jednak do bardzo precyzyjnych pomiarów mamy na pokładzie układ INA219. Ten chip pozwala nam mierzyć bardzo małe prądy i jest adresowany przez I2C.

Dodatkowe rzeczy

Na wyjściu LT3080 mamy trochę więcej rzeczy. Przede wszystkim jest to zlew prądu (LM334). To pobiera stały prąd 677 uA (ustawiony przez rezystor R46), aby ustabilizować LT3080. Nie jest jednak podłączony do masy, ale do VEE, napięcia ujemnego. Jest to potrzebne, aby umożliwić LT3080 pracę przy 0 V. Po podłączeniu do masy najniższe napięcie wyniesie około 0,7 V. Wydaje się to wystarczająco niskie, ale pamiętaj, że uniemożliwia to całkowite wyłączenie zasilacza. Niestety obwód ten znajduje się na wyjściu LT3080, co oznacza, że jego prąd będzie miał wpływ na prąd wyjściowy, który chcemy zmierzyć. Na szczęście jest stały, więc możemy przeprowadzić kalibrację dla tego prądu. Dioda Zenera D7 służy do ograniczania napięcia wyjściowego, jeśli przekroczy ono 25 V, a dzielnik rezystorowy obniża zakres napięcia wyjściowego z 0–25 V do 0–2,5 V (ADC_Vout). Bufor (U7D) zapewnia, że rezystory nie pobierają prądu z wyjścia.

Pompa zasilająca

Ujemne napięcie, o którym wspomnieliśmy wcześniej, jest generowane przez ciekawy mały obwód: pompę ładującą. Jest zasilany przez 50% PWM mikrokontrolera (PWM).

Wzmacniacz

Przyjrzyjmy się teraz napięciu wejściowemu naszego głównego bloku: VCC. Widzimy, że to 5 - 27V, ale czekaj, USB daje maksymalnie 5 V? Rzeczywiście i dlatego musimy podbić napięcie za pomocą tak zwanego konwertera doładowania. Zawsze mogliśmy podnieść napięcie do 27 V, bez względu na to, jakiej mocy chcemy; jednak zmarnowałoby to dużo energii w LT3080 i zrobiłoby się upalnie! Więc zamiast tego, zwiększymy napięcie do nieco więcej niż napięcie wyjściowe. Około 2,5 V wyższe jest odpowiednie, aby uwzględnić spadek napięcia w rezystorze czujnika prądu i spadek napięcia LT3080. Napięcie jest ustawiane przez rezystory na sygnale wyjściowym przetwornicy doładowania. Aby zmienić to napięcie w locie, używamy cyfrowego potencjometru MCP41010, który jest sterowany przez SPI.

USB C

To prowadzi nas do prawdziwego napięcia wejściowego: portu USB! Powodem używania USB C (dokładnie USB typu 3.1, USB C to tylko typ złącza) jest to, że pozwala na prąd 3A przy 5V, co już jest dość mocą. Ale jest pewien haczyk, urządzenie musi być zgodne, aby pobierać ten prąd i „negocjować” z urządzeniem hosta. W praktyce odbywa się to poprzez podłączenie dwóch rezystorów pulldown 5.1k (R12 i R13) do linii CC1 i CC2. Ze względu na zgodność z USB 2 dokumentacja jest mniej przejrzysta. W skrócie: pobierasz taki prąd, jaki chcesz, o ile gospodarz może go zapewnić. Można to sprawdzić monitorując napięcie magistrali USB: gdy napięcie spadnie poniżej 4,25 V, urządzenie pobiera zbyt dużo prądu. Jest to wykrywane przez komparator U1A i wyłącza wyjście. Wysyła również sygnał do mikrokontrolera, aby ustawić maksymalny prąd. Jako bonus dodano rezystory wspierające wykrywanie identyfikatora ładowarki ładowarek Apple i Samsung.

Regulator 5V

Napięcie zasilania 5 V arduino zwykle pochodzi bezpośrednio z USB. Ale ponieważ napięcie USB może wahać się od 4,5 do 5,5 V zgodnie ze specyfikacją USB, nie jest to wystarczająco precyzyjne. Dlatego zastosowano regulator 5V, który może generować 5V z niższych i wyższych napięć. Mimo to napięcie to nie jest strasznie precyzyjne, ale rozwiązuje to etap kalibracji, w którym cykl pracy sygnału PWM jest odpowiednio dostosowywany. To napięcie e jest mierzone przez dzielnik napięcia utworzony przez R42 i R43. Ale ponieważ nie miałem już wolnych wejść, musiałem zrobić podwójne obciążenie. Kiedy zasilacz się uruchamia, ten pin jest najpierw ustawiany jako wejście: mierzy szynę zasilającą i sam się kalibruje. Następnie jest ustawiane jako wyjście i może sterować linią chip select potencjometru.

Napięcie odniesienia 2,56 V

Ten mały chip zapewnia bardzo dokładne napięcie odniesienia 2,56 V. Jest używany jako odniesienie dla sygnałów analogowych ADC_Vout, ADC_Iout, ADC_Vbatt. Dlatego potrzebowaliśmy dzielników napięcia, aby sprowadzić te sygnały do 2,5 V.

FTDI

Ostatnią częścią tego zasilacza jest połączenie z okrutnym, zewnętrznym światem. W tym celu musimy przekonwertować sygnały szeregowe na sygnały USB. Na szczęście robi to ATMEGA32U4, jest to ten sam układ, który jest używany w Arduino Micro.

Bluetooth

Część dotycząca Bluetooth jest bardzo prosta: dodaje się gotowy moduł Bluetooth, który zajmuje się wszystkim za nas. Ponieważ jego poziom logiczny wynosi 3,3 V (VS 5 V dla mikrokontrolera), dzielnik napięcia służy do przesunięcia poziomu sygnału.

I to wszystko!

Krok 3: PCB i elektronika

PCB i elektronika
PCB i elektronika
PCB i elektronika
PCB i elektronika
PCB i elektronika
PCB i elektronika

Teraz, gdy rozumiemy, jak działa obwód, możemy zacząć go budować! Możesz po prostu zamówić PCB online od swojego ulubionego producenta (mój kosztuje około 10 USD), pliki gerber można znaleźć na moim GitHubie wraz z wykazem materiałów. Montaż PCB jest więc zasadniczo kwestią przylutowania komponentów na miejscu zgodnie z sitodrukiem i zestawieniem materiałów.

Podczas gdy mój poprzedni zasilacz miał tylko komponenty przewlekane, ograniczenie rozmiaru mojego nowego sprawiło, że było to niemożliwe. Większość komponentów jest nadal stosunkowo łatwa do lutowania, więc nie bój się. Na przykład: mój przyjaciel, który nigdy wcześniej nie lutował, zdołał zapełnić to urządzenie!

Najłatwiej jest wykonać najpierw elementy z przodu, potem z tyłu i zakończyć elementami z otworami. Dzięki temu płytka PCB nie będzie się kołysać podczas lutowania najtrudniejszych elementów. Ostatnim elementem do wlutowania jest moduł Bluetooth.

Wszystkie elementy można lutować, z wyjątkiem 2 wtyków bananowych, które zamontujemy w następnym kroku!

Krok 4: Obudowa i montaż

Sprawa i montaż
Sprawa i montaż
Sprawa i montaż
Sprawa i montaż
Sprawa i montaż
Sprawa i montaż

Po wykonaniu płytki możemy przejść do obudowy. Specjalnie zaprojektowałem płytkę drukowaną wokół aluminiowej obudowy 20x50x80mm (https://www.aliexpress.com/item/Aluminum-PCB-Instr…), więc użycie innej obudowy nie jest zalecane. Jednak zawsze możesz wydrukować w 3D etui o tych samych wymiarach.

Pierwszym krokiem jest przygotowanie panelu końcowego. Będziemy musieli wywiercić kilka otworów na gniazda bananowe. Zrobiłem to ręcznie, ale jeśli masz dostęp do CNC, byłaby to dokładniejsza opcja. Włóż wtyki bananowe do tych otworów i przylutuj je do płytki drukowanej.

Dobrym pomysłem jest dodanie teraz jedwabnych podkładek i przytrzymanie ich na miejscu niewielką kroplą super kleju. Umożliwią one wymianę ciepła między LT3080 i LT1370 a obudową. Nie zapomnij o nich!

Możemy teraz skupić się na przednim panelu, który po prostu przykręcamy. Mając oba panele na swoim miejscu, możemy teraz włożyć zespół do obudowy i zamknąć go w całości. W tym momencie sprzęt jest gotowy, teraz pozostaje tylko tchnąć w niego trochę życia za pomocą oprogramowania!

Krok 5: Kod Arduino

Kod Arduino
Kod Arduino

Mózgiem tego projektu jest ATMEGA32U4, który będziemy programować za pomocą Arduino IDE. W tej sekcji przejdę przez podstawowe działanie kodu, szczegóły można znaleźć w komentarzach wewnątrz kodu.

Kod w zasadzie zapętla się przez te kroki:

  1. Wyślij dane do aplikacji
  2. Odczytaj dane z aplikacji
  3. Zmierz napięcie
  4. Zmierz prąd
  5. Przycisk ankiety

Przetężenie USB jest obsługiwane przez procedurę obsługi przerwań, aby była jak najbardziej responsywna.

Zanim chip będzie mógł zostać zaprogramowany przez USB, bootloader powinien zostać wypalony. Odbywa się to przez port ISP/ICSP (złącza męskie 3x2) za pomocą programatora ISP. Dostępne opcje to AVRISPMK2, USBTINY ISP lub arduino jako ISP. Upewnij się, że płyta jest zasilana i naciśnij przycisk „wypal bootloader”.

Kod można teraz wgrać na płytkę przez port USB C (ponieważ chip ma bootloader). Płytka: Arduino Micro Programator: AVR ISP / AVRISP MKII Teraz możemy przyjrzeć się interakcji między Arduino a komputerem PC.

Krok 6: aplikacja na Androida

Aplikacja na Androida
Aplikacja na Androida

Mamy teraz w pełni sprawny zasilacz, ale nie ma jeszcze możliwości kontrolowania go. Bardzo irytujące. Dlatego stworzymy aplikację na Androida do sterowania zasilaczem przez Bluetooth.

Aplikacja została stworzona za pomocą programu do tworzenia aplikacji MIT. Wszystkie pliki mogą być dołączone do klonowania i modyfikowania projektu. Najpierw pobierz aplikację towarzyszącą MIT AI2 na swój telefon. Następnie zaimportuj plik.aia na stronie AI. Umożliwia to również pobranie aplikacji na własny telefon, wybierając opcję „Build>App (podaj kod QR dla.apk)”

Aby skorzystać z aplikacji, wybierz z listy urządzenie Bluetooth: pojawi się ono jako moduł HC-05. Po podłączeniu można zmienić wszystkie ustawienia i odczytać wyjście zasilacza.

Krok 7: Kod Java

Kod Java
Kod Java

Do logowania danych i sterowania zasilaczem za pomocą komputera PC wykonałem aplikację java. Pozwala nam to na łatwe sterowanie płytą poprzez GUI. Podobnie jak w przypadku kodu Arduino, nie będę wchodził w szczegóły, ale podam przegląd.

Zaczynamy od stworzenia okna z przyciskami, polami tekstowymi itp; podstawowe rzeczy GUI.

Teraz fajna część: dodanie portów USB, do których użyłem biblioteki jSerialComm. Po wybraniu portu java będzie nasłuchiwać wszelkich przychodzących danych. Możemy również przesłać dane do urządzenia.

Ponadto wszystkie przychodzące dane są zapisywane w pliku csv w celu późniejszego przetwarzania danych.

Uruchamiając plik.jar, powinniśmy najpierw wybrać odpowiedni port z menu rozwijanego. Po podłączeniu zaczną napływać dane i możemy wysłać nasze ustawienia do zasilacza.

Chociaż program jest dość prosty, bardzo przydatne może być sterowanie nim za pomocą komputera i rejestrowanie jego danych.

Krok 8:

Obraz
Obraz
Obraz
Obraz
Obraz
Obraz

Po całej tej pracy mamy teraz w pełni funkcjonalny zasilacz!

Możemy teraz cieszyć się naszym własnym domowym zasilaczem, który przyda się podczas pracy nad innymi niesamowitymi projektami! A co najważniejsze: po drodze nauczyliśmy się wielu rzeczy.

Jeśli podobał Ci się ten projekt, zagłosuj na mnie w konkursie na kieszonkowy i mikrokontroler, bardzo bym go docenił!

Zalecana: