Skocz do zawartości

Wykorzystanie pinów L293D piny ENABLE


Isero

Pomocna odpowiedź

Witam serdecznie,

niedawno zbudowałem autko za pomocą modułu NodeMCU V2 oraz sterownika silników L293D, tylko że piny enable (1 i 9) zostawiłem wolne, ponieważ sądziłem, że jest to zwykły PWM, który zrealizowałem programowo w aplikacji Blynk. Dzisiaj natomiast przeczytałem ze piny te musza być podpięte do prawidłowej pracy sterownika, ale w moim przypadku działa wszystko prawidłowo. Przetestowałem każde wyjście na diodzie i każdy sygnał, oraz PWM działa poprawnie. Dlatego chce się dowiedzieć czy to ja cos źle przeczytałem, czy też jest coś nie tak z moim układem?

Link do komentarza
Share on other sites

Nie rozumiem tego fragmentu:

56 minut temu, Isero napisał:

tylko że piny enable (1 i 9) zostawiłem wolne, ponieważ sądziłem, że jest to zwykły PWM, który zrealizowałem programowo w aplikacji Blynk.

Możesz wyjaśnić co masz na myśli? Szczególnie chodzi mi o drugą część cytowanego fragmentu.

Do pinów opisanych jako Enable, powinny być podłączone sygnały PWM, którymi steruje się prędkością silników. Alternatywnie można je podłączyć na stałe do Vcc, co spowoduje, że silniki będą kręciły się z maksymalną prędkością. Podłączenie tych pinów do masy "wyłączy" oba napędy.

Link do komentarza
Share on other sites

(edytowany)

Slider w aplikacji Blynk to mój PWM, natomiast na schemacie obok jest pokazane jak połączyłem sterownik L293D.  Załączony kod ukazuje tylko jak skręca w lewo, ale reszta kierunków jazdy działa na tej samej zasadzie.

...
  pinMode(A1, OUTPUT); // silnik A1 14
  pinMode(A2, OUTPUT); // silnik A2 12

  pinMode(B1, OUTPUT); // silnik B1  4
  pinMode(B2, OUTPUT); // silnik B2  0
...
  BLYNK_WRITE(V1)  // 0~1023 (joystick)
{
  int x = param[0].asInt();
  X = x;
  int y = param[1].asInt();
  Y = y;
}

BLYNK_WRITE(V2)//      slider PWM od 0 do 1023
{
  predkosc = param.asInt();
}
...
  if ( X < 311 &&  Y > 711)  // w lewo
{
  analogWrite(A1, predkosc);
  analogWrite(A2, 0);
  analogWrite(B1, 0);
  analogWrite(B2, 0);
  

obraz.thumb.png.87268d7056dea3ce1549830861283193.pngobraz.thumb.png.c40a56857119cff62fa3e4fceb29462c.png

 

Edytowano przez Isero
Link do komentarza
Share on other sites

Co w takim razie robi ten slajder, jeśli nie masz podłączonych sygnałów PWM do mostka? Co dzieje się w programie z tą wartością, którą ustawiasz suwakiem?

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

Załączyłem kod do mojego powyższego komentarza. Zmienia on napięcie jakie jest podawane na wyjściu NodeMCU a wejsciu L293D. Przynajmniej ja to tak rozumie ponieważ nie odczułem potrzeby sprawdzenia tego miernikiem.

Link do komentarza
Share on other sites

Tak, na płytce stykowej do każdego wyjścia z L293d podłączyłem diode i sygnały były podawane poprawnie. Po złożeniu całego autka wszystko działa poprawnie włącznie z zmianą prędkości za pomocą slidera. Dlatego zaciekawiło mnie, dlaczego konieczne jest podpięcie pinów enable skoro u mnie działa wszystko bez nich.

Link do komentarza
Share on other sites

No to mamy kolejną osobę która myśli, że za pomocą analogWrite() wysyła jakieś napięcia. Ta nazwa funkcji będzie chyba do końca świata zbierała swoje krwawe żniwo a jej autor będzie się zmażył w piekle...

Wysłasz PWM, warto czasem doczytać niż "ja to tak rozumie ponieważ nie odczułem potrzeby sprawdzenia tego". Nawiasem mówiąc typowy woltomierz także by oszukał, bo pokazał zmnieniające się napięcie. Dlatego warto miec nawet najtańszy oscyloskop niż błądzić we mgle. Dzisiaj można przecież kupić coś już za 100-200zł. Mostek H nie jest żadnym regulatorem analogowym więc napięcie mu nie jest potrzebne. Wszystkie jego piny wejsciowe są cyfrowe, dwustanowe. Wyjścia także.

Mostkiem L293 możesz sterować (a pośrednio silnikiem) na dwa sposoby:

1. Podajesz PWM na pin EN a na wejścia A i B wysyłasz stałe poziomy 0/1 za pomocą których ustalasz kierunek, np:

digitalWrite(A1, 0);
digitalWrite(B1, 1);
analogWrite(EN1, 157);

W tym przypadku 4 kombinacje sygnałów A i B - w zależności od kierunku podłączenia silnika - dają przykładowo:

A=0, B=0 -> STOP
A=1, B=0 -> LEWO
A=0, B=1 -> PRAWO
A=1, B=1 -> STOP

To jest o tyle fajne, że masz tylko jedno wyjście PWM, jedną funkcję ustalającą jego poziom i jedno miejsce w którym wysłasz kierunek na piny. Nie musisz robić dziwnego if-a sterującego rozdziałem PWMów na dwa (lub cztery w przypadku dwóch silników) wyjścia.

2. Drugi sposób jest taki jaki (chyba bezwiednie) zastosowałeś u siebie, tj. piny EN są nieużywane (a niepodłączone akurat w tym scalaku pozwalają na poprawną pracę nie blokując kanału) a do A1 lub B1 - w zależności od wymaganego kierunku - zapodajesz PWM. Tutaj zmiana kierunku polega więc na wysyłaniu PWM na jeden pin albo na drugi co wymaga aż dwóch pinów PWM na każdy silnik.

Oba sposoby działają na pozór identycznie, choć nieco inaczej wygląda praca silnika i mostka w każdym z nich. Nie popełniłeś błędu, ale korzystając z przypadkowych pinów wyjściowych skazujesz się na programowo generowane PWM, co nie zawsze jest dobrym pomysłem. Nie masz tu choćby kontroli nad częstotliwością a i obciążenie procesora jest większe. Na szczęście ESP ma szybkie CPU więc to nie jest problem. Patrząc jednak bardziej ogólnie, to funkcja analogWrite() jest pewnym sposobem zastąpienia brakujących wyjść analogowych (DAC) i do tego była (zgodnie z nazwą) przeznaczona. Do sterowania silnikami itp rzeczami powinieneś jednak stosować sprzętowe wyjścia PWM. Nie mamy schematu więc nie wiemy czy tak jest w Twoim przypadku.

Edytowano przez marek1707
literówki..
  • Pomogłeś! 1
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.