Spisu treści:

Prowadzenie małych silników za pomocą TB6612FNG: 8 kroków
Prowadzenie małych silników za pomocą TB6612FNG: 8 kroków

Wideo: Prowadzenie małych silników za pomocą TB6612FNG: 8 kroków

Wideo: Prowadzenie małych silników za pomocą TB6612FNG: 8 kroków
Wideo: 9 MAŁYCH silników, które mają DUŻO cylindrów 2024, Grudzień
Anonim
Prowadzenie małych silników za pomocą TB6612FNG
Prowadzenie małych silników za pomocą TB6612FNG

TB6612FNG to układ scalony sterownika podwójnego silnika firmy Toshiba. Istnieje wiele tablic zaciskowych i jest to jeden z najpopularniejszych wyborów do napędzania małych silników.

Istnieje wiele zasobów internetowych na temat rozpoczęcia pracy z TB6612FNG, ale postanowiłem to napisać, aby lepiej skompilować to, na co natknąłem się.

Skoncentruję się na logice sterowania, a także szczegółowo wyjaśnię bibliotekę sterowników silników Sparkfun TB6612FNG w tej instrukcji.

Krok 1: Wymagane części

Oto, czego będziemy dzisiaj używać:

1) Silniki Micro Metal

2) Sterownik silnika TB6612FNG

3) Kabel Arduino i USB

4) Źródło zasilania silników

5) Deska do krojenia chleba

6) przewody połączeniowe

Krok 2: Płytka zaciskowa TB6612FNG

Płytka zaciskowa TB6612FNG
Płytka zaciskowa TB6612FNG

Jak wspomniałem wcześniej, dla TB6612FNG dostępnych jest wiele płytek typu breakout różnych producentów. Wszystkie mają na sobie mniej więcej te same elementy, a także podobny pinout.

Kondensatory są przylutowane do płytki w celu ochrony przed hałasem z silników, więc nie będziesz musiał lutować tych ceramicznych kondensatorów do silników.

Układ scalony jest również wyposażony w wewnętrzne diody chroniące przed wstecznym polem elektromagnetycznym silników. Ale posiadanie dodatkowych środków bezpieczeństwa nikomu nie szkodzi. Nie dodałem ich bo moje silniki nie są zbyt duże i brakuje mi diod:|

Krok 3: Wyjścia pinów

Wyprowadzenia pinów
Wyprowadzenia pinów

Płytka zaciskowa TB6612FNG ma bardzo wygodny pinout. Wszystkie wyjścia silnika, wejścia i złącza zasilania są ładnie zgrupowane, aby zapewnić maksymalną łatwość użytkowania.

Zrobiłem ilustrację wyprowadzeń i sposobu ich podłączenia, mam nadzieję, że przyda się przy podłączaniu wszystkich tych przewodów:)

Krok 4: Schematy

Schematy
Schematy
Schematy
Schematy

Jestem całkiem nowy w używaniu Fritzing. Uważam, że schematy obwodów z Fritzinga są dość trudne do zrozumienia, ale widok płytki prototypowej jest wygodny dla Instructables. Nie wahaj się zadawać pytań, jeśli którekolwiek z połączeń przewodowych wygląda na mylące.

Krok 5: Okablowanie

Podłączanie go
Podłączanie go

Połącz wszystko według schematów. Jest dużo przewodów, upewnij się, że sprawdzasz dwukrotnie po każdym połączeniu.

Do wejść sterownika silnika użyłem następujących pinów Arduino:

Sterownik silnika -> Numer pinu Arduino

1) PWMA -> 5

2) INA1 -> 2

3) INA2 -> 4

4) PWMB -> 6

5) INB1 -> 7

6) INB2 -> 8

Rzeczy, które mogą pójść nie tak w tym kroku: 1) Nie odwracaj polaryzacji podczas podłączania Vm i GND ze źródła zasilania. Możesz usmażyć swojego kierowcę silnika.

2) Upewnij się, że podłączyłeś PWMA i PWMB do pinów PWM na arduino.

3) Pamiętaj, aby połączyć Arduino GND i GND ze sterownika silnika, jeśli używasz innego źródła zasilania dla każdego z nich.

Krok 6: Pobieranie i instalacja biblioteki

Pobierz bibliotekę ze strony GitHub Sparkfun.

Po pobraniu pliku zip otwórz swoje Arduino IDE.

Wybierz opcję Szkic > Dołącz bibliotekę > Dodaj bibliotekę. Zip i dodaj pobraną bibliotekę.

Po pomyślnym zainstalowaniu powinien pojawić się w Plik> Przykłady, jako „Biblioteka silników SparkFun TB6612FNG”

Jeśli masz trudności z pobraniem i zainstalowaniem biblioteki Arduino, zapoznaj się z krokiem 5 tej instrukcji.

Krok 7: Uruchamianie przykładowego kodu

Teraz, gdy mamy gotową bibliotekę, możemy przesłać przykładowy kod, aby ją przetestować.

1) Otwórz przykład 'MotorTestRun' z biblioteki 'Sparkfun TB6612FNG Motor Driver Library' wymienionej w twoich bibliotekach.

Uwaga: Jeśli nie używasz tych samych numerów pinów, o których mowa w kroku 5, pamiętaj, aby zmienić definicje pinów zgodnie z konfiguracją.

2) Wybierz swoją tablicę z menedżera zarządu

3) Prześlij swój kod, a silniki powinny zacząć się poruszać

Po przesłaniu silniki powinny zacząć się poruszać. Jeśli nie, sprawdź ponownie okablowanie.

Krok 8: Wyjaśnienie biblioteki

Teraz wyjaśnię, jak wykorzystać bibliotekę do własnego kodu.

Najpierw zacznij od zaimportowania biblioteki i inicjalizacji pinów na arduino

#włączać

#zdefiniuj AIN1 2 #zdefiniuj AIN2 4 #zdefiniuj PWMA 5 #zdefiniuj BIN1 7 #zdefiniuj BIN2 8 #zdefiniuj PWMB 6#zdefiniuj STBY 9

Aby zainicjować obiekty silnika, musisz ustawić przesunięcia dla każdego silnika. Wyobraź sobie, że wykonujesz polecenie do przodu na silniku, który kręci się w odwrotnym kierunku. Możesz go ręcznie przełączyć lub możesz po prostu zmienić przesunięcie z tego miejsca. Sprytny mały hack QoL dodany przez SparkFun. Wartości tych przesunięć to 1 lub -1.

Następnie musisz zainicjować każdy z silników z następującymi parametrami;

Silnik = Silnik (pin 1, pin 2, pin PWM, przesunięcie, pin czuwania)

const int offsetA = 1;

const int offsetB = 1; Motor motor1 = Motor (AIN1, AIN2, PWMA, offsetA, STBY);

I na tym kończysz inicjowanie biblioteki. Nigdy więcej kroków w funkcji setup(), po prostu uruchamiamy kod w funkcji loop().

Metoda motoryczna ma następujące funkcje. Majsterkuj, aby sprawdzić je wszystkie.

1).drive(wartość, czas)

Motor_name = nazwa twojego obiektu motorvalue= 255 do -255; wartości ujemne spowodują ruch silnika w odwrotnym czasie = czas w milisekundach

2).hamulec()

Funkcja hamulca nie bierze żadnych argumentów, hamuje silniki.

3) hamulec(, <nazwa_silnika2)

Funkcja hamulca przyjmuje nazwy obiektów silnika jako argumenty. Hamuje silniki przekazane do funkcji.

4) do przodu(,, czas) do przodu(,, prędkość, czas)

Funkcja przyjmuje dwie nazwy obiektu silnika, opcjonalnie prędkość PWM i czas w milisekundach i uruchamia silnik w kierunku do przodu przez upłynięty czas. Jeśli wartość prędkości jest ujemna, silnik pojedzie do tyłu. Domyślna prędkość jest ustawiona na 255.

5) wstecz(,, czas) wstecz(,, prędkość, czas)

Funkcja przyjmuje dwie nazwy obiektów silnika, opcjonalnie prędkość PWM i czas w milisekundach i uruchamia silnik w kierunku do przodu przez upływający czas. Jeśli wartość prędkości jest ujemna, silnik pojedzie do przodu. Domyślna prędkość jest ustawiona na 255.

6) lewo(,, prędkość) prawo(,, prędkość)

Funkcja akceptuje dwie nazwy obiektów silnika i prędkość. Ważna jest kolejność obiektów motorycznych przekazywanych jako parametry. Aby sterować pojedynczymi silnikami, użyj zamiast tego.drive().

Zalecana: