Sterowanie dwoma silnikami 28byj-48 z uln2003 pilot IR - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Programowanie w Arduino (https://forum.arduinopolska.pl/dzial-programowanie-w-arduino) +--- Wątek: Sterowanie dwoma silnikami 28byj-48 z uln2003 pilot IR (/watek-sterowanie-dwoma-silnikami-28byj-48-z-uln2003-pilot-ir) |
Sterowanie dwoma silnikami 28byj-48 z uln2003 pilot IR - dRoooopED - 03-04-2024 Hey. Próbuję stworzyć system sterujący dwoma silnikami 28byj-48 z uln2003 do rolety ekranu projektora. Generalnie na programowaniu Arduino znam się wcale. Poszperałem poszukałem i znalazłem kod, który zgodnie z opisem odpowiada praktycznie mojemu zastosowaniu ( praktycznie bo twórca kodu użył aż 4 przycisków - patrząc po kodzie lecz mogę się mylić) Zaimplementowałem program do arduino - kompilacja i wgranie poprawne. Ok. Odczytałem swoje kody IR za pomocą innego kodu stworzonego wcześniej i postanowiłem podmienić je w kodzie zaciągniętym z innego forum. I Zonk.... wywala błąd. Mam prośbę o wsparcie znawców tematu. Generalnie zamysł jest taki: Klawisz 1 - o kodzie HEX B73522A0 silniki opuszczają roletę w dół ( czyli będące naprzeciwko siebie silniki wykonują obrót w przeciwne strony jeden w lewo o X kroków drugi w prawo o X kroków) Klawisz 2 - o kodzie HEX B63422A0 silniki opuszczają roletę w górę ( czyli będące naprzeciwko siebie silniki wykonują obrót w przeciwne strony jeden w lewo o X kroków drugi w prawo o X kroków) Klawisz 3 - o kodzie HEX 44C622A0 zatrzymuje pracę silników ( bo to można chyba też według autora wykonać - choć ta opcja nie będzie niezbędna). Załączam kod autora z innego forum do modyfikacji : Kod: #include <AccelStepper.h> //biblioteka do sterowania silnikiem krokowym Całość zbudowana na płytce Arduino Nano uln nr 1 wpięty w piny 6,7,8,9 uln nr2 wpięty w piny 10, 11, 12, 13 IR sygnał wpięty w pin 4 - zasilania pociągnięte z wejścia DC 5v Szczerze nie wiem czy wgl te dwa silniki uciągną ten ekran ale ryzyk-fizyk. Trzeba spróbować. Dodatkowo do znawców arduino - czy macie jakieś miejsce skąd można czerpać wiedzę na temat składni i ewentualnych części składowych języka - podobny jest do C ale chyba nie jest to to samo...? RE: Sterowanie dwoma silnikami 28byj-48 z uln2003 pilot IR - oscarX - 03-04-2024 (03-04-2024, 10:54)dRoooopED napisał(a): Hey. Dokumentacja arduino Jest to C++, kompilowane jest przez g++. Tyle, że Arduino IDE dostarcza bibliotek i głównego programu - czyli działa za framework. Trochę nie rozumiem jak to wszystko skonstruowałeś, że używasz dwóch silników sterowanych niezależnie? Chyba powinny być uruchamiane równocześnie, a wręcz wspólnie (oba silniki do jednego sterownika). I w ogóle silniki krokowe są dość słabe, w takim zastosowaniu lepsze byłyby zwykłe silniki DC. RE: Sterowanie dwoma silnikami 28byj-48 z uln2003 pilot IR - dRoooopED - 03-04-2024 (03-04-2024, 13:24)oscarX napisał(a):Ok czyli przesiąść się na DC - zapisane. Tak generalnie jak najbardziej chodzi o uruchomienie ich jednocześnie z tym, że jeden kręci w lewo drugi w prawo. Dlatego zastosowałem dwa sterowniki dla jednego sterownika przycisk nr. 1 generuje obrót np o 4000 kroków a u drugiego ten sam przycisk czytany z jednego odbiornika IR ma generować obrót o -4000 kroków (w drugą stronę). Jest to nieco skomplikowane. Dlatego piszę do was speców bo ja aż takiej mocy nie mam. Czyli generalnie uczyć się c++ jeśli chce dalej coś dłubać z Arduino?(03-04-2024, 10:54)dRoooopED napisał(a): Hey. RE: Sterowanie dwoma silnikami 28byj-48 z uln2003 pilot IR - oscarX - 03-04-2024 (03-04-2024, 13:53)dRoooopED napisał(a): Ok czyli przesiąść się na DC - zapisane. Tak generalnie jak najbardziej chodzi o uruchomienie ich jednocześnie z tym, że jeden kręci w lewo drugi w prawo. Dlatego zastosowałem dwa sterowniki dla jednego sterownika przycisk nr. 1 generuje obrót np o 4000 kroków a u drugiego ten sam przycisk czytany z jednego odbiornika IR ma generować obrót o -4000 kroków (w drugą stronę). Jest to nieco skomplikowane. Dlatego piszę do was speców bo ja aż takiej mocy nie mam. Czyli generalnie uczyć się c++ jeśli chce dalej coś dłubać z Arduino? Kierunek obrotów to nie problem - wystarczy wzajemnie odwrotnie podłaczyć te 4 przewody. Mogą być nawet do jednego ULN - on wytrzymuje 500mA, a uzwojenie silnika, według dokumentacji, ma 50 Ohm, czyli przy 5V nie weźmie więcej niż 100mA. RE: Sterowanie dwoma silnikami 28byj-48 z uln2003 pilot IR - dRoooopED - 03-04-2024 (03-04-2024, 16:01)oscarX napisał(a):(03-04-2024, 13:53)dRoooopED napisał(a): Ok czyli przesiąść się na DC - zapisane. Tak generalnie jak najbardziej chodzi o uruchomienie ich jednocześnie z tym, że jeden kręci w lewo drugi w prawo. Dlatego zastosowałem dwa sterowniki dla jednego sterownika przycisk nr. 1 generuje obrót np o 4000 kroków a u drugiego ten sam przycisk czytany z jednego odbiornika IR ma generować obrót o -4000 kroków (w drugą stronę). Jest to nieco skomplikowane. Dlatego piszę do was speców bo ja aż takiej mocy nie mam. Czyli generalnie uczyć się c++ jeśli chce dalej coś dłubać z Arduino? Dobra czyli rozumiem, że podłączenie 1 z 4, 2 z 3. 3 z 2, 4 z 1 gdzie pierwsze to kolejne kable silnika 1 a drugie to kolejne kable silnika 2 powinno zadziałać tak, że mam teoretycznie jeden silnik z jednego ULN a w praktyce dwa kręcące się w przeciwnym kierunku? Ok. Czy wszystkie 4 kable trzeba skrzyżować ? W sumie nie wpadłem na to a faktycznie jest to logiczne i zdecydowanie uprości całą elektronikę. No dobra to teraz pozostaje sam program. RE: Sterowanie dwoma silnikami 28byj-48 z uln2003 pilot IR - oscarX - 03-04-2024 (03-04-2024, 16:24)dRoooopED napisał(a): Dobra czyli rozumiem, że podłączenie 1 z 4, 2 z 3. 3 z 2, 4 z 1 gdzie pierwsze to kolejne kable silnika 1 a drugie to kolejne kable silnika 2 powinno zadziałać tak, że mam teoretycznie jeden silnik z jednego ULN a w praktyce dwa kręcące się w przeciwnym kierunku? Ok. Czy wszystkie 4 kable trzeba skrzyżować ? W sumie nie wpadłem na to a faktycznie jest to logiczne i zdecydowanie uprości całą elektronikę. Tak, koniecznie trzeba całkowicie odwrócić kolejność sterowania 1-2-3-4 vs 4-3-2-1. Można też zastosować dwa oddzielne ULNy i przeplot zrobić z ich wejściami - tak, że jeden pin kontrolera steruje po jedym wejściu na dwóch ULNach. Też spokojnie wystarczy prądu, a mniej będzie długich przewodów z większymi prądami. Czy to warto - pewnie nie, ale jest taka teoretyczna możliwość. Oczywiście zauważyłeś, że silnik ma 5 kabli - jeden jest wspólny, mówimy o 4 pozostałych. Te wspólne łączymy razem. RE: Sterowanie dwoma silnikami 28byj-48 z uln2003 pilot IR - dRoooopED - 04-04-2024 (03-04-2024, 23:05)oscarX napisał(a):Hmm to z przeplotem pomiędzy ULN też nie brzmi źle ale tu też zapewne crossowo trzebaby ogarnąć ponieważ chcemy żeby silnik kręcił w drugą stronę. No tak... zakładam że jeden z kabli na silniku to zasilanie kwestia czy któryś nie jest masą - muszę poszukać specyfikacji.(03-04-2024, 16:24)dRoooopED napisał(a): Dobra czyli rozumiem, że podłączenie 1 z 4, 2 z 3. 3 z 2, 4 z 1 gdzie pierwsze to kolejne kable silnika 1 a drugie to kolejne kable silnika 2 powinno zadziałać tak, że mam teoretycznie jeden silnik z jednego ULN a w praktyce dwa kręcące się w przeciwnym kierunku? Ok. Czy wszystkie 4 kable trzeba skrzyżować ? W sumie nie wpadłem na to a faktycznie jest to logiczne i zdecydowanie uprości całą elektronikę. RE: Sterowanie dwoma silnikami 28byj-48 z uln2003 pilot IR - oscarX - 04-04-2024 (04-04-2024, 10:03)dRoooopED napisał(a): Hmm to z przeplotem pomiędzy ULN też nie brzmi źle ale tu też zapewne crossowo trzebaby ogarnąć ponieważ chcemy żeby silnik kręcił w drugą stronę. No tak... zakładam że jeden z kabli na silniku to zasilanie kwestia czy któryś nie jest masą - muszę poszukać specyfikacji. Dla samego silnika nie ma większego znaczenia czy ten wspólny idzie na masę czy na zasilanie, ale jeśli sterujesz ULNem, który po prostu jest kluczem tranzystorowym na masę, to ten wspólny musi iść na zasilanie. |