Skocz do zawartości

TB6612FNG dwukanałowy sterownik silników dla jednego silnika jeden sterorownik


Pomocna odpowiedź

Napisano

zaczynam z robotami i tak na poczatek robię line follower'a na arduino ale niestety dla mnie na PWM mam o tym trochę pojęcia ale jednak nie wystarczająco . Znalezłem to http://botland.com.pl/content/42-arduino-i-sterowanie-silnikiem-przy-pomocy-modulu-tb6612

i rozumiem to ale nw jak napisac za pomocą PWM np delikatnie w lewo chodzi mi o to abym mógł sterować predkoscią w tym przypadku . bo bez PWM wyglada to tak

a z PWM wiem ze tez mozna zrobic cos na tej samej zasadzie

z góry dziekuje za pomoc

No ale przecież zrobiłeś PWM. Funkcja analogWrite() generuje PWM na wskazanym pinie. Jeśli silnik obraca się za szybko, daj mniejsze liczby: zamiast 120 spróbuj 10, 20 czy 50 i napisz jak poszło.

  • Lubię! 1

Chyba sobie żarty robisz. Przecież może nie działać wszystko - od czujników, przez ich odczyt, podejmowanie decyzji aż po sterowanie silnikami. Mamy zgadywać? To Ty masz robota na stole i tylko Ty możesz go sensownie uruchomić.

Zacznij od początku:

1. Zapomnij o silnikach. Napisz prosty program sprawdzający czy czujniki są dobrze odczytywane. Masz tam jakieś diodki LED? Jak nie masz, to już zaliczyłeś pierwszy błąd - dospawaj je i to kilka. Od nich będzie zależało czy wiesz co robi Twój program. Wysyłaj na nie stany czujników. Wszystkich lub tylko niektórych i sprawdzaj czy dobrze się zapalają. testuj to w różnych położeniach linii, oświetleniach itd.. aż zawsze będzie OK. Możesz na to poświęcić cały wieczór - to ważne, bo to czy Twojego robota.

2. Dołącz fragment kodu który na podstawie dobrze wczytanego stanu czujników podejmuje decyzje co robić z silnikami. Zapomnij o PWM. Wysyłaj na diodki wypracowane decyzje (prosto, prawo, lewo itp) i wielokrotnie sprawdź w różnych sytuacjach i położeniach linii czy decyzje są słuszne. Poruszaj robota ręką i testuj do upadłego aż będziesz miał pewność, że diodki zapalają się OK.

3. Zapomnij o czujnikach i napisz prosty program który jedzie mniej więcej prosto. Zapamiętaj ile trzeba było ustawić na obu kanałach by tak się działo. Potem napisz inny który powoli zakręca. Potem następny, który zakręca ostro. Potem to samo w drugą stronę. Teraz masz już liczby które są dobrymi sterowaniami PWM dla różnych przewidywalnych manewrów.

4. Dopiero teraz zacznij łączyć czujniki, decyzje i PWM wciąż testując co chwila każdą zmianę: czy wciąż działa co już działo i czy działa to nowe co właśnie dodałeś. Żaden program nie działa od razu.

5. Napisz jak poszło. Wcześniej nie masz prawa jęczeć, że coś nie działa, bo nie uruchomiłeś swojego programu. Nie zrobimy tego za Ciebie. Nie Tobie pierwszemu i nie ostatniemu kod nie działa. Zabieraj się do roboty. Skoro umiesz napisać kawał programu to musisz umieć go uruchomić by robił co sobie zaplanowałeś.

  • Lubię! 1
  • Pomogłeś! 1

zrobiłem wszystko od poczatku ale nadal nie reaguje tylko jedzie do przodu

a PWM i kierunki silników mogą być podłączone pod wejścia cyfrowe?

bo już szuka problemu we wszystkim.

Nie pleć. Fizycznie nie jest możliwe byś to co napisałem zrobił w dwie godziny, a tyle minęło odkąd wrzuciłem tu te 5 punktów. To plan na wiele wieczorów pisania kodu, poprawiania, debugowania, strojenia i testowania działania.

Pokaż choćby wyniki działania punktu 1: pokaż schemat robota, opisz jaki plan testów czujników założyłeś, pokaż kod (być może niejeden) testujący czujniki, pokaż miejsce gdzie i jak to sprawdzasz, przy jakim oświetleniu, opisz założone działanie diodek LED i rezultaty testów itd. A jeśli próbujesz ściemniać, daruj sobie kolejne prośby o pomoc.

---------------------------

EDIT: Bez sensu, że szuka we wszystkim (ale kto??). Ma zrobić to po kolei, bazując następne kroki na pozytywnych wynikach poprzednich. Jeśli coś prostego nie działa, wszystko bardziej skomplikowane zbudowane na tym też działać nie będzie. Jeszcze raz przeczyta plan, zrozumie punkt 1 i do roboty. Najwcześniej jutro wieczorem pokaże wyniki testów czujników, tak? Dopuszczalne są pytania pomocnicze.

Pozwolę sobie zacytować:

[...] Napisz prosty program sprawdzający czy czujniki są dobrze odczytywane. Masz tam jakieś diodki LED? Jak nie masz, to już zaliczyłeś pierwszy błąd - dospawaj je i to kilka. Od nich będzie zależało czy wiesz co robi Twój program. Wysyłaj na nie stany czujników. Wszystkich lub tylko niektórych i sprawdzaj czy dobrze się zapalają. testuj to w różnych położeniach linii, oświetleniach itd.. aż zawsze będzie OK. Możesz na to poświęcić cały wieczór - to ważne, bo to czy Twojego robota.

sroka, jeśli oczekujesz pomocy, to wykaż się zaangażowaniem i szacunkiem dla doświadczonych użytkowników. Jeśli będzie kontynuował wypowiedzi w stylu: "dz ale rzecz w tym ze nw czy dobrze pisze na pwm", to szybko zakończymy współpracę.

Informacje o sterowaniu silnikami z Arduino opisałem w kursie:

Kurs Arduino – #8 – Sterowanie silnikami DC, pętla for

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...