Skocz do zawartości

Problem z zasilaniem mostków H L293DD do 4`ro nożnego robota kroczącego


minju

Pomocna odpowiedź

Witam wszystkich 🙂 To mój pierwszy post , choć ze stroną stykam się nie pierwszy raz to mam nadzieje ,że napisałem w dobrym dziale, jakby co za pomyłkę przepraszam. Postaram się uogólnić najpierw, bo może kogoś to zainteresuje, zanim opowiem o problemie abyście wiedzieli co jest na schemacie.

0c453234ddd5f25b.jpg

Aktualnie robię drugiego cztero-nożnego robota kroczącego ale tego z z 3 stopniami swobody na jednej nodzę sterowanego za pomocą 12 serwomechanizmów HS-485-HB-DELUXE (3 serwa na jedna nogę ). Ponieważ to robot kroczący, zależało mi na precyzji ustawiania kątów serwa,sterowania prędkością jaką ma się poruszać, jak i informacji gdzie i w jakim położeniu znajduję się noga , dlatego z każdego serwomechanizmu wywalony jest układ sterowania i stan położenia orczyka odczytywany jest przez ADC podłączony do potencjometru(odczytane napięcie konwertowane jest na dany kąt)

Teraz jak to działa :

Do sterowania robotem zaprojektowałem 2 płytki 2 stronne połączone ze sobą za pomocą gold pinów. Góra to jakby logika dolna to zasilacz i mostki H. Wszystko na dale pokazane na obrazkach.

Górna płytka to pięć ATmeg16 połączonych i komunikujących się ze sobą za pomocą interfejsu SPI .Cztery Atmegi przypadają na 4 nogi , każda po jednej, i piąta master wysyłająca do każdej z pozostałych trzy dane 8 bitowe dla ustawienia się danej nogi. Jak już się ustawią sygnalizują to wystawiając jedynkę na port, który podłączony jest do master Atmegi( w schem np. W_NOGA_1) . DIPswitche są po to aby była możliwość zaprogramowania każdej atmegi z osobna. Kondensatory przy każdym ADC są aby wyeliminować zakłócenia z potencjometru do którego zasilanie doprowadzone jest przez kabel ekranowany i i cewki z dolnej płytki. Reszta na schemacie to pierdołki ,czyli wyprowadzenia miodki LED i inne, a no i wspólny kwarc dla wszystkich atmeg ,który też pewnie nie będzie chodził 🙂

Dolna płytka ,zasilająca mostkiH L293DD jak i górną płytkę .

To niby prosta sprawa. Zrobione są dwa zasilania , jedną dla logiki wszystkich układów , czyli ATmeg i mostków (noga VSS) i drugie tylko do mostków dla silników (noga VS). Pierwszy to prosty zasilacz na LM7806 , trochę kondziorków i zenerek na 5,5V na końcu , no i wszystko podłączone do logiki. Drugie wejście to bezpośrednie podłączenie dla baterii( powiedzmy 7V) trochę wyrównane przez kondensatory. Dla zabezpieczenia w dwóch przypadkach dałem jeszcze po diodzie prostowniczej.

I teraz o co kaman , a więc ...

Górna płytka , nie zasilana(nie zasilana przez ) nie wpięta w drugą tylko poprostu zasilana z programatora lub z komputerowego 5V , działa bez zarzutu, cycus glancus, co bym nie zaprogramował.

Z drugą natomiast jest problem , mianowicie na wyjściu zasilacza jest 5 V dla zasilania logiki , gdzie ścieżki dochodzą do VSS ,nie podtaczając jeszcze baterii dla wyjść VS , na wszystkich wyjściach VS mostków znajduję się napięcie 1V, dla wszystkich wejść dla PWM (ENABLE ) mam albo 1,7 V albo 2 V i dla wszystkich INT`ów mam rożne wartości ale wąchających siew zakresie 0,4 V tak i taka sama wartość dla OUTPUT. Uważam , że jak zasilam logikę to po za nóżka VSS na wszystkich innych nogach powinno być zero V przynajmniej na PWM i na INT`ach. Jak podłącze dodatkowo na jeszcze napięcie 5 V na silniki ( czyli noga VS na mostku) to wejście PWM na każdym mostku ma napięcie 3 V a INT`y wahają się od 0,1V do 0,5 V. a OUTPUT`y mają 0,1 V, gdzie dalej uważam ,że wejścia PWM jak i INT`y przynajmniej powinny mieć 0V. Jeżeli włożę jedną płytkę w drugą to poprawne wartości wcześniej wyświetlane na górną oczywiście nie działają znaczy sienie wskazują poprawnej wartości logicznej czyli albo "0" albo "5V".

Muszę też nadmienić ,że początkowo 5 mostków zostało wlutowane odwrotnie i podłączone ,ale wynika to z faktu ,że biblioteka w Eaglu , w której miałem ten element , żle została narysowana i zamienione były wyjścia VS z wejściami VSS, czyli w efekcie ( czyli raz się pomyliłem i wlutowałem 1 mostek źle ale tak naprawdę sie okazało potem ,ze dobrze 🙂 ) ,że trzeba było przelutować tylko Mostki o 180 stopni i było dobrze . Ale tak czy siak , jedna strona mostków ma swoje odzwierciedlenie lustrzane z drugą , tak więc przykładowo napicie podawane dla VSS trafiało na VS , a to ,że napięcia mogą tam być podawane do 36 V nie powinny popsuć żadnego z mostków, mało tego powinno to i tak to działać jako tako.

Aha i jeszcze jedno , wylutowałem z płytki jeden z mostków , wlutowałem w drugą stworzona tylko do testingu płytkę dla jednego mostka i po podłączonych w podobny sposób napięć wyniki pomiarów były podobne.

I teraz w czym problem, czy mostki są popsute czy po prostu narysowałem cos nie tak ???

Schematy ideowe i montażowe są poniżej, będę bardzo wdzięczny za szybko odpowiedź i wskazówki co do problemu jak i do narysowanych schematów

Pozdrawiam

PS: Żółte nie podłączone linie są tak naprawdę zworkami i są podłączone jeśli godzi o górna płytkę , w dolnej są 4 zworki pokolorowane na niebiesko.

__________

Komentarz dodany przez: Treker

Zrobiony dol.pdf

Zrobiony dol._ideowy.pdf

Zrobiony_UP.pdf

Zrobiony_UP_ideowy.pdf

Link do komentarza
Share on other sites

Takie schematy jak część z mikrokontrolerami znacznie lepiej się projektuje tak:

http://mikrokontrolery.blogspot.com/2011/04/jak-projektowac-czytelne-schematy.html

Gdyby Twój schemat był tak przygotowany, to 2 minuty i byłby sprawdzony. Ale w takiej formie jak teraz jest, nie daje rady - za dużo czasu 🙂

Etykiety już zdefiniowałeś, więc po co Ci prowadzenie połączeń?

W ATMEGA_N1 zapomniałeś o Vcc i GND - zauważyłem tylko przypadkowo, w tym gąszczu połączeń.

I pytanie z innej beczki, choć nie jako specjalista bo robotyk ze mnie marny:

Myślałeś o tym, by zastosować inne mikrokontrolery, które mają więcej PWM?

Trochę dużo tych mikrokontrolerów oraz niewykorzystanych pinów i olbrzymia ilość marnującej się mocy obliczeniowej 🙂

Link do komentarza
Share on other sites

1. Wywalenie oryginalnych sterowników serw jest moim zdaniem komplikowaniem sobie życia.

2. Gorszych mostków niż l293 nie było? strata 1,4V przy zasilaniu z 7V nie jest tym co lubię.

3. Jeżeli tak bardzo bronisz się przed multipleksowaniem pwm, to możesz użyć Attiny2313.

4.

Pierwszy to prosty zasilacz na LM7806 , trochę kondziorków i zenerek na 5,5V na końcu , no i wszystko podłączone do logik

No i tu wymiękłem. Cała część zasilająca nie ma prawa działać.

ad 1. Podpinając tak zenera i stabilizator, spalisz jedno lub drugie.

ad 2. Prąd BAS15 to tylko 100mA> wątpię, że się w tylu zmieścisz.

ad 3. Spadek napięcia na diodzie 0,7V

ad 4. Dropout tego stabilizatora to 2V. 2V+0,7V=2,7V 7V-2,7V=4,3V. Poszukaj sobie o stabilizatorach LDO.

ad 5. Jakie cewki? 1mh?

5. Podciągnięcie nóżek L293 do masy opornikiem 1-10k powinno rozwiązać problem.

Ogólnie to pomysł fajny, tylko realizacja jak na razie tragiczna.

Edit:

Attiny 2313 nie ma ADC, to będzie się nadawał Attiny24.

Link do komentarza
Share on other sites

Witam, przepraszam za zwłokę ponieważ chodzę do pracy , dodatkowo na angielski i robię jeszcze pracę inżynierską. Od dzisiaj będę miał weekend i postaram się odpowiedzieć na wszystkie pytania ,edytując tego posta, jak i wprowadzić korektę w pierwszym.

Na szybko tylko odpowiem , że wywalanie sterowników wcale nie komplikuje życia, a wręcz daje o wiele większe możliwości, precyzji i panowania nad wszystkim za pomocą kilkadzieciat linijek kodu . Co do mostków używam ich do sterowania pierwszy raz , wcześniej bawiłem sieserwomechanizmami. Wcześniej testowałem l298 i byłby bardzo fajny , ale nie posiadał diód zabezpieczających jak ten L293DD, a to ,ze wielkość płytki jest ograniczona bo che aby zmieściła mi się na grzbiecie ,więc nie chciałem rysować dodatkowych 100 ścieżek .

Co do PWM`a to jakbym chciał to napisał bym go na jednej Atmedzę programowo dla wszystkich . Ale ponieważ do ustawienia każdej nogi potrzebne są 3 pomiary , i 3 regulatory PI , program musi działać bardzo szybko aby noga nie była jakby " bezwładna" bo program napisałem tak, aby ustawionego silnika w danym położeniu nie można było przestawić ani w jedna ani w drugą stronę , co z reszta testowane mi działa . Więc 3 PWM są dla mnie akurat.

Temat zasilania wytłumaczę już później , ale jest doprowadzony małymi kabelkami z za switcha do pina przy atmedzę.

Co do Attiny24 , jak wyżej, potrzeba mi bardzo dużej mocy obliczeniowej , do tego w przyszłości będą tam czujniki i inne zabawki ,narazie ma tylko chodzić.

Co do zasilacza- to się przyznaję 🙂 ale do logiki niczego specjalnego nie potrzebuję.

BAS15 - potrzebowałem tylko mniej więcej rozstawu dziurek- dioda jest większa

Co do LDO wiem ,ze maja mniejsze spadki ale celowo wybrałem liniowy a nie impulsowy ale to się rozpiszę potem.

Wiem że te pytanie jak i moje odpowiedzi wynikają z faktu , nie dokładnego i niewyczerpującego przedstawienia tematu (bo skąd mieliście wiedzieć) tak wiec przepraszam. Mam ograniczony czas a opisywanie wszystkiego to jest naprawdę bardzo dużo czasu , no i do tego może nikomu nie chciało by tak dyzo czytać.

Co do mostków, dzisiaj bardzo mądry Pan 🙂 również powiedział mi że po podłączeniu rezystorów powinno to wszystko śmigać , tak więc jak będzie chwila się odezwę i zobaczymy co z tego wyjdzie.

Dzięki za odpowiedzi.

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

... program napisałem tak, aby ustawionego silnika w danym położeniu nie można było przestawić ani w jedna ani w drugą stronę , co z reszta testowane mi działa.

Z ciekawości - jaki język?

Link do komentarza
Share on other sites

C++

A co mi tam , dla Twojej ciekawości mogę się nim podzielić 🙂

Można powiedzieć,że jestem początkujący w dziedzinie robotyki ,C ++ do obsługi procków też się sam uczyłem więc możliwe ,ze ktoś będzie miał lepsze rozwiązania na temat tego kodu, ale napisałem sam i działa wiec mi to narazie to styka 🙂

Jak już wszystko bezie cacy w przyszłości śmigać wstawię całego robota, może ktoś na podstawie niego zrobi coś jeszcze bardziej fajniejszego 🙂

Wszystko w miarę możliwości opisywałem .

Edit:

Aha i to co na górze napisałem odnośnie sterowania nogi , komunikacji miedzy prockami i inne , wszystko było testowane na jednej nodze na zrobionej specjalnie płytce. Wiec w jak w temacie , mam problem tylko z zasilaniem mostków- co właśnie sprawdzam.

Atmega podrzędna.c

Link do komentarza
Share on other sites

Co do Attiny24 , jak wyżej, potrzeba mi bardzo dużej mocy obliczeniowej , do tego w przyszłości będą tam czujniki i inne zabawki ,na razie ma tylko chodzić.

No i z tym się nie zgodzę.

Wydajność:

Attiny24 20MIPS/20Mhz 120 instrukcji

Atmega16 16MIPS/16Mhz 132 instrukcje

Attiny bierze ponad 3x mniej prądu na 1Mhz.

Zestawy instrukcji, jakby Cię interesowały różnice.

http://support.atmel.no/knowledgebase/avrstudiohelp/mergedProjects/AVRASM/Html/ATtiny13_Instruction_Set.htm

http://support.atmel.no/knowledgebase/avrstudiohelp/mergedProjects/AVRASM/Html/ATmega32_ATmega16_instructions.htm

Powiedziałbyś po prostu, że wygodnie Ci było użyć AT16, bo są łatwo dostępne i tanie (11pln).

Link do komentarza
Share on other sites

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...

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.