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

[Arduino] Jak napisać program do servo i czujnika Halla dla regulatora obrotów?

DjSixteen 28 Lut 2018 16:41 3234 39
Najlepsze odpowiedzi

How can I build an Arduino program that uses a Hall sensor and a servo to keep engine speed constant under load by automatically adding throttle?

Najpierw zrób z tego dwa osobne etapy: pomiar obrotów jako tachometr i dopiero potem sterowanie serwem na podstawie zmierzonego RPM [#17071488] Do pomiaru nie wystarczy sam „czujnik Halla” w dowolnej formie — trzeba znać jego typ (uni-, bi- lub omni-polarny) i poprawnie ustawić go mechanicznie względem wirującego elementu, żeby nie liczyć impulsów podwójnie albo wcale; przy stalowym kole sam Hall wymaga jeszcze magnesu, a impulsy możesz liczyć w czasie lub mierzyć okres między nimi [#17071488][#17073297][#17079189] Samo sterowanie serwem powinno działać w pętli regulacji PID, bo silnik reaguje wolno i proste „dodawaj gazu aż wzrosną obroty” będzie niestabilne [#17072962][#17092081] Jeśli to ma być agregat prądotwórczy, lepszym sygnałem sprzężenia zwrotnego jest częstotliwość napięcia z prądnicy lub alternatora, bo niesie tę samą informację o prędkości, a jest łatwiejsza do wykorzystania niż rozbieranie gotowego tachometru z wyświetlaczem [#17078198][#17072835] Gdy już wybierzesz czujnik i wiesz, ile impulsów daje na obrót oraz jaki zakres ma mieć serwo, napisanie kodu przestaje być problemem [#17077850] Jeśli chcesz dużą dokładność przy niskich obrotach, lepiej mierzyć okres sygnału timerem/przerwaniem niż samą częstotliwość [#17079189]
Wygenerowane przez model językowy.
REKLAMA
  • #1 17070310
    DjSixteen
    Poziom 7  
    Posty: 19
    Ocena: 3
    Witam, Ostatnio zrobiłem zakupy min; arduino uno klon, servo oraz czujnik halla. Cała płytka fajnie działa na testowych bibliotekach.
    Teraz mam problem otóż potrzebne mi są wasze rady bądź ktoś kto napisze mi program do mojego regulatora. Samym wyzwaniem było dla mnie skonfigurowanie tej płytki z komputerem bo zajęło mi to ponad 5 godzin hah. Cała idea polega na tym aby regulator za pomocą serva oraz zliczonych obrotów z czujnika halla utrzymywał mi obroty mimo obciążenia, czyli kolokwialnie dodawał gazu. Nie mam zielonego pojęcia od czego mam zacząć gdzie zamocować najlepiej ten czujnik. Bardzo proszę o pomoc, za program który będzie śmigał jestem w stanie zapłacić. :)
    wstawiam zdj czujnika:
    Załączniki:
    • [Arduino] Jak napisać program do servo i czujnika Halla dla regulatora obrotów? IMG_20180228_163526.jpg (2.99 MB) Musisz być zalogowany, aby pobrać ten załącznik.
    • [Arduino] Jak napisać program do servo i czujnika Halla dla regulatora obrotów? IMG_20180228_163532.jpg (2.98 MB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • Pomocny post
    #2 17071488
    Konto nie istnieje
    Poziom 1  
  • #3 17071862
    DjSixteen
    Poziom 7  
    Posty: 19
    Ocena: 3
    Dzieki za zainteresowanie moim postem. Myślę nad zastosowaniem jednego z nich wolał bym ten z wyświetlaczem tylko czy z niego będę mógł pobrać sygnał ?


    Co do cięgła zrobię sobie je na dwóch przegubach więc servo jak najbardziej mi pasuje.
    Załączniki:
    • [Arduino] Jak napisać program do servo i czujnika Halla dla regulatora obrotów? Zrzutekranu_2018-03-01-08-39-46-481.jpeg (185.18 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • Pomocny post
    #4 17072835
    Konto nie istnieje
    Poziom 1  
  • Pomocny post
    #5 17072905
    ghost2000
    Poziom 18  
    Posty: 375
    Pomógł: 2
    Ocena: 12
    emarcus napisał:
    Z multiplexowanego wyjścia do wielocfrowego LED nie jest praktycznie sensowne odwzorowanie pierwotnej wartości

    To sie da dość łatwo zrobić ale na pewno lepiej wykorzystać sam czujnik i swój uC.
  • Pomocny post
    #6 17072962
    TvWidget
    Poziom 38  
    Posty: 4391
    Pomógł: 471
    Ocena: 693
    Sprawa nie jest taka prosta. To co chcesz zrealizować nazywa się regulatorem PID. Zwróć uwagę, że silnik zmienia obroty stosunkowo wolno. Regulator musi to uwzględniać. Nie można więc zrobić prostej pętli sprzężenia zwrotnego typu dodawaj gazu aż osiągnięta zostanie odpowiednia prędkość.
    https://pl.wikipedia.org/wiki/Regulator_PID
  • #7 17073189
    DjSixteen
    Poziom 7  
    Posty: 19
    Ocena: 3
    Miło mi że wzrosło zainteresowanie moim postem. A więc temat bardzo podobny nawet taki sam był już przerabiany pod tym linkiem i w zasadzie od niego pochodzi cały mój pomysł jednak dla takiego laika jak ja w tym temacie Arduino musi być to niestety wytłumaczone dogłębniej link niżej

    https://www.elektroda.pl/rtvforum/topic3348694-30.html#16579942

    Okej, mam w silniku koło zamachowe na którym są umieszczone zęby (jest to część gdzie rozrusznik odpala silnik) czyli idąc moim zrozumieniem kupuje czujnik halla matuje go przy tym kole z trybami, czujnik podłączam do Arduino i zapisuje te informacje które płyną mi z czujnika ? Dobrze to rozumiem ?

    Jeżeli dobrze to zrozumiałem to mam jeszcze takie pytania co do podłączenia czujnika nie powinienem mieć żadnych kłopotów jednakże

    Jak sczytać te informacje z podłączonego czujnika do Arduino ?

    No i jaki polecacie mi czujnik do tego ponieważ muszę zrobić zakupy z waszych postów wynika :) bardzo bym był wdzięczny za link czujnika :)

    Ja znalazłem taki co wy o nim sądzicie czy będzie się nadawał ?
    Załączniki:
    • [Arduino] Jak napisać program do servo i czujnika Halla dla regulatora obrotów? Zrzutekranu_2018-03-01-08-43-41-668.jpeg (424.02 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • Pomocny post
    #8 17073297
    TvWidget
    Poziom 38  
    Posty: 4391
    Pomógł: 471
    Ocena: 693
    Jeśli koło jest stalowe to sam czujnik Halla nie wystarczy. Potrzebny jest jeszcze niewielki magnes.
    Czujnik wygeneruje impuls gdy przesunie się obok niego ząb koła zamachowego. Takie impulsy zwykle się zlicza w jednostce czasu lub mierzy się czas pomiędzy nimi. Może to robić np. Arduino.
    Jeśli chcesz coś kupić to najpierw zastanów się w jakich warunkach ma pracować czujnik. To co na zdjęciu nadaje się do pracy tylko w suchym pomieszczeniu gdzie temperatura jest w miarę stała.
  • #9 17073486
    DjSixteen
    Poziom 7  
    Posty: 19
    Ocena: 3
    Właśnie, mam dwie myśli na ten moment skoro jest to silnik od forda transit to w sumie takowy silnik musiał już mieć gdzieś oryginalnie zapakowany taki czujnik halla ale teraz pytanie gdzie go szukać i czy jeszcze działa 😮😑

    Druga opcja to kupienie takiego obrotomierza jak wyżej w moim poście z wyświetlaczem wyświetlacz wywalić a użyć samego czujnika on jest trwały a wiem to bo miałem zamątowany takowy przy tokarce gdzie pracował w różnych warunkach hmm 😒
  • #10 17075151
    Konto nie istnieje
    Poziom 1  
  • #11 17076572
    jaclew
    Poziom 18  
    Posty: 206
    Pomógł: 27
    Ocena: 210
    DjSixteen napisał:
    silnik musiał już mieć gdzieś oryginalnie zapakowany taki czujnik halla ale teraz pytanie gdzie go szukać

    Zapytaj o to na dziale samochodowym, tam są spece od silników na pewno coś doradzą, a tu raczej nie zaglądają.

    DjSixteen napisał:
    z wyświetlaczem wyświetlacz wywalić a użyć samego czujnika

    bez sensu kupić całość a potem wywalić połowę. Możesz przecież kupić sam czujnik.
    Tu mam jednak wątpliwości czy tu jest czujnk Halla czy indukcyjny...
  • #12 17077686
    DjSixteen
    Poziom 7  
    Posty: 19
    Ocena: 3
    Bardzo fajnie że mi wszytko tłumaczycie tylko mi bardzo zależy na czasie nawet jak bym do końca nie wiedział jak to działa a by działało to bym był w 100% spełniony 😁 szukam osoby która rozpisze dokładnie mi taki projekt jak już wspomniałem jestem skłonny zapłacić. A więc wstawiam wam kilka fotek mojego silnika (agregatu ) i czekam może ktoś będzie miał jakiś fajny pomysł :)
    Załączniki:
    • [Arduino] Jak napisać program do servo i czujnika Halla dla regulatora obrotów? IMG_20180303_154227.jpg (3.05 MB) Musisz być zalogowany, aby pobrać ten załącznik.
    • [Arduino] Jak napisać program do servo i czujnika Halla dla regulatora obrotów? IMG_20180303_154213.jpg (2.68 MB) Musisz być zalogowany, aby pobrać ten załącznik.
    • [Arduino] Jak napisać program do servo i czujnika Halla dla regulatora obrotów? IMG_20180303_154207.jpg (2.46 MB) Musisz być zalogowany, aby pobrać ten załącznik.
  • Pomocny post
    #13 17077850
    jaclew
    Poziom 18  
    Posty: 206
    Pomógł: 27
    Ocena: 210
    Mieć fajny pomysł na umieszczenie czujnika i dobranie jego typu to jedna sprawa. To bardziej kwestia mechaniki i nikt Tobie nie doradzi tego na 100% nie mając dostępu do tego silnika.
    Można tu tylko teoretyzować jak wyżej.
    Druga sprawa to napisanie programu pod wybrane konkretne już rozwiązanie z czujnikiem.
    Gdy będziesz miał już dobrany czujnik, podasz ile impulsów na obrót on daje, w jakim zakresie serwo ma reagować itp. to napisanie programu nie będzie już problemem.
    Chętnie wtedy pomogę ogarnąć kod. Za darmo :)
  • #14 17077910
    DjSixteen
    Poziom 7  
    Posty: 19
    Ocena: 3
    Okej, na ogół czujniki nie są drogie i zakupie kilka różnych typów wszystkie przetestuję i wtedy będę miał pewność, w moim przypadku pozostaje metodą prób i błędów 😁. Wiadomo też że te sterownie nie musi być bardzo bardzo dokładne bo wiadomo chwilowa zmiana Hz dla silnika 3 fazowego nie jest taka tragiczna a do bardziej wymagających sprzętów mam już w posiadaniu (tylko muszę umieścić ) stabilizator napięcia :)
  • #15 17078055
    TvWidget
    Poziom 38  
    Posty: 4391
    Pomógł: 471
    Ocena: 693
    DjSixteen napisał:
    Wiadomo też że te sterownie nie musi być bardzo bardzo dokładne bo wiadomo chwilowa zmiana Hz dla silnika 3 fazowego nie jest taka tragiczna a do bardziej wymagających sprzętów mam już w posiadaniu (tylko muszę umieścić ) stabilizator napięcia :)

    Czy robisz agregat prądotwórczy ? Jeśli tak to do pętli sprzężenia zwrotnego lepiej jest użyć częstotliwości generowanej przez prądnicę.
  • Pomocny post
    #17 17078198
    TvWidget
    Poziom 38  
    Posty: 4391
    Pomógł: 471
    Ocena: 693
    Chciałeś użyć czujnik Halla do pomiaru prędkości silnika. Nie jest on potrzebny. Zamiast niego lepiej jest użyć częstotliwości napięcia wytwarzanego przez prądnice. Zawiera ona identyczną informacje o prędkości silnika jak impulsy z czujnika Halla.
    Pętla sprzężenia zwrotnego w tym wypadku oznacza dodaj więcej gazu gdy częstotliwość napięcia spada.
  • REKLAMA
  • #18 17078236
    ghost2000
    Poziom 18  
    Posty: 375
    Pomógł: 2
    Ocena: 12
    Gdyby od razu było wiadomo, że chodzi o agregat, to wątek miałby jakieś 12 postów mniej. Niestety, na Elektrodzie jest taka moda na tajną tajność.
  • #19 17078475
    DjSixteen
    Poziom 7  
    Posty: 19
    Ocena: 3
    Zrobiłem taki wątek i zero odpowiedzi więc poszedłem w ta stronę mówisz że by pobrać to z częstotliwości prądu prądnicy hmmm był by to dobry pomysł ale jak to połączyć ze sobą jakieś dokładne informacje, tak pobocznie dodam że prądnica to RolStal 16kw
  • #20 17078621
    ghost2000
    Poziom 18  
    Posty: 375
    Pomógł: 2
    Ocena: 12
    DjSixteen napisał:
    ale jak to połączyć ze sobą jakieś dokładne informacje

    A jak się mierzy częstotliwość sieci 230V?
    Jak agregat ma rozrusznik to i układ jego ładowania. Jak ładowanie to alternator. Tu też można mierzyć częstotliwość a jest łatwiej bo mamy niskie napięcie.
  • REKLAMA
  • #21 17078873
    DjSixteen
    Poziom 7  
    Posty: 19
    Ocena: 3
    No z tego co mi wiadomo to miernikiem bądź hercomierzem tak? Okej teraz powiedz mi jak by to wyglądało co zastosować do Arduino żeby mało informacje o tych Hz.

    Z każdym zadanym pytaniem myślę sobie że raczej jest to rzecz której nigdy nie zrobię haha tracę nadzieję 😊
  • #22 17078963
    ghost2000
    Poziom 18  
    Posty: 375
    Pomógł: 2
    Ocena: 12
    DjSixteen napisał:
    Okej teraz powiedz mi jak by to wyglądało co zastosować do Arduino żeby mało informacje o tych Hz.

    Szukaj pod hasłem miernik częstotliwości. Tego dla Arduino jest sporo. W praktyce mierzony będzie czas (okres sygnału).

    Dodano po 2 [minuty]:

    DjSixteen napisał:
    hercomierzem

    Za "hercomierz" to szkole od razu lufa. Podobnie jak "centytometromierz", "jasnomierz" itp. Fantazja ludzka nie zna granic.

    Dodano po 43 [sekundy]:

    DjSixteen napisał:
    Z każdym zadanym pytaniem myślę sobie że raczej jest to rzecz której nigdy nie zrobię

    Też mam takie odczucie.


    Jaki kolega ma sprzęt?
    Jaki oscyloskop? W częstotliwościomierzu jest analogowy układ wejściowy.
    Jak oscyloskop kiepski to przydałby się miernik częstotliwości, ale skoro padło słowo "hercomierz" to moge założyć, że kolega nie posiada takiego.
    O debuger nie pytam, bo Arduino takowego nie obsługuje.


    PS
    To zadanie jest stosunkowo proste. Problem PID był już poruszany, reszta jest prosta o ile ma się wiedzę i sprzęt.
  • #23 17079054
    DjSixteen
    Poziom 7  
    Posty: 19
    Ocena: 3
    W tej dziedzinie uczę się od zera więc prawda nie wiem zbyt dużo może i nie skończyłem szkoły elektromechanicznej tu też dlatego nie znam pojęć wiem dużo w praktyce. Tak jak pisałem temat Arduino to dla mnie zupełna nowość dla tego tak to opornie idzie. Ale z autopsji wiem że zawsze rozwiązanie jakieś jest tylko trzeba się w temat zagłębić i słuchać rad doświadczonych już w tych tematach więc odezwałem się tutaj. Za wszystkie złe określenia przepraszam :)
  • #24 17079140
    ghost2000
    Poziom 18  
    Posty: 375
    Pomógł: 2
    Ocena: 12
    DjSixteen napisał:
    W tej dziedzinie uczę się od zera

    Proponuję zacząć od mniej ambitnych konstrukcji.

    Przechodząc z AVR na ARM nie rozpocząłem od skomplikowanego projektu (karty SD, HDMI, precyzyjny pomiar czasu) ale od prostego rozwiązania, gdzie główna role odgrywają GPIO a z peryferii to tylko timer systemowy i przerwania zewnętrzne.

    Podobnie pierwszy projekt na OrangePi to terminal z komunikacją po RS485, USB z DTFI, kilka led i przycisków.

    Trzeba mierzyć siły na zamiary.
    Podłącz do Arduino LCD np znakowy, aby obrazować wyniki
    Zbuduj miernik częstotliwości, pobaw się nim
    Zrealizuj pomiar okresu sygnału
    Dodaj obwody wejściowe do alternatora/prądnicy, pobaw się pomiarami (na ile stałe sa wyniki pomiaru)
    Zrealizuj sterowanie przepustnicą agregatu
    Sprawdź jak zachowuje się regulacja (czas reakcji)
    Połącz w całość.

    Początkujacy, na Arduino, powinien to zrealizować w 1..2 miesiące, zakładając prace po ok 4 godziny dziennie.
  • #26 17079189
    ghost2000
    Poziom 18  
    Posty: 375
    Pomógł: 2
    Ocena: 12
    Chcesz mierzyć częstotliwość ("hercomierz") czy okres sygnału ("okresomierz")?

    Częstotliwość jest niska. Przy 3000obr/min to ??? Policzyłeś ile?
    Można to mierzyć na wiele sposobów.
    Jaką rozdzielczość chcesz uzyskać? 1Hz? 0,1Hz? 0,01Hz a może 0,001Hz
    1Hz to za mało, musisz mierzyć z rozdzielczością co najmniej 0,1Hz jak chcesz mieć stabilność na poziomie 1Hz.
    Przy rozdzielczości 1Hz stabilność będziesz miał na poziomie +/-3 a może nawet +/-5Hz.

    Pisałem już, ze lepiej mierzyć czas. Przy pomiarze częstotliwości, rozdzielczość 0,1Hz to pomiar trwający 10sek, 0,01Hz to 100sek (ponad półtorej minuty!!!) 0,001Hz sam policz.
    Jeśli chcesz mierzyć czas, to musisz użyć timera (przechwytywanie). Czy wyprowadzenie Arduino, którego użyłeś jest wejściem przechwytującym timera?
  • #27 17091845
    DjSixteen
    Poziom 7  
    Posty: 19
    Ocena: 3
    Witam, dokonałem ponownych zakupów między innymi:
    Wyświetlacz 2x16
    Tachometr z czujnikiem i wyświetlaczem
    Podpowiedziano mi abym w pierwszym kroku skonstruował tachometr aby ustalić aktualne obroty silnika, podłączyłem wyświetlacz i czujnik wgrałem znaleziony program na internecie do tematu tachometru jednak teraz mam problem,
    Zaczepiając magnes na główkę od wiertarki odpowiednio trzymam czujnik od magnesu i wyświetlacz pokazuje mi wartości 250rpm za chwilę 500 bądź 1200rpm, nwm czym może być to spowodowane proszę o pomoc ponieważ jestem słaby w tym temacie :/ ?????... Zdj programu oraz wyświetlacza.
    Załączniki:
    • [Arduino] Jak napisać program do servo i czujnika Halla dla regulatora obrotów? IMG_20180309_174608.jpg (2.38 MB) Musisz być zalogowany, aby pobrać ten załącznik.
    • [Arduino] Jak napisać program do servo i czujnika Halla dla regulatora obrotów? IMG_20180309_190444.jpg (3.24 MB) Musisz być zalogowany, aby pobrać ten załącznik.
    • [Arduino] Jak napisać program do servo i czujnika Halla dla regulatora obrotów? IMG_20180309_190439.jpg (1008.83 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • [Arduino] Jak napisać program do servo i czujnika Halla dla regulatora obrotów? IMG_20180309_190501.jpg (5.11 MB) Musisz być zalogowany, aby pobrać ten załącznik.
    • [Arduino] Jak napisać program do servo i czujnika Halla dla regulatora obrotów? IMG_20180309_190507.jpg (4.15 MB) Musisz być zalogowany, aby pobrać ten załącznik.
    • [Arduino] Jak napisać program do servo i czujnika Halla dla regulatora obrotów? IMG_20180309_190455.jpg (3.17 MB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #28 17091870
    ghost2000
    Poziom 18  
    Posty: 375
    Pomógł: 2
    Ocena: 12
    DjSixteen napisał:
    wgrałem znaleziony program na internecie

    I wszyscy wiedzą co to za program więc nie ma problemu aby wskazać błąd.
    Prosze załaczyc ten program, w przeciwnym wypadku to wróżenie z fusów.
  • #30 17091923
    ghost2000
    Poziom 18  
    Posty: 375
    Pomógł: 2
    Ocena: 12
    DjSixteen napisał:

    Napisałem
    Cytat:
    Proszę załaczyć ten program,
    . Nie każdemu się chce szukać programu na stronie, pewnie rozpakować archiwum, itp. Ponadto link może za jakiś czas zniknąć i następna osoba szukająca pomocy nie otrzyma jej.

Podsumowanie tematu

✨ W dyskusji poruszono temat stworzenia programu do regulatora obrotów z wykorzystaniem Arduino Uno, serwomechanizmu oraz czujnika Halla. Użytkownik miał problemy z konfiguracją sprzętu oraz zrozumieniem, jak zintegrować czujnik Halla z Arduino w celu pomiaru obrotów silnika. Uczestnicy forum sugerowali podział projektu na dwa etapy: stworzenie tachometru oraz kontrolę serwa na podstawie wyników z tachometru. Wskazano na konieczność użycia magnesu w połączeniu z czujnikiem Halla oraz omówiono różne typy czujników Halla. Zwrócono uwagę na zastosowanie regulatora PID do stabilizacji obrotów silnika. Użytkownik planował również dodać czujnik poziomu paliwa do swojego projektu. W końcu, użytkownik uzyskał pomoc w zakresie programowania oraz podłączenia komponentów.
Wygenerowane przez model językowy.
REKLAMA