• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Bezprzewodowe sterowanie silnikami krokowymi
#11
Jak chcesz zrobić ten projekt sam to wszystko znajdziesz w podanym kursie i przykładach do bibliotek. O miganiu led jest tylko jedna lekcja, choć z miganiem led można zrobić i 100 projektów by poznać dobrze środowisko. Przykładowo do silnika krokowego instalujesz bibliotekę accelstepper i po zapoznaniu się z gotowymi funkcjami możesz sobie zaprogramować określone działania silnika. Jest też wiele przykładów pokazujących co do czego. W przykładach do modułów bezprzewodowych znajdziesz jak wysłać i co ważniejsze odebrać dane. W przykładzie do uart w arduino jest jak odbierać dane przez uart, w moich postach jak odebrany ciąg znaków tekstu zamienić na polecenia, również z wartościami liczbowymi (coś o serialevent). W kursie jest przykład z millis i jak zrobić projekt wielozadaniowy bez używania delay. Dwa tygodnie jest nierealne jeśli się uczysz programować, może zmodyfikowałbyś w tym czasie jakiś gotowiec, jak wiesz co do czego. Jakbyś miał na koncie urządzenie z silnikiem krokowym, drugie z transmisją danych i wszystko umiał modyfikować wg własnego widzimisie to zupełnie coś innego, wtedy chodziłoby tylko o połączenie dwóch fragmentów układanki. Ale na razie to jeszcze nie wiesz czego nie wiesz. Wgraj gotowca, obserwuj jak się urządzenie zachowuje, próbuj rozgryźć co do czego jest w kodzie. W Arduino jest proste zrobienie blinka, uruchamianie przykładów, powielanie gotowców - to i tak bardzo dużo z płytką za 20zł i darmowym środowiskiem do programowania.
 
Odpowiedź
#12
update:

Obecne połączenia wyglądają jak na rysunku poniżej:

   

moduł NRF w arduino UNO jak i NANO podłączony jest do pinów 7 i 8 + piny SPI. 

do tej pory mam kod do emitera (arduino nano):

https://pastebin.com/jkGs1y70


oraz określone warunki dla krańcówek. 

Nadal walczę z silnikami,

obecnie staram się wysterować mały silnik (moduł ULN2003 + 29BYJ-49) 

https://pastebin.com/6isPHibG

aktualny kod odbiornika (UNO) wygląda tak jak w linku powyżej, niektóre elementy kodu są zamknięte gwiazdkami, żeby sprawdzić czy silnik reaguje na ten kod. dla obecnego kodu silnik kręci się ale nie za poleceniem joysticka. po usunięciu gwiazdek, silnik się nie porusza pomimo ruchów joystickiem. 

Pozdrawiam oraz proszę o opinie, komentarze i pomysły.
 
Odpowiedź
#13
Nie rób sobie jaj
Kod:
 if(MAIN_DELAY !=0)
 {delay(MAIN_DELAY);}

tylko przerób ten kurs, czego nie rozumiesz z użycia millis()? Każda lekcja kursu, nawet jeśli nie używasz pilota IR czy UART uczy jakiś konstrukcji języka C/C++, wyjaśnia dostępne funkcje w Arduino, ostatnia stara się zebrać wszystko w całość. Tu masz wielozadaniowy projekt, nie możesz do zarządzania czasu używać delay. Delay jest już problemem przy miganiu dwoma ledami.
Kod:
 pinMode(leftLimitSwitch, INPUT);
 pinMode(rightLimitSwitch, INPUT);
Z kursu byś wiedział, co tu jest nie tak. Schemat nie pasuje do tej części programu. Wyjaśnienia znajdziesz w części o przyciskach, button, w bibliotece bounce2.
 
Odpowiedź
#14
Czy moglibyście mi doradzić jak napisać kod na obracanie się silnika krokowego bez określania liczby kroków, które ma zrobić? chciałbym aby silnik kręcił się zawsze kiedy dostaje sygnał z joysticka do momentu, aż joystick nie zostanie zwolniony. wszystkie przykłady które do tej pory znalazłem bazują na komendzie move to- czyli ograniczone ruchy silnika do pewnej liczby kroków.
 
Odpowiedź
#15
Wystarczy w każdej pętli wskazywać odległy punkt dla ruchu jeśli przycisk jest wciśnięty (np. aktualny + 1000, lub -1000 -zależy jak wychylisz wolant) i przypisywać aktualny punkt jako docelowy gdy przycisk jest puszczony. Do zatrzymania w sumie lepiej taki by wyhamował łagodnie zgodnie z założeniem, np. +50.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości