Arduino i obsługa silnika krokowego

Czyli co i jak podłączyć żeby działało
Awatar użytkownika
samezrp
Postów w temacie: 4
Posty: 1022
Rejestracja: 29 paź 2016, 15:57
x 66

Re: Arduino i obsługa silnika krokowego

Post autor: samezrp »

Ja wiem, ze może nie czas itd, ale IMHO wiedza z tego kursu jest zarąbiście podstawowa i aktualna i fajnie ją mieć, może nawet nie pamiętać, ale wiedzieć skąd co i jak :).
Arduino ułatwia, ale jak coś nie działa, to zaciemnia.

A kod powyżej jest w C i robi tak:
-zainicjowanie rejestrów (sygnały wej/wyj każdego procesora są podzielone na rejestry, u nas 1 rejestr to 8 sygnałów (dlatego 8 bit));
-ustawienie rejestrów D na wyjście, C na wejście;
-struktura o nazwie krok zawiera ustawienia wyjść portu D, ma 8 wartości (od 0 do 7). I przejście z wartości 0 do 1 powoduje przekręcenie silnika o jeden krok w prawo, z 1 do 0 w lewo, z 1 do 2 w prawo, z 2 do 3 w prawo, z 7 na 6 w lewo itd;
-naciśnięcie klawisza + lub - (podłączonego do portu C procesora) powoduje przechodzenie po wartościach struktury w prawo lub lewo i przy okazji kręcenie się silnika, bo na wyjściach zmieniają się wartości.

-----
a swoją drogą zobacz, ten kod co masz, to dokładnie jest odzwierciedlenie togo co napisałem wyżej i zmianę stanu na wyjściu. Strzałki czerwona i niebieska pokazują kierunek zmian i kierunek ruchu silnika.
Clipboard02.jpg
I jeszcze jedno, w rozwiązaniu pokazanym przeze mnie wszystkie piny zmieniają stan w tym samym momencie, w Twoim sekwencyjnie, jeśli dość szybko to nie ma problemu, ale jeśli procesor jest wolny, to zajmuje to kilka taktów i silnik może drgać w chwili zmian a w najgorszym przypadku może się w ogóle nie obrócić, mimo że w teorii wszystko jest OK.
Ale chyba włażę z zbyt wielkie szczegóły :)
Awatar użytkownika
animos
Konto z ograniczeniami
Postów w temacie: 3
Posty: 237
Rejestracja: 19 kwie 2016, 13:24
x 5

Re: Arduino i obsługa silnika krokowego

Post autor: animos »

W programie arduino (po zainstalowaniu na kompie) mamy: Plik > Przykłady > Stepper > stepper_oneRevolution
Podłączenie jest na YouTube (szukanie wg. nazw Arduino nano, nema23 ...)
Działające Arduino nano z tb6600 i nema23 (zdjęcie z 21.11.2016):
nema23arduino.jpg
Arduino jest dużo prostsze w obsłudze niż to co było dawniej w zakresie układów programowalnych.
Wyjściem jest przeważnie program przykładowy - można też połączyć parę przykładowych programów w jeden, i stworzyć własny soft [jak z klocków].
Jedynie trzeba wybrać właściwy typ arduino (nano, leonadro, ...) i strzałką wysłać do procesora.
Na pocieszenie powiem, że nawet osoby które dawno temu programowały arduino po pewnym czasie abstynencji też muszą powtórnie tego się uczyć.
Biblioteki to kawałki softu, które ktoś napisał po to aby innym było łatwiej - dołączamy je znając przeważnie nazwę (możemy zobaczyć, przeanalizować co w nich jest jak chcemy, mamy czas).
Powrotu do starszych rzeczy nie ma co żałować.
Zresztą oprogramowanie już inaczej powstaje ( dla przykładu Java) - dodaje się fragment kodu (czasem z zakładki) i sprawdza, czy całość działa - jak nie to powrót do poprzedniego kroku, zmiana na inną funkcję itd.
Bardzie przypomina to składanie z komponentów niż pisanie algorytmu linijka po linijce.
Tak samo w arduino można zmienić parametr i sprawdzić czy działa - jak nie to cofnąć o krok do tyłu i coś innego zmienić, itd.
Wyjściem jest działający przykład np., jak nie działa i wracamy do YouTube i patrzymy co nie tak zrobiliśmy, poprawiamy.
Garreth
Postów w temacie: 1
Posty: 175
Rejestracja: 20 kwie 2016, 14:49
x 30

Re: Arduino i obsługa silnika krokowego

Post autor: Garreth »

https://www.elecrow.com/wiki/index.php? ... tor_Driver tu Masz Marek przykładowy kod.

Operuje na portach, więc będzie działać szybciej niż digitalWrite. W przykładzie akurat port B - musisz podpiac ten swoj wynalazek w piny 8,9,10,11, tak jak w Twoim szkicu. Używajać pinów przez port wystawiasz wszystkie wyjścia "na raz" (cudzysłów, bo nic w przyrodzie nie dzieje się jednocześnie, ale i tak będzie to szybciej niż robiąc 4 osobne digitalwrite), może tak zadziała.

Jak nie, to sam układ sprawdź.. możesz zresztą podpiąć 4 przyciski i zapodać sekwencję poza arduino 0001, 0011, 0010, 0110,0100,1100,1000,1001
Awatar użytkownika
marek91
Administrator
Postów w temacie: 8
Posty: 2563
Rejestracja: 15 kwie 2016, 21:22
Lokalizacja: Gostyń
x 1208
Kontakt:

Re: Arduino i obsługa silnika krokowego

Post autor: marek91 »

Uff Dzięki Panowie za zainteresowanie, wczoraj wieczorem długo siedziałem i udało mi się to opanować, dołączyłem też kilka przycisków i też dałem radę to opanować :git: Można by powiedzieć że zrobiłem więcej niż miałem w planach :)
Awatar użytkownika
samezrp
Postów w temacie: 4
Posty: 1022
Rejestracja: 29 paź 2016, 15:57
x 66

Re: Arduino i obsługa silnika krokowego

Post autor: samezrp »

:) I jak fajnie rozumieć trochę bardziej, jak to działa, prawda? ;)
Awatar użytkownika
marek91
Administrator
Postów w temacie: 8
Posty: 2563
Rejestracja: 15 kwie 2016, 21:22
Lokalizacja: Gostyń
x 1208
Kontakt:

Re: Arduino i obsługa silnika krokowego

Post autor: marek91 »

Prawda, zaraz poszukam jakiejś książki dla lamusów :)
mscichu
Postów w temacie: 1
Posty: 89
Rejestracja: 20 kwie 2016, 13:05
x 9

Re: Arduino i obsługa silnika krokowego

Post autor: mscichu »

Do języka C polecam książki Mirosława Kardasia. Praktycznie nauka to prowadzenie za rękę, tylko trzeba czytać od deski do deski, a nie wybiórczo :piwo:
Awatar użytkownika
samezrp
Postów w temacie: 4
Posty: 1022
Rejestracja: 29 paź 2016, 15:57
x 66

Re: Arduino i obsługa silnika krokowego

Post autor: samezrp »

A ja jednak podstawy podstaw: "Język C" Kernighan, Ritchie.
WillingMagic
Awatar użytkownika
way
Konto z ograniczeniami
Postów w temacie: 1
Posty: 137
Rejestracja: 06 paź 2016, 10:57
Lokalizacja: Galicja
Drukarka: Corexy X3D XL - była
x 7

Re: Arduino i obsługa silnika krokowego

Post autor: way »

Ja też polecę Kardasia, jest bardzo aktywny w internecie - kanał na youtube i własne forum gdzie można o wszystko zapytać, stworzone jako alternatywa dla elektrody.
Awatar użytkownika
animos
Konto z ograniczeniami
Postów w temacie: 3
Posty: 237
Rejestracja: 19 kwie 2016, 13:24
x 5

Re: Arduino i obsługa silnika krokowego

Post autor: animos »

Do arduino jest sporo książek - głównie wydanych dość niedawno = w sumie to dla leniwych nie lubiących szukać w google.

C - bardzo ambitne podejście, myślę, że przyda się nie tylko do arduino.

Bez google się i tak pewnie nie obejdzie. Sam dzisiaj się zabrałem za ardiuno nano z 1602 z i2c (mniej kabli) - na razie lcd.print działa po 1 literze, ale taka jest różnorodność bibliotek, rozwiązań - można pożytecznie spędzić czas w zimowe wieczory. Nie ma co narzekać, tu sporo nie działa od razu.

Kursy arduino są też w HackerSpace'ach - na początku jest zawsze nadkomplet chętnych. Końca zwykle nikt nie doczeka, bo zamykają to z powodu niskiej frekwencji. Ale już parę zajęć daje jakie takie pojęcie - warto się czegoś nowego nauczyć. I nie ma co się zrażać - czasem kolejne wypięcie i ponowne połączenie kabla sprawi, że zadziała schemat.

I2c chyba coś mam z komunikacją, 1 literę udało mi się osiągnąć reanimując starą drukarkę mera błonie - ale i specjalista z asseco sobie nie poradził z tym problemem, może drygol albo miś mieli by jakieś szanse coś takiego zrobić, jakby to ich to zainteresowało.
ODPOWIEDZ

Wróć do „Elektronika sterująca, wyświetlacze”