Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Rozwiązano] Arduino + L293D - PWM z konkretnym ustawieniem INPUTów

16 Sty 2019 18:17 279 3
  • Poziom 2  
    Witam forumowicze,

    mam problem z PWMem na jednym z 2 silniczków podłączonych przez L293D.

    Posiadam analogowy potencjometr, z którego sczytuję sobie wartość (wcześniej bez potencjometru na sztywno ustawiałem sobie wartość z zakresu 0-255) i podaję ją jako PWM (piny 5 i 6) do silniczków.

    Wszystko wydaje się grać, ale jest jedna dziwna rzecz. Mianowicie silniczek podłączony do pierwszego układu (ENABLE 1, INPUT 1 i 2, OUTPUT 1 i 2) działa poprawnie z PWMem jeśli piny INPUT 1 i INPUT 2 (kierunek prądu) ustawię odpowiednio na LOW i HIGH. Jednak jeśli ustawię je na HIGH i LOW (czyli tak jak jest w poniższym kodzie) to idzie pełne napięcie na silniczek (w moim przypadku 6V) i w ogóle nie ma reakcji na PWM. Co ciekawe, na drugim silniczku (ENABLE 2, INPUT 3 i 4, OUTPUT 3 i 4) tego problemu nie ma. Czy dam HIGH/LOW czy LOW/HIGH na inputach normalnie PWM jest dobrze przekazywany na ENABLE 2.

    Czy to może oznaczać, że może sterownik L293D jest uszkodzony? Sterownik jest nówka funkiel, nie został przegrzany.

    Probowałem również na innych pinach (zamiast 2 i 4 dałem np. 7 i 8), zamieniałem też silniczki pod wyjściem, ale nic to nie dało.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    EDIT: mam jednak wrażenie, jakby ten ENABLE 1 w ogóle nie działał. Wygląda na to, że oba silniczki działają po PWM tylko sygnałem przekazanym na ENABLE 2 (pin 5 u mnie - jeśli podam tam 0, to oba silniczki się nie kręcą, jeśli 255 to oba z pełną mocą), ENABLE 1 jakby na nic nie wpływał. A jak na INPUT 1 i INPUT 2 dam HIGH/LOW to totalnie olewany jest PWM. Wymieniłem sterownik na nowy taki sam, nic nie dało również.
  • Moderator Projektowanie
    Odłącz silnik, napisz prostą pętlę która będzie co sekundę zmieniać stan portu i sprawdź miernikiem, czy port faktycznie działa. Może w trakcie eksperymentów sobie go uszkodziłeś. Nie zaszkodzi sprawdzić w ten sposób wszystkich portów użytych w projekcie.
  • Poziom 32  
    Sprawdź przewody łączące arduino z l293, te do stykówek bardzo często maja nieprawidłowo zaciśnięte konektory. Najlepiej podłącz tymi przewodami które na pewno działają. Robisz na na stykówce ? jeżeli tak, to może być kolejny problem. Jak będziesz pewien, że wszystko jest ok to wtedy szukaj przyczyny w l293.

    Pozdr
  • Poziom 2  
    Sorry za brak odpowiedzi.

    Uporałem się z tym, okazało się, że błędnie traktowałem pin ENABLE jako pin do PWM'a, PWMem steruje INPUT1/2. Rozłączyłem i podłączyłem od nowa, zmieniłem program i zadziałało. Miałem też problem z masami, ale ostatecznie problem udało się rozwiązać.

    Zgadzam się z rs6000, na stykówce ten sterownik silnika nie wszedł gładko, musiałem go mocno docisnąć.