Skocz do zawartości

Modul z L293D - jak podłączyć sterowanie do Arduino?


r-tea

Pomocna odpowiedź

Po pierwsze to jest L298N nie L293D, po drugie w linku co podałeś masz obrazki, które piny za co odpowiadają, masz tam nawet notę katalogową. Nie rozumiem twojego problemu.

Na rysunku te 4 piny, o które pytam są oznaczone jedynie jako INPUT i nie są opisane pojedyńczo.

A nota katalogowa dotyczy samego tylko układu scalonego.

[ Dodano: 03-07-2015, 20:55 ]

r-tea, Na samym dole masz filmik z przykładem użycia tego sterownika z Arduino. Wystarczy poszukać, a nie zakładać konto na forum i liczyć na gotowca

Dziękuję. Obekrzałem filmik. Mam pytanie. Autor filmiku twierdzi, że sterownik umożliwia jedynie sterowanie kierunkiem obrotów silników, a w opisie sterownika na stronie sklepu pisze również o prędkości obrotowej. Kto tu ma rację?

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

r-tea, Błagam, proszę więcej zaangażowania

Cechy produktu:

Moduł ze sterownikiem L298 umożliwia kontrolę kierunku obrotów i prędkości dwóch silników prądu stałego lub jednego dwu fazowego silnika krokowego

Kilka linijek dalej

+12V Napięcie zasilania silników.

+5V Zasilanie części logicznej za stabilizatorem - aktywne po wyjęciu zworki 5V.

GND Masa układu

Output A Wyjścia kanału silnika A.

Output B Wyjścia kanału silnika B.

A enable - Sygnał PWM do sterownia prędkością obrotową silnika A. Domyślnie podłączony do 5 V za pomocą zworki - oznacza, że silnik pracuję z maksymalną prędkością.

B enable - Sygnał PWM do sterownia prędkością obrotową silnika B. Domyślnie podłączony do 5 V za pomocą zworki - oznacza, że silnik pracuję z maksymalną prędkością.

Input - Sterowanie kierunkiem kanałów A i B

Link do komentarza
Share on other sites

r-tea, Błagam, proszę więcej zaangażowania
Cechy produktu:

Moduł ze sterownikiem L298 umożliwia kontrolę kierunku obrotów i prędkości dwóch silników prądu stałego lub jednego dwu fazowego silnika krokowego

Tę treść z opisu doskonale widziałem, ale autor filmiku twierdzi, że za pomocą tego modułu sterować można jedynie kierunkiem obrotów. ?????

Kilka linijek dalej

+12V Napięcie zasilania silników.

+5V Zasilanie części logicznej za stabilizatorem - aktywne po wyjęciu zworki 5V.

GND Masa układu

Output A Wyjścia kanału silnika A.

Output B Wyjścia kanału silnika B.

A enable - Sygnał PWM do sterownia prędkością obrotową silnika A. Domyślnie podłączony do 5 V za pomocą zworki - oznacza, że silnik pracuję z maksymalną prędkością.

B enable - Sygnał PWM do sterownia prędkością obrotową silnika B. Domyślnie podłączony do 5 V za pomocą zworki - oznacza, że silnik pracuję z maksymalną prędkością.

Input - Sterowanie kierunkiem kanałów A i B

To też widziałem.

Chodzi mi o wyjaśnienie każdego z tych 4 pinów OSOBNO.

Input - Sterowanie kierunkiem kanałów A i B

Link do komentarza
Share on other sites

Po zasileniu płytki podaj na dwa górne piny input +5 i 0V i zmierz wyjście Output A. Jeśli będzie tam napięcie, a na Output B nie będzie to znaczy, że znalazłeś swój kanał (dwa górne piny będą wtedy sterowały górnym Output'em).

Nie wiem co kto mówi na filmie, ale główną "wyrocznią" jest zawsze datasheet układu. Zdejmij na chwilę zworkę A lub B Enable i sprawdź miernikiem, który pin jest połączony z +5V (tylko odłącz wcześniej zasilanie, bo zepsujesz miernik), sprawdź też, czy drugi pin odpowiada wyjściu scalaka oznaczonemu Enable A lub Enable B. Na pin, który jest połączony z Enable scalaka podaj sygnał PWM (przy otwartej zworce oczywiście) przy podaniu 0 i 5V na odpowiednie piny input (te które odkryłeś wcześniej). Powinno wtedy zadziałać sterowanie prędkością obrotową silnika.

Jak już wykonasz powyższe kroki to napisz co Ci wyszło.

Link do komentarza
Share on other sites

Treker, Witam szukam wsparcia. Jeżeli chodzi o Arduino to doświadczenie mam słabe na podstawie kursu nr 2 – 8 chciałem stworzyć sterownik bramy przesuwnej. Stworzyłem kod +Internet ale moja wiedza się kończy. Zastosowałem moduł L 298N.Chodziło mi o rozbudowanie tego kodu aby nie czasowo sterować otwieraniem /zamykaniem a na podstawie czujników położenia bramy. Jeden przycisk włącza zamykanie jeżeli jest otwarta; następne wciśnięcie brama stop, kolejne brama otwiera się. Jeżeli jest zamknięta analogicznie w/w. Kursy są bardzo przyjazne treściwe ale brak mi wiedzy .Pozdrawiam jeżeli żle trafiłem to sory.

#define LEFT 0
#define RIGHT 1
void setup() 
pinMode(5, OUTPUT);// regualcja prędkości silnika (ENA)
pinMode(6, OUTPUT);//wyjscia sterowania kiernkiem (IN1/IN2;IN3/IN4)
pinMode(7, OUTPUT);
pinMode(4, INPUT_PULLUP);//wejście przycisku pilota(switcha)
pinMode(3, INPUT_PULLUP);//brama otwarta(np.kontaktron sprawdza)
pinMode(2, INPUT_PULLUP);//brama zamknięta (np.kontaktron sprawdza)
pinMode(1, INPUT_PULLUP);//IR sprawdzenie 
}
void loop() //Tutaj jest główna funkcja programu, która wykonuje się cały czas
{
while (digitalRead(4) == HIGH) {} //Jeśli przycisk jest wciśnięty
startMotor(RIGHT, 64);
delay(1000);
stopMotor();
while (digitalRead(4) == HIGH) {} //Jeśli przycisk jest wciśnięty
startMotor(LEFT, 64);
delay(1000);
stopMotor();
}
void startMotor (boolean dir, uint8_t _speed)
{
 if(dir)
 { digitalWrite(6, HIGH); digitalWrite(7, LOW); analogWrite(5, _speed); }
 else
 { digitalWrite(7, HIGH); digitalWrite(6, LOW); analogWrite(5, _speed); }
}
// Ta funkcja ma za zadanie zatrzymanie silnika;
void stopMotor()
{  
 { digitalWrite(6, HIGH); digitalWrite(7, HIGH); analogWrite(5, 0);}
}
Link do komentarza
Share on other sites

krzysztofg, strasznie namieszany ten kod. Spróbuj rozpisać sobie najpierw słownie algorytm (w punktach) jak to ma działać. Inaczej będzie ciężko zacząć.

Z drugiej strony, co to za mechanizm sterowania bramą, któremu wystarczaj sterowanie z L 298N? Zmierzyłeś prądy napędów?

Link do komentarza
Share on other sites

Witam, jeżeli chodzi o algorytm. To Arduino sprawdza dwie krańcówki pinMode3 i pinMode2 jeżeli są otwarte( czyli brama otwarta np.połowy) to switch pinMode4 otwiera bramę,(jeżeli pinMode3(brama otwarta) jest zwarty to swich pinMode4 zamyka bramę pod warunkiem że bariera podczerwieni pinMode1nie zgłasza przeszkody, jednocześnie w trakcie zamykania switch pinMode4 zatrzymuje zamykanie, kolejne wciśnięcie switcha pinMode4 cofa bramę do pozycji otwarta czyli pinMode3 zwarty. Jeżeli nie wciśniemy switcha to brama powinna zamknąć się. Czyli pinMode2 zwarty pinMode3 otwarty. Przy założeniu, że pinMode2 zwarty zamknięta wciśniecie switcha pinMode4 otwieranie baramię analogicznie wciśnięcie switcha pinMode4 zatrzymanie otwieranie. W trakcie zamykania/otwierania włączenie lampy ostrzegawczej pinMode8(przekaźnik Moduł przekaźnika RM0 5V 10A/125VAC). To pokrótce, co do sterownika L298N to masz rację jak wcześniej pisałem to moje początki kupiłem go z Arduino zbudowałem makietę z starej drukarki atramentowej i go wykorzystuję. On ma 2A i rzeczywiście to chyba mało, bo mój silnik z przekładnią podczas pracy na luźno ma do 2 A 12V. Zamierzam zatosować Motor Driver Semiconductor BTS7960B Stepper 43A H-Bridge Drive PWM For Arduino Input voltage: 6V-27VMaximum Current: 43A Input level: 3.3V-5V zastanawiam się to właściwy wybór (może propozycja) Jeżeli chodzi o sterowanie radiowe to pilot Moduł radiowy 4-kanały 315 MHz + pilot. Pozdrawiam

Link do komentarza
Share on other sites

Jeśli dobrze widzę to to jest tylko półmostek, czyli zawiera tylko 2 tranzystory. Żeby sterować silnikiem DC w obu kierunkach potrzebujesz jeszcze jeden taki półmostek odpowiednio połączony i dopiero to da ci możliwość pełnej kontroli nad silnikiem.

Link do komentarza
Share on other sites

Hej, wszystkim:) pozwoliłem sobie trochę odkopać temat bo mam problem z arduino modułem sterowania silnikiem na l298n.

Problem wygląda tak że kupiłem podwozie z dwoma silnikami lecz pojazd nie jeździ prosto, postanowiłem zwolnić jeden silniczek za pomocą sygnału PWM na A Enable, niestety silniczki nawet przy wypełnieniu 255 są o wiele słabsze niż ze zworką. Prawy silniczek startuje chwilę później niż lewy. Ktoś wie czemu się tak dzieje?

int PP = 11;
int LP = 12;
int PR1 = 5;    //PWM A Enable
int PR2 = 6;    //PWM B Enable


void setup(){
 Serial.begin(9600);
pinMode (LP,OUTPUT);
pinMode (PP,OUTPUT);
pinMode (PR1,OUTPUT);
pinMode (PR2,OUTPUT);
}

void loop() {

 analogWrite(PR1,255);
 digitalWrite (PP, HIGH); 

 analogWrite(PR2,255);
 digitalWrite (LP, HIGH); 

}
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.