logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Rozwiązano] Arduino i silnik BLDC z czujnikami Halla - niewłaściwe napięcie na wyjściu układu LM339

kazmierczak48913 04 Lis 2023 23:16 1053 26
REKLAMA
  • #1 20800013
    kazmierczak48913
    Poziom 3  
    Posty: 13
    Ocena: 1
    Witam, próbuję stworzyć układ z wykorzystaniem uC Arduino oraz silnika BLDC z czujnikami Halla z CD-ROM-u:
    Silnik BLDC z czujnikami Halla podłączony do obwodu z kolorowymi przewodami.
    Wyprowadzenia określone, układ zasilony. Przy pomiarze wyjścia + i - z czujników Halla wygląda to następująco:
    Notatka z pomiarami napięcia i opisem pinów.
    Studiuję różne samouczki, przeglądam artykuły, jednak nie potrafię znaleźć sensownego rozwiązania problemu.
    https://simple-circuit.com/arduino-bldc-brushless-dc-motor-control/
    https://mikrokontrolery.blogspot.com/2011/03/Silnik-BLDC-Czujniki-Halla-sterowanie.html
    Tak samo jak w przedstawionych artykułach wyprowadzam wejścia - i + na komparator, na wejścia nieodwracające i odwracające. Na wyjściu komparatora otrzymuję napięcie ~1,9 mV bez rezystora podciągającego, z rezystorem podciągającym do 5 V na wyjściu 4,7 V i nic się nie zmienia. Próbowałem też wstawić rezystor 330 om pomiędzy + a wyjście, efekt taki, jak oczekiwałem, czyli na wyjściu 330 mV.
    Docelowo potrzebuję jednoznacznie określać stan pomiędzy 0-1 na wyjściu komparatora, aby podać je na uC.
    Aktualnie stanąłem w miejscu. To, co sprawdziłem i może dzięki temu dostanę odpowiedź, co tu jest nie tak:
    - pomiędzy wyprowadzeniami nie ma zwarcia, rezystancja do każdej nóżki czujnika Halla, mierząc od wyprowadzenia do nóżki, wynosi około 1,5 om;
    - napięcie zasilania dostarczone jest z Arduino, wynosi około 4,8 V;
    - na zasilaniu czujników szeregowo wpięty jest rezystor 220 om.
    - podciąganie do 5 V robiłem opornikiem 10 kom;
    - silnik sam w sobie działa, podawałem na krótko napięcie na fazy, obraca się o "krok";
    - układ LM339 jest zasilony, "wiszące nóżki" uziemione.
    Z góry dziękuję za pomoc.
  • REKLAMA
  • #2 20800031
    jarekgol
    Poziom 40  
    Posty: 5118
    Pomógł: 641
    Ocena: 1133
    Między tymi stronami WWW są różnice w podłączeniu czujników Halla do komparatora. Na moje druga strona lepsza, bo na pierwszej wejścia wiszą w powietrzu. Dawno nie miałem gołych czujników Halla w rękach, ale wydaje mi się, że one zmieniały oporność pod wpływem pola magnetycznego. Spróbuj podłączyć/spolaryzować je przez duże oporniki do zasilania (powiedzmy 10 kom) 10 kom do plusa i 10 kom do minusa. Wepnij woltomierz, pokręć palcami silnikiem i zobacz, co będzie.
  • #3 20800174
    kazmierczak48913
    Poziom 3  
    Posty: 13
    Ocena: 1
    Dzięki za odpowiedź, jednak nie do końca rozumiem, co znaczy spolaryzować w kwestii podłączenia. W sensie podłączyć np. - z czujnika Halla do wejścia odwracającego przez 10 kom, czy zrobić podciąganie? Mógłbyś trochę precyzyjniej? Dzięki!
  • #4 20800206
    jarek_lnx
    Poziom 43  
    Posty: 22537
    Pomógł: 4165
    Ocena: 6025
    jarekgol napisał:
    Dawno nie miałem gołych czujników Halla w rękach, ale wydaje mi się, że one zmieniały oporność pod wpływem pola magnetycznego.
    Jak nie pamiętasz, to zajrzyj na Wikipedię, zanim zaczniesz wypowiadać się na temat działania. Goły czujnik Halla daje niewielkie napięcie różnicowe, czujnik z wbudowanym komparatorem daje stan logiczny, ten często ma wyjście z otwartym kolektorem i wymaga podciągania.
    Istnieją czujniki czterowyprowadzeniowe z dwoma wyjściami otwartym kolektorem, ale nie spodziewałbym się ich w takim silniku.

    @kazmierczak48913 Pomierz lepiej same czujniki, rezystancję między wyprowadzeniami wyjściowymi, różnicowo i rezystancję z każdego wyjścia do zasilania i masy, szukaj rozbieżności, wszystkie czujniki powinny mieć podobne rezystancje, mało prawdopodobne jest zwarcie wszystkiego ze wszystkim.

    kazmierczak48913 napisał:
    - pomiędzy wyprowadzeniami nie ma zwarcia, rezystancja do każdej nóżki czujnika Halla, mierząc od wyprowadzenia do nóżki, wynosi około 1,5 om;
    1,5 om to zdecydowanie za mało i raczej jest to zwarcie, a ile miernik pokazuje na zwartych zaciskach?
  • #5 20800256
    kazmierczak48913
    Poziom 3  
    Posty: 13
    Ocena: 1
    Aktualnie nie ma mnie przy układzie, o 17 ponowię pomiar i podzielę się, może coś pomoże.
    Co do pomiaru 1,5 om, to jest pomiar pomiędzy wyprowadzeniem z płytki a nóżki do której prowadzi ścieżka, więc tak naprawdę końcówka przewodu - nóżka czujnika Halla. Pomiędzy np. B+ a B- jest rezystancja zbliżona do kilooma. Największa rezystancja jest pomiędzy H- a H+, z tego, co pamiętam, to około 3 kom. Pomiędzy H- a wyprowadzeniami + - rezystancja jest też zbliżona do kilooma. Nie wiem dokładnie, jaka powinna być, ale na każdym czujniku rezystancja na odpowiadających nóżkach jest „taka sama”.
  • #6 20800503
    jarek_lnx
    Poziom 43  
    Posty: 22537
    Pomógł: 4165
    Ocena: 6025
    Setki omów-kiloomy to są właściwe wartości, te 1,5 om jako rezystancja ścieżki (zmierzona byle jak) też jest OK.

    Jeśli nigdzie nie znajdziesz zwarć, mierz napięcia. Czujnik Halla jest jak prawie jak mostek Wheatstone'a złożony z prawie identycznych rezystorów, na przekątnej powinno być niskie napięcie - sygnał użyteczny mV, ale względem masy i zasilania powinna być połowa. Podałeś tak, jakbyś zmierzył względem masy, a to nie powinny być pojedyncze mV.

    To, co "zmierzy" komparator, niewielkie napięcie różnicowe zmieniające się przy powolnym obracaniu, da się zaobserwować miernikiem.
  • #7 20800625
    kazmierczak48913
    Poziom 3  
    Posty: 13
    Ocena: 1
    Te wartości które podałem to sa właśnie napięcia różnicowe. Czyli pomiędzy wyjściem - oraz +, są to wartości rzędu mV, czujnik ma 4 piny zasilanie i wyjście +-. Mierzyłem napięcia pomiedzy masą a poszczególnymi pinami, jednak nie pamietam wyników, sprawdzę dzisiaj. Zwarć nie ma, sprawdzałem to na samym początku. Niby sytuacja prosta, działanie czujnika znane, jednak dalej coś nie trybi. Prześle później wyniki dalszych pomiarów, może coś przeoczyłem (myśle, że napewno) i uda się coś ustalić.
  • #8 20800633
    _jta_
    Specjalista elektronik
    Posty: 48808
    Pomógł: 3198
    Ocena: 4183
    Wygląda na to, że na kartce w #1 B+/- są odwrotnie, niż w linku https://simple-circuit.com/arduino-bldc-brushless-dc-motor-control/

    Jest kilka rodzajów "czujników Halla" - przede wszystkim można je podzielić na przełączające (zwykle jedno wyjście, może być "otwarty kolektor", może być "push-pull", włączenie przy pewnej indukcji, wyłączenie przy pewnej innej), które dzielą się na unipolarne (np. włączenie przy +15mT, wyłączenie przy +5mT), bipolarne (np. włączenie przy +5mT, wyłączenie przy -5mT), i omnipolarne (np. włączenie przy 10mT, wyłączenie przy 5mT, i znak pola nie ma znaczenia); oraz analogowe (i pewnie takie tam są). Poza tym, mogą być czujniki magnetooporowe, które symulują czujniki Halla.

    Te analogowe mogą zawierać wzmacniacz (i takie mogą mieć jedno wyjście, albo dwa), albo tylko "goły" czujnik (i wtedy z reguły mają dwa wyjścia, i raczej niską czułość); przy braku pola magnetycznego na wyjściach takiego czujnika zwykle jest około połowy napięcia zasilania (w zasadzie tak powinno być dla "gołego" czujnika, dla czujnika ze wzmacniaczem producent może wykombinować coś innego).

    Napięcie na wyjściu/wyjściach czujnika analogowego zmienia się z grubsza liniowo z polem magnetycznym, i powinno płynnie zmieniać się przy ruchu wirnika (kiedy czujnik jest zamontowany w silniku), albo przy zbliżeniu magnesu (kiedy jest "luzem"); wymaga to zasilania czujnika.

    Względem czego były mierzone napięcia podane na kartce? Przy jakim zasilaniu? Jeśli czujnik ma dwa wyjścia, to można mierzyć napięcie między nimi.
  • REKLAMA
  • #9 20800845
    jarek_lnx
    Poziom 43  
    Posty: 22537
    Pomógł: 4165
    Ocena: 6025
    kazmierczak48913 napisał:
    Te wartości które podałem to sa właśnie napięcia różnicowe.
    To dlaczego A+ i A- są dwa napięcia a nie jedno? Obracaj i sprawdź jak się zmieniają
  • #10 20800960
    kazmierczak48913
    Poziom 3  
    Posty: 13
    Ocena: 1
    Ponieważ napięcie niższe jest równoznaczne (prawdopodobnie) kiedy czujnik nie jest zadziałany, ponieważ występuje w kilku pozycjach rotora oraz kiedy rotor nie jest założony, a napięcie wyższe pojawia się w pozostałych pozycjach rotora.
  • #11 20801015
    jarek_lnx
    Poziom 43  
    Posty: 22537
    Pomógł: 4165
    Ocena: 6025
    Minimum i maksimum powinno być symetryczne względem zera.
  • #12 20801035
    kazmierczak48913
    Poziom 3  
    Posty: 13
    Ocena: 1
    @jarek_lnx Jestem w trakcie wykonywania pomiarów, może coś z nich się wywnioskuje, bo na razie nic nie pomogło.
    W ciągu godziny wrzucę pomiary z podsumowaniem, bo trochę ten temat się rozbiega.
  • #14 20801172
    kazmierczak48913
    Poziom 3  
    Posty: 13
    Ocena: 1
    To tak, podczas pomiaru zauważyłem, że na płytce jest widoczne oznaczenie nóżki na czujniku jako 1, co jednoznacznie określa (według mnie) nóżkę zasilającą, tak więc nastąpiła zmiana co do kolejności pinów. Widać ją na poniższym zdjęciu.
    Płytka drukowana z cewkami miedzianymi i otworem centralnym
    Dla ujednolicenia, bo nie wiem czy zostało to jednoznacznie powiedziane, czujnik na płytce ma oznaczenie IFP, jednak nie znalazłem, żadnej dokumentacji do niego. Posiada 4 nóżki, prawdopodobnie wpięte (1) jako Vcc, przeciwlegle GND, patrząc po poradnikach nad Vcc -> wyjście +, pod GND -> wyjście -.
    Dokonałem pomiaru rezystancji przy odłączonym zasilaniu oraz pomiar napięcia w stanie bez statora, oraz ze statorem w 3 różnych pozycjach, podpinam zdjęcia dla jednoznaczności. Nie posiadam super dokładnego miernika, więc są to pomiary niezbyt dokładne, jednak można zauważyć, że czujniki reagują, napięcie zmienia się w zależności od położenia statora. Stator można ustawić w 18 pozycjach, przemieszczałem go co 2 "kroki". Są to wartości rzędu mV, najbardziej martwi mnie czujnik A (H1), zmiana z 1mV na 1,7mV raczej mało zauważalna, ale może to przez mój miernik, nie mam pojęcia.
    Co do tego czy czujnik jest cyfrowy czy analogowy, to tak na przykładzie czujnika C:
    * przemieszczając stator co "krok" mamy: 8,1/8,0/8,6/16,8/17,2/16,7/7,8 mV.
    * jednak przytrzymując stator i powoli przekręcając go można płynnie przejść z (co 0,2 mV) z napięcia 8 do 17 mV, więc na moje oko czujnik jest analogowy.
    Zamieszczam dodatkowo zdjęcia pozycji, nie jest to kluczowe, ale żeby była jasność w jakiej pozycji były przeprowadzone pomiary:
    I.
    Zbliżenie na czujnik z oznaczeniem IFP i połączeniami przewodów na płytce.
    II.
    Zbliżenie na czujnik elektroniczny z mosiężnym rdzeniem na zielonej płytce PCB z różnokolorowymi przewodami.
    III.
    Płytka elektroniczna z owiniętym przewodami i komponentem w centralnej części.
    Dołączam również wyniki pomiarów:
    Pomiar..pdf (216.29 kB)Musisz być zalogowany, aby pobrać ten załącznik.
    Pomiar..pdf (207.43 kB)Musisz być zalogowany, aby pobrać ten załącznik.
    Liczę, że może w czymś to pomoże, bardzo mi zależy na uruchomieniu tego układu. Z góry dziękuje za dalszą pomoc i radę.
  • Pomocny post
    #15 20801706
    jarek_lnx
    Poziom 43  
    Posty: 22537
    Pomógł: 4165
    Ocena: 6025
    kazmierczak48913 napisał:
    To tak, podczas pomiaru zauważyłem, że na płytce jest widoczne oznaczenie nóżki na czujniku jako 1, co jednoznacznie określa (według mnie) nóżkę zasilającą, tak więc nastąpiła zmiana co do kolejności pinów.

    Niezależnie od tego jak czujnik ma wyprowadzenia, nóżki zasilania i (oddzielnie) masy powinny być połączone razem, po tym je zidentyfikujesz.
    Powinna być ścieżka która łączy tą samą nóżkę 1,2,3 czujnika, może być tak że to połączenie jest niekompletne, zlokalizuj te połączenia dla pewności, może któreś powinno być wykonane poza płytką bo to jednostronna PCB i nie wszystko da się skrzyżować. Widzę tam dziesięć wąskich ścieżek, i wyłącznik krańcowy, czujniki wymagają ośmiu, ale może być 9 i jedna wspólna z wyłącznikiem, czy wyłącznik ma jakieś wspólne ścieżki z czujnikami?

    Na pomiarach oporności rezystancje do H- i H+ znacząco sie różnią, a goły czujnik Halla powinien być całkowicie symetryczny. Zapewne coś zostało źle zidentyfikowane.
    Możesz też sprawdzić czy rezystancje są takie same w obu kierunkach jeśli nie to oznaczało by czujniki z wbudowanym układem scalonym.
  • #16 20801733
    kazmierczak48913
    Poziom 3  
    Posty: 13
    Ocena: 1
    @jarek_lnx i tak w tym przypadku jest. H- jest połączone przy przeciwległej nóżce do (1) w każdym czujniku, natomiast H+ do nóżek oznaczonych (1). Tak więc są zidentyfikowane poprawnie. Wykonywałem to sprawdzenie przed przystąpieniem do jakichkolwiek działań na płytce.
    Włącznik ma dwie osobne ścieżki. Łączą się one po naciśnięciu switch'a. Nie łączy się nigdzie z czujnikami.
  • REKLAMA
  • #17 20801741
    jarek_lnx
    Poziom 43  
    Posty: 22537
    Pomógł: 4165
    Ocena: 6025
    Ok, błędu w tym nie widzę. A jakie jest napięcie na wyjściach czujników względem masy?
  • #18 20801918
    _jta_
    Specjalista elektronik
    Posty: 48808
    Pomógł: 3198
    Ocena: 4183
    Niepokojące jest to, że napięcie między dowolnym wyprowadzeniem, a H- to około 4,5V, a między pozostałymi wyprowadzeniami jest do kilkunastu mV. Oraz to, że znaki napięć nie zmieniają się przy obracaniu wirnika (stator, to część nieruchoma, choć to na niej są cewki).

    Co do oznaczenia czujnika: on pewnie jest w obudowie SMD, na której mało jest miejsca na napisy, i używa się "marking code" - to zwykle 2-4 znaki alfanumeryczne; niestety te kody nie są unikalne i mogą wprowadzać w błąd.
  • #19 20802465
    kazmierczak48913
    Poziom 3  
    Posty: 13
    Ocena: 1
    @jarek_lnx Napięcie względem masy jest przedstawione w tabeli. H- to tak naprawdę GND z uC.

    Dodano po 1 [minuty]:

    @_jta_ Już nie wiem co z tym fantem robić, może jeszcze raz spróbuje przelutować piny, może gdzieś jest mikrozwarcie, którego nie dostrzegam.
  • #20 20802528
    jarek_lnx
    Poziom 43  
    Posty: 22537
    Pomógł: 4165
    Ocena: 6025
    kazmierczak48913 napisał:
    Napięcie względem masy jest przedstawione w tabeli. H- to tak naprawdę GND z uC.
    No tak, pogubiłem się trochę.

    Goły czujnik Halla nie może mieć wyjścia tak blisko plusa zasilania. Zostaje przypuszczenie że mamy czujnik z komparatorem i wyjścia OC.

    Sprawdź miernikiem ustawionym na test diody, czy napięcia przewodzenia pomiędzy zasilaniem, masą i wyjściami zależą od polaryzacji, jeśli choć jedno po odwróceniu sie nie zgodzi to znaczy że mamy scalak a nie Halla.
  • #21 20802600
    _jta_
    Specjalista elektronik
    Posty: 48808
    Pomógł: 3198
    Ocena: 4183
    kazmierczak48913 napisał:
    może gdzieś jest mikrozwarcie, którego nie dostrzegam.

    Raczej bym podejrzewał przerwę, albo duży opór połączenia (może zwyczajnie gdzieś po drodze jest opornik?), ale to można wykryć mierząc napięcia - jakie jest napięcie pinu, który ma być połączony z H-, względem końcówki H-?
  • #22 20803200
    kazmierczak48913
    Poziom 3  
    Posty: 13
    Ocena: 1
    @jarek_lnx Nie rozumiem jak może być tu czujnik z komparatorem, raczej wtedy miałbym jedno wyjście, które wystarczyłoby podciągnąć. Mogę się mylić, ale jestem już trochę zdesperowany...
    @_jta_ Po przelutowaniu układu nic się nie zmieniło, zwarcia nie ma, każdy pin dochodzi do czujnika, rezystancja od wyprowadzenia czujnika do wyprowadzenia z płytki ~0,6 om. Pomiędzy wyjściami rezystancja ~800om, pomiędzy H- a wyjściami 7,5 kom, pomiędzy H- a H+ 7,2 kom. pomiędzy wyprowadzeniem H- a nóżką H- spadek napięcia -0,2mV, mój miernik jest mało dokładny, nie brałbym tego pod uwagę.
  • Pomocny post
    #23 20803452
    _jta_
    Specjalista elektronik
    Posty: 48808
    Pomógł: 3198
    Ocena: 4183
    Może by poszukać w sieci not katalogowych podobnych czujników? To jest chyba obudowa SOT143 - na Elenota.pl znalazłem tylko jeden typ czujnika Halla w takiej obudowie: KSY13. Ale on ma inny "marking code", więc to nie jest ten, najwyżej może być podobny (a nawet zgodny, np. od innego producenta).
  • Pomocny post
    #24 20803463
    jarek_lnx
    Poziom 43  
    Posty: 22537
    Pomógł: 4165
    Ocena: 6025
    kazmierczak48913 napisał:
    Nie rozumiem jak może być tu czujnik z komparatorem, raczej wtedy miałbym jedno wyjście, które wystarczyłoby podciągnąć. Mogę się mylić, ale jestem już trochę zdesperowany...
    To by było dziwne i nieuzasadnione, nawet bez sensu, ale takie czujniki istnieją, po prostu ta skrajna asymetria napięć nasuwa przypuszczenie że popełniamy duży błąd.

    Dlatego zaproponowałem żeby poszukać diod, wszystkie scalaki mają takie diody, czy to jako zabezpieczenie, czy pasożytnicze, diody które przy normalnej pracy polaryzowane są zaporowo, ale miernikiem można je wykryć, za to goły czujnik Halla powinien być całkowicie symetryczny.

    Schemat układu z diodami i rezystorem w obwodzie zasilania.

    Ta asymetria napięć powoduje że komparator nie może działać, jesteśmy poza zakresem.

    Dodano po 40 [minuty]:

    Znalazłem że są takie czujniki jak CYTY320 z rezystorem w obwodzie zasilania. Taki czujnik mógł by być niesymetryczny ale napięcie wspólne powinno być bliżej masy a nie zasilania .
  • REKLAMA
  • #25 20803542
    kazmierczak48913
    Poziom 3  
    Posty: 13
    Ocena: 1
    Doszedłem do wniosku, że chyba drążenie tego konkretnego silnika może okazać się bezskuteczne, kupiłem kolejne napędy, spróbuje podobnego podejścia na "nowym" silniku i zobaczę czy wynik jest ten sam, jeśli okaże się, że na nowym zadziała, to można uznać, że akurat ten był uszkodzony lub coś zostało przeoczone. Dam znać w ciągu dnia jak to wyszło i dziękuje za każdą radę i pomysł.
  • #26 20806123
    kazmierczak48913
    Poziom 3  
    Posty: 13
    Ocena: 1
    Dzięki za pomysły, zamykam temat.
    Kolejny napęd z kupionej stacji CD śmiga jak trzeba.
    Już na samym początku widać, że rezystancja jest inna między wyjściami ~300 om, pomiędzy H- a H+ około 100 Ohm, pomiędzy H- a resztą około 200.
    No i wszystko ładnie symetrycznie, podłączyłem tak jak w pierwszym linku, LM339 elegancko reaguje na napięcie różnicowe.
    :)
  • #27 20806300
    kazmierczak48913
    Poziom 3  
    Posty: 13
    Ocena: 1
    Czujniki na silniku pierwszym nie działały
    Wymiana płytki na inną pomogła.

Podsumowanie tematu

✨ Użytkownik pracuje nad układem z Arduino i silnikiem BLDC z czujnikami Halla, napotykając problem z niewłaściwym napięciem na wyjściu komparatora LM339. Po analizie połączeń czujników Halla i pomiarach rezystancji oraz napięcia, użytkownik odkrywa, że czujniki mogą być uszkodzone lub źle podłączone. Wskazówki od innych uczestników dyskusji obejmują sprawdzenie polaryzacji czujników, pomiar napięć oraz identyfikację typu czujników (analogowe vs cyfrowe). Po wymianie silnika na nowy, problem został rozwiązany, a układ działa poprawnie.
Wygenerowane przez model językowy.
REKLAMA