Biblioteka Arduino dla silnika krokowego 28BYJ-48 i sterownika ULN2003: 3 kroki

Biblioteka Arduino dla silnika krokowego 28BYJ-48 i sterownika ULN2003: 3 kroki

Spisu treści:

Anonim

Silnik krokowy 28BYJ-48 ze sterownikiem ULN2003 wydaje się teraz dość powszechną konfiguracją. Silnik i sterownik są zarówno łatwo dostępne, jak i tanie. Jednak standardowa biblioteka silników krokowych arduino po prostu nie działa z tą konfiguracją! Najwyraźniej ma to związek z sekwencją wymaganą do obrotu 28BYJ-48.

Ten instruktaż pokaże Ci, jak napisać prostą bibliotekę, która ułatwi życie w przyszłych zastosowaniach 28BYJ-48. Widziałem kilka możliwych rozwiązań (nawet powtarzających sekwencję impulsów), ale nie byłem usatysfakcjonowany, więc postanowiłem napisać własną.

Zakładamy, że masz podstawową wiedzę na temat C ++ i teorii silników krokowych.

Możesz pobrać kod i implementację z blogu EngyFun pod adresem:

http: //engyfun.blogspot.com.au/2015/02/here-is-sou …

Kieszonkowe dzieci:

Krok 1: StepperMotor.h

Zacznijmy od napisania klasy StepperMotor.

Utwórz plik o nazwie StepperMotor.h i skopiuj kod na obrazie.

Jeśli znasz C ++, definicja klasy będzie mówić sama za siebie.

Krok 2: StepperMotor.cpp

Napiszmy teraz interfejs klasy.

Utwórz plik o nazwie StepperMotor.cpp i skopiuj kod na obrazy.

Spójrzmy na konstruktor w linii 4. Zaczynamy od przypisania pinów wybranych przez użytkownika do tablicy styków wejściowych w liniach od 6 do 9. Ułatwi to dostęp do numerów pinów w algorytmie jazdy.

W linii 12. wykonujemy iterację przez tablicę pinów wejściowych i ustawiamy każdy pin na tryb OUTPUT.

W linii 15 domyślnie ustawiamy czas trwania kroku na 50 ms.

W linii 18. mamy ustawianie czasu trwania kroku. To jest oczywiste.

Spójrzmy teraz na metodę krokową. Umożliwia to silnikowi krokowemu stopniowanie liczby przejść do metody.

W linii 28 definiujemy sekwencję rotacji przy użyciu tablicy 2d. Wiersze reprezentują krok, a kolumny reprezentują szpilki wyjściowe.

W linii 37 obliczamy współczynnik, który będzie wynosił +1 lub -1, w zależności od znaku przekroczonej liczby kroków. Ta wartość jest wymagana w algorytmie do kierowania kierunku iteracji przez tablicę sekwencji, tj. Do zmiany kierunku obrotu.

W linii 38 wykonujemy noOfSteps pozytywne, wymagane dla projektu.

W linii 44 rozpoczynamy pętlę, która będzie uruchamiana dla każdego początku sekwencji obrotu, tj. Na początku każdego 8 kroków.

W linii 45 rozpoczynamy kolejną pętlę, która przechodzi przez wiersze tablicy sekwencji.

W linii 46 opóźniamy, jak określa czas trwania.

W linii 47 przechodzimy przez numery pinów.

W linii 48 zapisujemy sygnał cyfrowy na bieżący numer pin.

Jeśli współczynnik jest ujemny, wiersze tablicy sekwencji są dostępne w przeciwnym kierunku w linii 48, gdy piszemy do pinów. 8 jest odejmowany przez liczbę wierszy … więc uzyskujemy dostęp od dołu do góry.

Krok 3: Dostęp do biblioteki z Arduino IDE

Teraz wystarczy dodać te pliki do katalogu biblioteki arduino IDE. To pozwoli nam zaimportować tę bibliotekę w IDE do użycia.

Przejdź do następującego katalogu:

C: Program Files (x86) Biblioteki Arduino

a następnie utwórz folder o nazwie StepperMotor.

Teraz umieść pliki.h i.cpp w utworzonym folderze.

Możesz teraz zaimportować bibliotekę z poziomu IDE. (szkic> importuj bibliotekę …> StepperMotor)

2 ludzie zrobili ten projekt!

  • johnnyfrx to zrobił!

  • Brdavid to zrobił!

Czy zrobiłeś ten projekt? Podziel się z nami!

Zalecenia

  • SKY CAM - rozwiązanie do kamer lotniczych

  • Lewitacja Arduino Air Bonsai

  • Klasa Internetu przedmiotów

  • Konkurs na obróbkę drewna

  • Konkurs Fandomu

  • Arduino Contest 2019

8 Dyskusje

0

jplaiss

3 lata temu

… Arduino ULNStepper ULNStepper.ino: 2: 26: błąd krytyczny: StepperMotor.h: Brak takiego pliku lub katalogu

#zawierać

Nadchodzi.

2 odpowiedzi 0

DikaM2 jplaiss

Odpowiedz 3 miesiące temu

Myślę, że biblioteka nie istniała w katalogu

0

JeremieL8 jplaiss

Odpowiedz 2 lata temu

to samo tutaj..

0

tahirulhaq

1 rok temu

Niesamowita praca !!!

0

Drumpeter

2 lata temu

Działa świetnie! Czy istnieje możliwość, aby skręcić szybciej niż 1 krok na mikrosekundę? Jeśli rozumiem, że poprawna biblioteka rozumie tylko liczby całkowite. Jak mogę to zmienić?

0

jplaiss

3 lata temu

Brakuje mi tutaj czegoś.

Czego powinienem użyć, aby utworzyć pliki.h i.cpp?

W jaki sposób mam połączyć to w całość, aby utworzyć bibliotekę, która zostanie zainstalowana w środowisku IDE?

Do tej pory zrobiłem dwa dokumenty Notatnika, które oznaczone etykietami z przyrostkami wyglądają tak samo jak każda inna biblioteka, którą mam. Próbowałem wstawić te dokumenty do głównego pliku, umieścić je w innym pliku wewnątrz głównego, mieć je na tym samym poziomie, co kod testowy i żonglować bitami tego w kilku iteracjach.

Proszę pomóż.

0

znak funkcyjny

3 lata temu

Bardzo miła informacja! W końcu udało mi się uruchomić ten stepper. Chciałbym użyć przycisków do sterowania prędkością / rpm. Jaką wartość należy zmienić, aby była szybsza? Mogę go spowolnić, zmieniając wartość w motor.setStepDuration (1), ale co z szybszym?

0

Billdwp

3 lata temu w kroku 2

Genialny, doskonały, pomocny; Dziękuję Ci!