Sterowanie silnika BLDC z Arduino, uratowanym silnikiem HD i czujnikami Hall
Dom » Blog » Sterowanie silnika BLDC z Arduino, uratowanym silnikiem HD i czujnikami Hall

Sterowanie silnika BLDC z Arduino, uratowanym silnikiem HD i czujnikami Hall

WIDZIA: 0     Autor: Edytor witryny Publikuj czas: 2020-09-02 Pochodzenie: Strona

Pytać się

Przycisk udostępniania na Facebooku
Przycisk udostępniania na Twitterze
Przycisk udostępniania linii
Przycisk udostępniania WeChat
Przycisk udostępniania LinkedIn
Przycisk udostępniania Pinteresta
przycisk udostępniania WhatsApp
Przycisk udostępniania kakao
Przycisk udostępniania Snapchat
Przycisk udostępniania telegramu
przycisk udostępniania shaRethis

W dzisiejszych czasach entuzjaści są bardzo zainteresowani kontrolowaniem bezszczotkowego DC (BLDC)
w porównaniu z tradycyjnym silnikiem DC, wydajność silnika uległa poprawie, poprawił się również efektywność energetyczna, ale jest trudniejsza w użyciu. wiele produktów poza czasem półki.
W tym celu istnieje
Na przykład istnieje wiele małych kontrolerów BLDCS, które działają bardzo dobrze w przypadku samolotów RC.
Dla tych, którzy chcą bardziej zbadać kontrolę BLDC bardziej, istnieje również wiele różnych mikrokontrolerów i innych elektronicznych sprzętu dla użytkowników przemysłowych, które zwykle mają bardzo dobrą dokumentację.
Do tej pory nie znalazłem żadnego kompleksowego opisu, jak używać mikrokontrolera Arduino do kontroli BLDC.
Ponadto, jeśli chcesz wykonywać hamowanie regeneracyjne lub korzystanie z BLDC do wytwarzania energii, nie znalazłem wielu produktów odpowiednich do użytku z małymi silnikami, ani nie dowiedziałem się o tym, jak kontrolować generator 3-fazowy.
Ta struktura była pierwotnie w opowieści o
obliczeniach w czasie rzeczywistym, nadal robię to po zakończeniu kursu.
Ideą projektu jest pokazanie proporcjonalnego modelu hybrydowego samochodu z magazynowaniem energii koła zamachowego i hamowaniem regeneracyjnym.
Silnik użyty w projekcie to małe BLDC oczyszczone z uszkodzonego dysku twardego komputera.
Ta instrukcja opisuje, jak korzystać z mikrokontrolera Arduino, a hall-
wpływa na czujniki pozycji w trybach jazdy i regeneracyjnej.
Należy pamiętać, że odwiedzenie Oscillisoft jest bardzo pomocne, jeśli nie są niezbędne, w ukończeniu tego projektu.
Jeśli nie możesz uzyskać dostępu do zakresu, dodałem kilka sugestii, jak to zrobić bez zakresu (krok 5).
Jedną rzeczą, której ten projekt nie powinien uwzględniać w żadnym rzeczywistym kontrolerze silnika, jest żadna funkcja bezpieczeństwa, taka jak nadmierna ochrona.
W rzeczywistości najgorsze jest to, że wypaliłeś silnik HD.
Jednak wdrożenie nadmiernej ochrony za pomocą obecnego sprzętu nie jest trudne i być może zrobię to w pewnym momencie.
Jeśli próbujesz kontrolować większy silnik, dodaj bieżącą ochronę w celu ochrony silnika i własnego bezpieczeństwa.
Chcę spróbować użyć tego kontrolera z większym silnikiem, który może wykonać trochę pracy \ 'prawdziwy \', ale nie mam jeszcze właściwego.
Zauważyłem, że eBay sprzedał samochód 86 W za około 40 USD.
Wygląda na dobrego kandydata.
Istnieje również strona internetowa RC o nazwie \ 'Gobrushless \', która sprzedaje zestawy, które składają się na własne BLDC.
Nie są one zbyt drogie i warto go zbudować.
Należy pamiętać, że na tej stronie nie ma czujnika Hall dla silnika. Uff!
Pisanie tej struktury to wielka praca.
Mam nadzieję, że uznasz to za przydatne, prosimy o komentarze i sugestie.
Cyfrowy multimetr (DMM)-
Jeśli Twój DMM ma oscyloskop miernika częstotliwości (
lepiej mieć co najmniej 2 kanały)
Driver T8x (
potrzebujesz jednego z nich, aby otworzyć dowolny dysk twardy).
Jest dobry sklep z narzędziami.
Warsztaty maszynowe i szybki prototyp (
są one bardzo pomocne, ale myślę, że ten projekt można wykonać bez nich).
Materiał BLDC Magnetyczny pierścień magnetyczny z komputera twardych (
połowa silnika)
z innego twardego napędu (3-6)
znajduje się drugi mały silnik na dysku srebrnym na dysku twardym (DC szczotkowane OK)
lub (najlepiej)
Silnik DC bez pędzla z rękojeścią z inną silnikową elektroniczną płytką z płytą elektroniczną Miesiąc drutu Arduino 120 K Ohm sześcio do 400 OHM OHM OHM Resistor Linia Obwód Micro Ohmst L6234 Trójfazowy sterownik silnika IC Dwa 100 Kondektorów 100 UF Kondensator 10 NF Kondensator 220 NF Kondensator One 1 UF Kondensator One 100 UF Trzy Diody odbierające One 2.
Honeywell SS411A Bipolarna Hall-5 AMP FUSE 1 FUSE 3
Uwaga: Mike Anton zaprojektowany i sprzedany produkt, który będzie zastępował elektronikę elektroniczną i sala. Podręcznik (
jest kontrolowany za pomocą indukcji potencjału pleców).
Specyfikacje i informacje o zamówieniach można znaleźć w tych dwóch linkach: jeśli zamierzasz wykonać ten projekt, sugeruję poświęcenie czasu na dokładne zrozumienie, jak działa i kontrole BLDC.
Istnieje wiele referencji online (
kilka sugestii patrz poniżej).
Jednak w moim projekcie dołączam niektóre wykresy i tabele, które powinny pomóc ci zrozumieć.
Oto lista koncepcji, które moim zdaniem są najważniejsze dla zrozumienia tego projektu: Tranzystory MOSFET 3-fazowe 6-
3-stopniowe redukcja
szerokości impulsu zdania Modulacja silnika fazowego (PWM) Hall-
Microchip AVR443: Sensors-General Reference DC Podstawowe zasady Motorowe DC Podstawowe zasady Motorowe DC Podstawowe zasady Motorowe DC Podstawowe zasady Motorowe
DC Motorowe Motorowe Motorowe Motorowe DC Podstawowe zasady Motorowe Motorowe Motor DC Motorowy Motorowy
Motor DC Kontrola Motorowa Motorowa Star Hall czujnik, dobry film o czyszczeniu silnika dysku twardego, ale autor wydaje się prowadzić silnik jako silnik krokowy i silnik. Bardziej szczegółowa strona internetowa referencyjna dla BLDC na napędzie motorowym L6234 IC, w tym arkusze danych, notatki aplikacji i informacje o zakupie.
Bezpłatna próbka na bezszczotkowe napęd silnikowy PM do hybrydowych zastosowań pojazdów elektrycznych.
Jest to jedyny artykuł, który opisał kolejność zmiany fazy hamowania regeneracyjnego.
Niniejszy artykuł, Brukowanie regeneracyjne w pojazdach elektrycznych jest przydatne, pożyczyłem z niego kilka liczb, ale myślę, że nieprawidłowo opisuje, jak działa regeneracja.
Zrobiłem ten projekt z silnikiem napędowym dysku z recyklingu, ponieważ łatwo było go przejść i lubię używać małego silnika o niskim napięciu, aby nauczyć się przewodu kontrolowanego przez BLDC i nie powodować żadnych problemów z bezpieczeństwem.
Ponadto konfiguracja magnesu czujnika Hall staje się bardzo prosta, używając pierścienia magnetycznego (wirnika)
z drugiego z tych silników (patrz krok 4).
Jeśli nie chcesz przejść do wszystkich kłopotów związanych z instalacją i kalibracją czujnika Hall (kroki 5-7),
wiem, że są przynajmniej niektóre silniki napędowe CD/DVD wbudowane w hall czujnik.
Aby zapewnić obrót bezwładność do silnika i dać im trochę ładunku, położyłem 5 dysków twardych na silniku, delikatnie przyklejone razem z odrobiną mocnego kleju i przyklejone do silnika (
to sprawiło, że koło zamachowe w moim oryginalnym projekcie).
Jeśli zamierzasz usunąć silnik z dysku twardego, potrzebujesz napędu T8 TORX, aby odkręcić obudowę (
zwykle za patykiem w etykiecie środkowym znajdują się dwie śruby
, które trzymają silnik.
Musisz także usunąć czytnik główny (
kierownictwo okręgu dźwiękowego)
w ten sposób możesz wyjąć dysk pamięci, aby dotrzeć do silnika.
Ponadto potrzebujesz drugiego samego silnika napędu twardego, aby usunąć wirnik z tego silnika (
w środku jest magnes).
Aby rozebrać silnik, złapałem wirnik (górny)
imadło silnika i podważyłem go na stojanie (na dole),
dwa śrubokręty są od siebie o 180 stopni.
Nie jest łatwo przytrzymać silnik na wystarczająco ciasnej parie bez deformacji.
Możesz zbudować drewniany V-
blok używany do tego celu.
Wywierciłem otwór w pierścieniu magnetycznym na tokarce, aby wygodnie pasował do góry silnika.
Jeśli nie możesz użyć tokarki, możesz naprawić odwrócony wirnik na silniku silnym klejem.
Zdjęcia 2 i 3 poniżej pokazują wnętrze jednego z silników, które zdemontowałem.
W pierwszej połowie (wirnik) znajduje się 8 biegunów (
magnes owinięty plastikiem).
W drugiej połowie (stojana)
znajduje się 12 szczelin (uzwojenia).
Każda z trzech faz motorycznych ma 4 szczeliny szeregowe.
Niektóre silniki HD mają trzy kontakty na dole, jeden kontakt na fazę, a drugi to środkowy kran silnika (
w którym spotykają się trzy etapy).
W tym projekcie nie jest wymagane środkowe kran, ale może być przydatny w kontroli wolnej od czujników (
mam nadzieję, że pewnego dnia opublikuję notatkę na temat kontroli wolnej od czujników).
Jeśli Twój silnik ma cztery kontakty, możesz zidentyfikować fazę z Ohmeter.
Rezystancja między kranem środkowym a fazą wynosi połowę oporu między dowolnymi dwiema fazami.
Większość literatury na temat silników BLDC dotyczy tych z potencjalnym kształtem fali w kształcie drabiny, ale silnik dysku twardego wydaje się mieć potencjał pleców, który wygląda jak sinus (patrz poniżej).
O ile mi wiadomo, prowadzenie silnika fali sinusoidalnej PWM fali sinusoidalnej działa dobrze, chociaż wydajność może nieco spaść.
Podobnie jak wszystkie silniki BLDC, ten składa się z trójfazowego półfazowego
mostu tranzystorowego (
patrz drugie zdjęcia poniżej).
Używam IC wykonanego przez ST Micro (L6234)
dla mostu, znanego również jako sterownik silnika.
Połączenie elektryczne L6234 pokazano w kroku 8.
Trzecie zdjęcie poniżej pokazuje schemat schematu sterownika silnika i trzy fazy silnika.
Aby silnik mógł działać zgodnie z ruchem wskazówek zegara, przełącznik zostanie wykonany w następującej kolejności (
pierwsza litera jest górnym tranzystorem, a druga litera jest dolnym tranzystorem)
: Krok 1 2 3 4 5 6 Zgodnie z ruchem
wskazówek zegara: CB, AC, BC, BA, CA W przeciwnym razie: BC, BA, CA, CB, AB, ac Ac Ac Te 6-Krok wymaga \ „stopień elektropr.” 90 dla tych silników.
Dlatego prędkość obrotowa każdego silnika występuje cztery razy.
Dwie sekwencje wydają się być takie same, ale nie są takie same, ponieważ dla
sekwencji 6-stopniowej dla CW kierunek prądu przez fazę jest jednym kierunkiem, a dla CCW prądowy kierunek jest odwrotny.
Możesz to zobaczyć sam, stosując napięcie akumulatora lub zasilacza do dowolnej fazy silnika.
Jeśli zastosujesz napięcie, silnik porusza się nieco w jednym kierunku i zatrzyma się.
Jeśli możesz szybko zmienić napięcie na fazie w jednej z powyższych sekwencji, możesz obrócić silnik ręcznie.
Tranzystory i mikrokontrolery bardzo szybko uzupełniają wszystkie te przełączniki, przełączając setki razy na sekundę, gdy silnik działa z dużą prędkością.
Należy również pamiętać, że jeśli napięcie zostanie zastosowane do obu faz, silnik porusza się trochę, a następnie zatrzymuje się.
Jest tak, ponieważ moment obrotowy wynosi zero.
Możesz to zobaczyć na czwartym zdjęciu poniżej, które pokazuje tylny potencjał pary faz motorycznych.
To jest fala sinusoidalna.
Kiedy fala przechodzi przez
wał X, moment obrotowy zapewniany przez tę fazę wynosi zero. W sześciokrotnej
sekwencji zmiany fazy BLDC, która nigdy się nie wydarzyła.
Zanim moment obrotowy w określonej fazie staje się niski, moc jest przełączana na kolejną kombinację fazy.
Większe silniki BLDC są zwykle produkowane przez czujniki hali wewnątrz silnika.
Jeśli masz taki silnik, możesz pominąć ten krok.
Wiem też, że są przynajmniej niektóre silniki napędowe CD/DVD wbudowane w już czujnik.
Gdy silnik się obraca, do wykrywania pozycji używane są trzy czujniki hali, więc zmiana fazowa jest wykonywana we właściwym momencie.
Mój silnik HD działa do 9000 obr / min (150 Hz).
Ponieważ na koło występuje 24 zmiany, przy 9000 obr / min, maszyna jest zmieniana co 280 mikrosekund.
Mikrokontroler Arduino działa przy 16 MHz, więc każdy cykl zegara wynosi 0. 06 Mikrosekund.
Nie wiem, ile cykli zegara jest wymaganych do przeprowadzenia zdania, ale nawet jeśli wymagane jest 100 cykli zegara, to znaczy, wymaga 5 mikrosekund dla każdej redukcji zdania.
Silniki HD nie mają czujników Hall, więc należy je zainstalować na zewnątrz silnika.
Czujnik należy naprawić w odniesieniu do obrotu silnika i wystawiony na serię biegunów, które są zgodne z obrotem silnika.
Moim rozwiązaniem jest usunięcie pierścienia magnetycznego z tego samego silnika i zainstalowanie go do góry nogami na silniku do sterowania.
Następnie zainstalowałem trzy czujniki hali nad tym pierścieniem magnetycznym, 30 stopni oprócz siebie na wale silnikowym (
obrót silnika elektrycznego o 120 stopni).
Mój uchwyt na czujnik Hall składa się z prostego uchwytu składającego się z trzech aluminiowych części przetworzonych przeze mnie i trzech plastikowych części wykonanych na szybkim prototypie.
Jeśli nie masz tych narzędzi, znalezienie innego sposobu wskazania pozycji nie powinno być trudne.
Tworzenie wsporników dla czujników Hall będzie trudniejsze.
Jest to możliwy sposób pracy: 1.
Znajdź plastikową tacę o odpowiednim rozmiarze, a czujnik hali można ostrożnie. 2.
Na papierze jest szablon, który ma ten sam okrąg co promień pierścienia magnetycznego, a trzy znaki są od siebie o 15 stopni 3.
Przyklej szablon na dysku, a następnie użyj szablonu jako przewodnika, aby ostrożnie umieścić epoksydę czujnika Hall na miejscu.
Teraz, gdy czujniki Hall są instalowane na silniku, podłącz je do obwodu pokazanego poniżej i przetestuj je za pomocą DMM lub oscyloskopu, aby upewnić się, że wyjście staje się wyższe i niższe wraz z obracaniem silnika.
Uruchamiam te czujniki poniżej 5 V, używając wyjścia 5 V Arduino.
Czujnik Hall jest wysoki lub niski wyjściowy (1 lub 0)
To zależy od tego, czy czują Antarktydę czy Arktykę.
Ponieważ są od siebie 15 stopni, magnesy obracają się pod nimi i zmieniają polaryzację co 45 stopni, te trzy czujniki nigdy nie będą wysokie ani niskie w tym samym czasie.
Gdy silnik obraca się, wyjście czujnika wynosi 6-
Wzór krokowy pokazany w poniższej tabeli.
Czujnik musi być wyrównany z ruchem silnika, aby jeden z trzech czujników zmienił się dokładnie w pozycji zmiany fazy silnika.
W tym przypadku rosnąca krawędź pierwszego czujnika Hall (H1)
powinna być spójna z otwarciem kombinacji C (wysoką) i B (niską).
Jest to równoważne włączaniu tranzystorów 3 i 5 w obwodzie mostu.
Wyrównaj czujnik z magnesem do oscyloskopu.
Aby to zrobić, muszę użyć trzech kanałów zakresu.
Obracam silnik, podłączając do paska drugiego silnika i mierz potencjał pleców między dwiema kombinacjami faz (
A i B, A i C)
To jest dwa sinus.
Podobnie jak fale na poniższym zdjęciu,
a następnie spójrz na sygnał czujnika Hall 2 na kanale 3 oscyloskopu.
Uchwyt czujnika Hall jest obracany, aż rosnąca krawędź czujnika Hall nie zostanie w pełni wyrównana z punktem, w którym należy wykonać zmianę fazy (patrz poniżej).
Teraz zdaję sobie sprawę, że istnieją tylko dwa kanały do ​​wykonania tej samej kalibracji.
Jeśli BEMF kombinacji fazowej B-
przy użyciu C, rosnąca krawędź H2 będzie powiązana z krzywą BC.
Powodem, dla którego należy tutaj przeprowadzić zmianę fazową, jest zawsze utrzymanie momentu silnika jak najwięcej.
Potencjał tylny jest proporcjonalny do momentu obrotowego i zauważysz, że każda zmiana fazy występuje, gdy potencjał pleców przechodzi poniżej krzywej następnego etapu.
Dlatego rzeczywisty moment obrotowy składa się z najwyższej części każdej kombinacji faz.
Jeśli nie możesz uzyskać dostępu do zakresu, tutaj jest mój pomysł na wyrównanie.
To właściwie interesujące ćwiczenie dla każdego, kto chce wiedzieć, jak działa silnik BLDC.
Jeśli faza silnika A jest podłączona (dodatnia) i B (ujemna)
do zasilania i włącz zasilanie, silnik będzie się trochę obrócić i zatrzyma.
Następnie, jeśli ujemny przewód mocy zostanie przeniesiony do fazy C, a moc jest włączona, silnik obróci się dalej i zatrzyma się.
Następną częścią sekwencji będzie przeniesienie pozytywnego przewodu do fazy B itp.
Gdy to zrobisz, silnik zawsze zatrzymuje się tam, gdzie moment obrotowy wynosi zero, co odpowiada jednym miejscu, w którym wykres przechodzi przez oś x na wykresie.
Należy zauważyć, że punkt zerowy kombinacji trzeciej fazy odpowiada pozycji zmiany fazy pierwszych dwóch kombinacji.
Dlatego położenie zerowego momentu obrotowego B-
kombinacja C polega na tym, że chcesz ustawić rosnącą krawędź H2.
Zaznacz tę pozycję drobnymi śladami lub ostrymi ostrzami, a następnie dostosuj uchwyt czujnika Hall za pomocą DMM, aż wyjście H2 będzie dokładnie wyższe na tym znaku.
Nawet jeśli trochę odbiegniesz od harmonogramu szkolnego, silnik powinien działać dobrze.
Faza trzech silników odbędzie zasilanie z trójfazowego sterownika silnika L6234.
Odkryłem, że jest to dobry produkt, który może znieść próbę czasu.
Istnieje wiele sposobów na przypadkowe usmażenie twoich komponentów podczas korzystania z elektroniki Power, nie jestem inżynierem elektrycznym i nie zawsze wiem, co się dzieje.
W moim programie szkolnym wykonaliśmy własną 3-
fazową moc przyrodniego mostka 6 tranzystorów MOSFET i 6 diod.
Wykorzystaliśmy to na HIP4086 drugiego intersil kierowcy, ale mamy wiele problemów z tą konfiguracją,
spaliliśmy kilka tranzystorów i żetonów.
Uruchomię L6234 (
więc silnik) przy 12 V.
L6234 ma nietypowy zestaw wejść do kontrolowania pół-mostu 6 tranzystorów.
Nie każdy tranzystor ma dane wejściowe, ale
wejście do włączenia (EN) dla każdego z trzech etapów, a następnie inne wejście (cal)
wybierają tranzystor w fazie otwartej (górna lub dolna).
Na przykład włącz tranzystor 1 (górny) i 6 (dolny)
Zarówno EN1, jak i EN3 są wysokie (
EN2 niskie, aby utrzymać zamknięcie etapu)
w wysokim poziomie 1, w 3 nisko.
To sprawia, że ​​kombinacja faz c.
Podczas gdy notatka aplikacji L6234 sugerowana zastosowanie PWM używanego do kontrolowania prędkości silnika do pinu, postanowiłem to zrobić na PIN EN, ponieważ w tym czasie uważam, że nie ma to nic złego w obwodach obu faz w tym samym czasie, ponieważ nie miałyby tego samego, ponieważ nie ma tego samego, ponieważ nie ma tego samego, ponieważ nie ma tego samego, ponieważ nie ma tego samego
, ponieważ nie ma tego samego, ponieważ nie ma tego samego, ponieważ nie ma tego samego, ponieważ nie ma tego samego, ponieważ nie ma tego samego, ponieważ nie ma tego samego potencjału, a nie ma tego samego potencjału, a oni nie ma tego potencjalnego, tak jak one, to tak, jak to zrobić, to tak, że tak, to one, tak jak są one. Przechodzą
moją
metodę
przez
one jest trochę mały, więc w przypadku większych wersji zapoznaj się z dokumentacją L6234.
Uwaga: Mike Anton wykonał PCB dla L6234, który (jak sądzę)
zastąpi ten utwór i pozwoli ci złożyć zadanie jej montażu.
Zobacz te linki dla specyfikacji i informacji o zakupie: nie znalazłem dużo o 3-
Opiszę moje zrozumienie, jak to działa.
Należy pamiętać, że nie jestem inżynierem elektrykiem i docenilibyśmy wszelkie poprawki do mojego wyjaśnienia.
Podczas jazdy system sterowania wysyła prąd do trzech faz silnika w sposób maksymalizujący moment obrotowy.
W hamowaniu regeneracyjnym system sterowania maksymalizuje również moment obrotowy, ale tym razem jest to negatywny moment obrotowy, który powoduje zwolnienie silnika podczas wysyłania prądu z powrotem do baterii.
Metoda hamowania regeneracyjnego, którą użyłem, pochodziła z artykułu z Oakridge National Laboratory w Stanach Zjednoczonych. S. Govt.
Laboratorium, które przeprowadza wiele badań dla silników samochodowych.
Poniższy wykres pochodzi z innego artykułu, który pomaga zilustrować, jak to działa (
myślę jednak, że wyjaśnienie podane w tym drugim artykule jest częściowo nieprawidłowe).
Należy pamiętać, że gdy silnik się obraca, napięcie BEMF w fazie silnika zmienia się w górę iw dół.
Na rysunku pokazuje moment, w którym BEMF jest wysoki na etapie B i niski na etapie.
W takim przypadku prąd może przepływać z B do.
Krytyczne dla hamowania regeneracyjnego, niskie tranzystory szybko się włączają i wyłączają (
tysiące przełączników PWM na sekundę).
Gdy wysokiej klasy przełącznik tranzystorowy jest wyłączony;
Po włączeniu niskiego tranzystora prąd przepływa, jak pokazano na pierwszym zdjęciu.
Jeśli chodzi o elektronikę energetyczną, obwód jest jak urządzenie zwane konwerterem doładowania, w którym energia jest przechowywana w fazie silnika (
Wikipedia ma dobry artykuł wyjaśniający, jak działa konwerter doładowania).
Energia ta jest uwalniana, gdy tranzystor niskiej klasy jest wyłączony, ale przy wyższym napięciu prąd natychmiast przepływa przez diodę \ „anty-exciation \” obok każdego tranzystora, a następnie wraca do akumulatora.
Dioda zapobiega przepływowi prądu z akumulatora do silnika.
Jednocześnie prąd w tym kierunku (
w przeciwieństwie do jazdy)
oddziałuje z pierścieniem magnesu, aby uzyskać ujemny moment obrotowy, który spowalnia silnik.
Niski tranzystor wykorzystuje przełącznik PWM, a cykl pracy PWM kontroluje ilość hamowania.
Podczas jazdy komunikat silnika przełącza się z jednej kombinacji na drugą w odpowiednim czasie, aby utrzymać najwyższy możliwy moment obrotowy.
Komisja hamulca regeneracyjnego jest bardzo podobna, ponieważ w niektórych trybach przełączania powoduje, że silnik wytwarza jak najwięcej negatywnego momentu obrotowego.
Jeśli obejrzysz wideo w pierwszym kroku, zobaczysz, że hamulec regeneracyjny działa dobrze, ale nie działa dobrze.
Myślę, że głównym powodem jest to, że silnik dysku twardego, którego używam, jest bardzo niskim silnikiem momentu obrotowego, więc nie wytwarza dużo BEMF, z wyjątkiem najwyższej prędkości.
Przy niższej prędkości istnieje bardzo mało hamowania regeneracyjnego (jeśli istnieje).
Ponadto mój system działa na stosunkowo niskim napięciu (12 V)
ponadto, ponieważ każda ścieżka przez diodę anty-podekscytującą zmniejsza napięcie o kilka woltów, co również znacznie zmniejsza wydajność.
Używam normalnych diod prostowników i mogę uzyskać lepszą wydajność, jeśli używam specjalnych diod z niższym spadkiem napięcia.
Poniżej znajduje się lista wejść i wyjść na Arduino.
Dołącz także wykresy i zdjęcia mojej tablicy. 2-
Cyfrowe wejście 1
120 K Odporność GND 3
Digital Entry Hall 2
120 K Odporność GND 4
Hall 3 Digital Wejście-
120 K Odporność GND 5
1 Digitalowe wyjście z serii 400 Ohm z
rezystorami
Digital z 400 OHM Digital Digital Digital Digital Digital Digital Digital z serii 400
OHM
w serii 11-10-1.
Wyjście cyfrowe EN 3 jest szeregowo z rezystorem 400 omów, potencjometrem o temperaturze 100 k, z 5 V i GND podłączonym na obu końcach i analogowym pinem 0 podłączonym pośrodku.
Ten potencjometr służy do sterowania prędkością silnika i objętości hamowania.
Zasilacz 5 V służy również do uruchamiania czujników Hall (patrz krok 5).
Oto cały program, który napisałem dla Ardjuino, który zawiera komentarze:/* bldc_congroller 3. 1.
1* 3 autorstwa Davida Glazera.
Seria X to Ster 3234 3-
fazowy sterownik silnika IC * Bieżownik napędu dysku * z regeneracyjnym hamowaniem * Prędkość silnika i hamowanie kontrolowane przez pojedynczy potencjomometr * Pozycja silnika za pomocą trzech
czujników efektu Halla * Arduino odbiera wyjście z 3 czujników Hall (PINS 2,3,4)
* i konwersja ich kombinacji na 6 różnych kroków fazowych na pinach 9, 10, 11 przy 32 czujnikach hallu (Pins 2,3,4) * i przekonwertować ich kombinację na 6 różnych etapach fazowych na fazie
. 1,2, 3 * 3 DO PINS 5,6, 7, (w 1,2,3)
* Podłącz symulację w 0 z potencjometrem, aby zmienić cykl służby i zmianę
:
* 524-1023
Komentarze do
debugowania Allstate1
;




​() {pinmode (2, input);
/Hall 1 Pinmode (3, wejście);
/Hall 2 Pinmode (4, wejście);
/L6234 Hall 3/wyjście sterownika silnika pinmode (5, wyjście);
/W 1 pinmode (6, wyjście);
/W 2 pinmode (7, wyjściowe);
/W 3 pinmode (9, wyjście);
/En 1 pinmode (10, wyjściowe);
/En 2 pinmode (11, wyjście);
/En 3/Serial. rozpocząć (9600);
Jeśli będziesz korzystać z połączenia szeregowego, prosimy o odkształcenie tej linii.
Polecenie Flush na końcu programu.
/* Ustaw częstotliwość PWM na pinach 9, 10 i 11/Ustaw PWM na 32 kHz dla pinów 9, 10/najpierw wyczyść wszystkie trzy bity przed rozdzielczością: int Prescalerval = 0x07;
/Utwórz zmienną o nazwie prescalerval i ustaw ją na równą liczbę binarną \ '00000111 \' tccr1b & = ~ prescaler
/i wartość w Tccr0b z binarną liczbą \ '11111000 \' /Teraz ustaw odpowiedni wstępny bit wprowadzania: int wstępne bit 2 = 1;
/SET PRESCALERVAL do równej liczby binarnej \ '00000001 \' Tccr1b | = prescalerval2;
/Lub wartość w TCCR0B z liczbą binarną \ '00000001 \' /ustaw PWM na 32 kHz dla pin 3,11 (
ten program używa tylko pin 11)
/Wyczyść wszystkie trzy bity przed kaler najpierw: tccr2b & = ~ pre-calerval;
/I wartość w TCCR0B z liczbą binarną \ '11111000 \'/Teraz ustaw odpowiedni bit przedkodowania: tccr2b | = Bit wstępny 2;
/Lub wartość w tccr0b z liczbą binarną \ '00000001 \'/najpierw wyczyść wszystkie trzy wstępnie zakodowane bity:}
główna pętla/prgrom void Loop () {
/time = millis ();
Czas po rozpoczęciu programu drukowania. println (czas); //Seryjny. wydrukować(\'\');
Przepustnica = analogread (0);
/Potencjometr przepustnicy MSPS = mapa (
przepustnica, 512,1023, 0,255);
/Jazda jest odwzorowana na górną połowę potencjometru Bspeed = mapa (
przepustnica, 0,511,255, 0);
/Pół-częściowy hamowanie regeneracyjne na dole doniczki/mSPS ed = 100;
/Do debugowania HallState1 = DigitalRead (2);
/Odczyt wartość wejściowa z Hall 1 2 = Cyfrowa odczyt (3);
/Odczyt wartość wejściowa z Hall 2 3 = Cyfrowa odczyt (4);
Odczytaj wartość wejściową/zapis numeryczny z Hall 3 (8, HallState1);
/Gdy odpowiedni czujnik jest w dużej mocy, dioda LED będzie
pierwotnie używana do debugowania cyfrowegoWrite (9, HallState2);
// DigitalWrite (10, HallState3); Hallval = (HallState1)+ (2*HallState2)+ (4*HallState3);
/Oblicz wartości binarne 3 serii czujników Hall/*. print (\ 'h 1: \');
Do debugowania portu szeregowego. println (HallState1); Seryjny. print (\ 'H 2: \'); Seryjny. println (HallState2); Seryjny. print (\ 'H 3: \'); Seryjny. println (HallState3); Seryjny. println (\ '\');
*/// Serial. println (mspeed); //Seryjny. println (Hallval); //Seryjny. wydrukować(\'\');
/Monitorowanie wyjścia/opóźnienia tranzystora (1000);
/* T1 = DigitalRead (2); // t1 = ~ t1;
T2 = DigitalRead (4); // t2 = ~ t2;
T3 = cyfrowy (5); // t3 = ~ t3; Seryjny. druk (T1); Seryjny. print (\ '\ t \'); Seryjny. druk (t2); Seryjny. print (\ '\ t \'); Seryjny. druk (t3); Seryjny. wydrukować(\'\'); Seryjny. wydrukować(\'\'); Seryjny. print (cyfrowy (3)); Seryjny. print (\ '\ t \'); Seryjny. print (DigitalRead (9)); Seryjny. print (\ '\ t \'); Seryjny. println (DigitalRead (10)); Seryjny. wydrukować(\'\'); Seryjny. wydrukować(\'\'); // opóźnienie (500);
*/Zmiana fazy jazdy/Każda liczba binarna ma przypadek odpowiadający różnym tranzystorom włączonym/bit Matematyka używana do zmiany wartości wyjściowej Arduino:/Portd zawiera wyjście pinu na sterowniku L6234/Wyjście użyte do ustalenia, czy górny tranzystor lub dolna część tranzystorowa/en jest kontrolowana przez analogatę arduino, ustawił cykl pracy PWM (
0 = OFT, 255 = WYŁ. wartość kontrolowana przez potencjometr). if (throttle> 511) {switch (hallval) {
case 3:/portd = 1111xxx00;
/Oczekiwane wyjście pin 0-7
xxx odnosi się do wejścia Hall, a Portd & = B00011111 nie powinny być zmieniane;
Portd | = B01100000;
/Analowrite (9, mspeed);
PWM na fazie (
wysokiej klasy tranzystor) analogwrite (10,0);
Zamknięcie fazy B (obowiązek = 0) analogwrite (11 255); // Faza C na -duty = 100% (
niski tranzystor);
Przypadek 1:/portd = B001xxx00;
/Oczekiwane wyjście pin 0-7
portd & = B00011111;
/Portd | = B00100000;
/Analowrite (9, mspeed);
PWM na fazie (
wysokiej klasy tranzystor) analogwrite (10,255); // Faza B na (
tranzystor do niskiego poziomu) analogwrite (11,0); // Faza B OFF (obowiązek = 0) przerwa;
Przypadek 5:/portd = B101xxx00;
/Oczekiwane wyjście pin 0-7
portd & = B00011111;
/Portd | = B10100000; Analogwrite (9,0); Analogwrite (10 255); Analogwrite (11, Mspeed); przerwa;
Przypadek 4:/portd = B100xxx00;
/Oczekiwane wyjście pin 0-7
portd & = B00011111;
Portd | = Bym000;
/Analowrite (9255); Analogwrite (10,0); Analogwrite (11, Mspeed); przerwa;
Przypadek 6:/portd = B110xxx00;
/Oczekiwane wyjście pin 0-7
portd & = B00011111;
Portd B11. 000 =;
/Analowrite (9255); Analogwrite (10, Mspeed); Analogwrite (11,0); przerwa;
Przypadek 2:/portd = B010xxx00;
/Oczekiwane wyjście pin 0-7
portd & = B00011111;
B0201700 Portd | =;
/Analowrite (9,0); Analogwrite (10, Mspeed); Analogwrite (11 255); przerwa; }}
/Regeneracyjna zmiana fazy hamulcowej /Portd (
wyjście w PIN na L6234)
Piny są zawsze niskie, więc podczas regeneracji używane są tylko niskie tranzystory na każdej fazie. hamowanie. else {
/portd = b000xxx00;
/Oczekiwane wyjście pin 0-7
portd & = B00011111;
Portd | = Bym0000; // switch (hallval) {
case 3: analogia pisanie (9, Bspeed); // analogwrite (9,0); Analogwrite (10,0); Analogwrite (11,0); przerwa;
Przypadek 1: pisanie analogii (9, Bspeed); Analogwrite (10,0); Analogwrite (11,0); przerwa;
Przypadek 5: Pisanie analogii (9,0); Analogwrite (10,0); Analogwrite (11, Bspeed); przerwa;
Przypadek 4: pisanie analogii (9,0); Analogwrite (10,0); Analogwrite (11, Bspeed); przerwa;
Przypadek 6: Pisanie analogii (9,0); Analogwrite (10, Bspeed); Analogwrite (11,0); przerwa;
Przypadek 2: pisanie analogii (9,0); Analogwrite (10, Bspeed); Analogwrite (11,0); przerwa; }}
/Time = millis ();
Czas po rozpoczęciu programu drukowania. println (czas); //Seryjny. wydrukować(\'\'); //Seryjny. spłukać();
/Jeśli chcesz debugować za pomocą portu szeregowego, prosimy o odkształcenie}
Myślę, że operacja, którą wykonuje Arduino w tym projekcie, jest tak prosta, że ​​wydaje się, że to marnotrawstwo wykonujące to zadanie z mikroprocesorem.
W rzeczywistości notatki z aplikacji L6234 zalecają prostą programowalną tablicę bram (
GAL16V8 wykonana z półprzewodnika kratowego) do wykonania tego zadania.
Nie znam programowania tego urządzenia, ale koszt IC wynosi tylko 2 USD. 39 w Newark.
Inne podobne obwody zintegrowane są również bardzo tanie.
Inną opcją jest połączenie dyskretnych bram logicznych.
Wymyśliłem stosunkowo proste sekwencje logiczne, które mogłyby napędzać IC L6234 z wyjścia trzech czujników Hall.
Wykres dla etapu A jest pokazany poniżej, a tabela prawdy dla wszystkich trzech etapów (
w celu obwodu logicznego faz B i C, drzwi \ „nie \” muszą być połączone na drugą stronę \ ”lub.
Problem z takim podejściem jest to, że istnieje prawie 20 połączeń na każdym etapie, więc zajmuje to dość pracy, aby
to najlepiej zaprogramować.

Hoprio Group Profesjonalny producent kontrolera i silników, został założony w 2000 r. Grupy Grupy w Changzhou City w prowincji Jiangsu.

Szybkie linki

Skontaktuj się z nami

WhatsApp: +86 18921090987 
Tel: +86-18921090987 
Dodaj: nr 19 Mahang South Road, Wujin High-Tech District, Changzhou City, prowincja Jiangsu, Chiny 213167
Zostaw wiadomość
Skontaktuj się z nami
Copyright © 2024 Changzhou Hoprio E-Commerce Co., Ltd. Wszelkie prawa zastrzeżone. Mapa witryny | Polityka prywatności