Czy pracując z czujnikiem i silnikiem, mogę używać obu urządzeń, czy powinienem używać osłony silnika?


11

Aktualizacja: Obecnie zmieniam kilka rzeczy w projekcie. Skorzystałem z niektórych rad. Zmieniłem silnik krokowy na serwo RC (kontrolowane przez PWM) i jeśli napotkam jakieś problemy i nie mogę ich rozwiązać, zapytam. Dzięki za pomoc!

Pracuję nad projektem z przyjacielem i po raz pierwszy korzystam z Arduino. Używamy Arduino do pobierania danych z czujnika (akcelerometru), a następnie włączania silnika (6 V, DC).

Robiłem kopanie i wydaje się, że moc z Arduino może nie być wystarczająca dla silnika i czujnika w tym samym czasie. Może jakieś opóźnienie mogłoby zadziałać (czy byłoby to możliwe?).

Zastanawiam się nad użyciem tarczy silnika . Czy nadal będę w stanie kontrolować przyspieszeniomierz wraz z silnikiem?

Próbuję użyć jednego zewnętrznego źródła zasilania (maksymalnie: 6 baterii AA; Próbuję ograniczyć ilość baterii, ponieważ staramy się zachować przenośność), więc istnieje sposób na użycie jednego źródła, ponieważ Arduino i tarcza silnika potrzebują dwóch różnych zasilaczy (z mojego zrozumienia).


Nadal powinieneś być w stanie używać innych szpilek. Ta tarcza silnika zachowuje się jak potężny brat i słucha, co mówi szpilka, i robi dokładnie to, oczywiście, z dużą mocą, jest większym bratem! Czy mógłbyś edytować swoje pytanie, abyś był bardziej szczegółowy na temat ilości baterii AA, których zamierzasz użyć?
abdullah kahraman

Dobra zaktualizowałem liczbę baterii. Czy uważasz, że silnik krokowy byłby lepszym substytutem, ponieważ słyszałem, że działają naprawdę dobrze z Arduinos.
Om23

@ Om23 Wybór silnika krokowego, serwo, szczotkowanego prądu stałego lub bezszczotkowego prądu stałego zależy od celu, jaki musi spełnić silnik, oraz (np. W przypadku silników BLDC) dostępny sprzęt do sterowania silnikiem. Może to stanowić interesujące nowe pytanie, w celu ustalenia, który silnik najlepiej wykorzystać do którego z kilku możliwych celów można pomyśleć. Nie jestem pewien, czy takie pytanie jest idealne dla strony Arduino, być może ktoś inny może się do tego zabrać.
Anindo Ghosh

Odpowiedzi:


12

Problem 1 : Kierowanie silnikiem bezpośrednio z Arduino

Nie zaleca się napędzania silnika bezpośrednio ze styków Arduino z wielu powodów:

  • Prąd obciążenia , szczególnie w warunkach rozruchu silnika i utknięcia. Jak słusznie wskazano w pytaniu, piny Arduino mogą po prostu nie być przystosowane do dostarczania wystarczającego prądu. Arduino może się nagrzewać, a nawet ulec uszkodzeniu w wyniku długotrwałego poboru prądu.
    Podczas gdy każdy pin Arduino dla Arduinos opartych na ATmega ma wartość 40 mA, ja osobiście wolę utrzymać ciągłe obciążenie poniżej 30 mA, ale twój apetyt na ryzyko może być inny. Nie widząc arkusza danych silnika, nie można przewidzieć, ile prądu potrzebuje silnik
  • Odwrotne EMF z silnika, zarówno podczas wyłączania silnika, jak i ewentualnie podczas komutacji silnika - Gdy silnik prądu stałego obraca się, szczotki kontaktowe „przemieszczają się” między pierścieniami dzielonymi, przynajmniej w tradycyjnych typach szczotkowanych silników prądu stałego, generując niewiele za każdym razem iskrzy.
    Wsteczne pole elektromagnetyczne to w zasadzie napięcie wsteczne generowane przez cewki silnika (lub dowolne obciążenie indukcyjne przy wyłączaniu), stany przejściowe (skoki), które mogą chwilowo znacznie przekroczyć dopuszczalny zakres napięcia, który mogą być tolerowane przez styki mikrokontrolera.
    Wsteczne oddziaływanie pola elektromagnetycznego pozostaje ryzykiem, aczkolwiek zmniejszonym, nawet jeśli szybka dioda jest podłączona w odwrotnym kierunku przez przewody silnika, co jest zdecydowanie zalecaną praktyką.
  • Dlatego zdecydowanie zaleca się izolację między Arduino a napędem silnikowym. Dla uproszczenia byłby to ekran silnika.
    Jeśli nie masz doświadczenia w posługiwaniu się podstawową elektroniką, można to również osiągnąć, podłączając bezpośrednio odpowiedni układ scalony sterownika silnika i diody flyback. ( Edycja : Jest to doskonale opisane w odpowiedzi Manisheartha )
    Sterownik silnika, czy to tarcza, czy układ scalony, powinien być zasilany niezależnie od Arduino, ale z połączonymi ze sobą dwoma liniami uziemienia źródła zasilania. Zobacz dalej.

Problem 2 : Kontrolowanie akcelerometru i osłony silnika jednocześnie

  • Tak, akcelerometr można kontrolować i odczytywać z Arduino przy założonej osłonie silnika, upewniając się, że styki wybrane do uzyskania dostępu do akcelerometru nie są w rzeczywistości używane przez osłonę silnika. Wszystkie byłyby podłączone do ekranu, ale bez wewnętrznej funkcji lub połączenia w obrębie ekranu. Dokumentacja dla wybranej tarczy zazwyczaj zawiera te informacje.
    Dla wygody poszukaj tarczy silnika z układanymi w stos nagłówkami, tj. Ze stykami nagłówka Arduino powielonymi na tarczy silnika w celu dołączenia dodatkowego sprzętu, w twoim przypadku akcelerometru. Nie wszystkie tarcze zapewniają nagłówki, które można ustawiać jeden na drugim. W ten sposób komplikuje się użycie pinów nieużywanych przez ekran, wymagających lutowania drutów do odpowiednich padów na płytce drukowanej lub jakiegoś takiego układu.
    Przy małej szansie, że wybrana osłona silnika zużywa wszystkie piny GPIO, podobnie jak w przypadku osłon do napędzania wielu silników, możesz mieć problem. Ponieważ ma być napędzany tylko 1 silnik, unikaj ekranów wielosilnikowych, które nie pozostawiają wystarczającej ilości nieużywanych styków GPIO.

Problem 3 : Rozdział mocy między Arduino a osłoną silnika

  • Problem z sugerowanym układem 6 x AA (maksymalne nominalne 9 woltów) polega na tym, że chociaż zapewnia on wystarczające napięcie dla gniazda wejściowego prądu stałego dostępnego w wielu Arduinos (zwykle o napięciu wejściowym od 7 do 12 woltów), jest zbyt wysoki, aby silnik mógł zostać z niego wypędzonym.
  • Istnieje jednak kilka ekranów silnika, które akceptują bezpośredni pobór mocy (np. 7 do 25 woltów), a następnie zapewniają ładnie regulowane 5 woltów dla Arduino, do którego są przyłączone. Dlatego Arduino nie musi być osobno zasilany i nie powinno być. Jest to absolutnie jedyny rodzaj osłony silnika, którą należy kupić .
  • Alternatywy Kludgiera obejmują stukanie w 4 z 6 ogniw AA w celu zasilania silnika i we wszystkich 6 ogniw w celu zasilania gniazda DC (PWRIN) Arduino lub użycie oddzielnego 6-woltowego regulatora buck dla zasilania silnika, podczas zasilania 9 woltów bezpośrednio do gniazda DC Arduino.
  • Próba zasilania Arduino za pomocą zestawu akumulatorów, a następnie zasilenie silnika ze styku Vin Arduino to zły pomysł, ponieważ
    • Dioda M7 między gniazdem DC a pinem Vin w kilku konstrukcjach referencyjnych Arduino jest przystosowana do 1 ampera, silnik może, co najmniej chwilowo, pobierać więcej
    • Cały hałas elektromagnetyczny generowany przez silnik, hałas komutacji plus stany nieustalone, będą wracać do płyty Arduino, chyba że zastosowane zostanie bardzo sztywne odsprzęganie, co nie jest prostą sprawą. Ta informacja zwrotna EMI spowoduje sporadyczne, trudne do debugowania problemy z działaniem Arduino.

10

Większość osłon zajmuje kilka pinów, a resztę pozostawia dla Ciebie (dlatego wiele z nich ma na sobie replikę systemu pinów Arduino za pomocą nagłówków ustawianych jeden na drugim). Są zaprojektowane tak, aby były możliwie bezproblemowe, więc zdobycie tarczy jest najłatwiejszym sposobem na obejście tego.

Ja osobiście nie zasilam silników bezpośrednio z płyty; zamiast tego używam do tego sterowników silnika, takich jak L293D. Piny nie są tak naprawdę dobre do pobierania prądu i ogólnie lepiej jest zasilać czujniki bezpośrednio, niż za pośrednictwem pinów Arduino. Pamiętaj, że piny mają limit prądu, a jeśli je przeładujesz, wypalą się.

Korzystanie z L293D jest łatwe:

wprowadź opis zdjęcia tutaj

Podłącz piny 1,9,16 do źródła Vcc (dodatni zacisk dowolnego źródła 5V, którym zasilasz Arduino. Dla mnie jest to na ogół linia wyciągnięta z LM7805). Teraz podłącz piny 4,5,13,12 do GND (zacisk ujemny). Teraz podłącz styk 8 do źródła o wyższym napięciu (6 V, 12 V lub cokolwiek, co chcesz zasilić silniki). Należy pamiętać, że ujemne zaciski wszystkich źródeł napięcia muszą być zwarte do masy.

Teraz podłącz silnik przez dwa styki wyjściowe w jednym miejscu (3,4 po lewej). Podłącz piny wejściowe (2,7) do dwóch różnych pinów w Arduino. Po podaniu tego samego sygnału (WYSOKI lub NISKI) na oba piny, silnik zatrzymuje się. Jeśli podasz WYSOKI z jednego styku, a NISKI z drugiego, silnik przejdzie w prawo lub w lewo, w zależności od tego, który styk uzyskał który sygnał.

Jeśli chcesz silnik jednokierunkowy i chcesz zapisać piny, zewrzyj jeden z pinów wejściowych do GND. Teraz, gdy drugi pin wejściowy jest NISKI, silnik będzie wyłączony, a gdy będzie WYSOKI, silnik będzie włączony.

Jeśli chcesz, możesz podłączyć inny silnik, wykonując tę ​​samą procedurę na przeciwległym końcu układu.

L293D pobiera niewielką ilość prądu z Arduino i zasila silnik z prądu pobieranego przez pin 8, i zwykle jest idealny w takich sytuacjach.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.