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

[Atmega8] Sterowania serwami.

19 Cze 2008 21:25 7118 27
  • Poziom 10  
    Witam wszystkich
    Jestem baaardzo początkującym "elektronikiem" i chciałbym zmontować prosty układzik do sterowania serwomechanizmami.
    To co udało mi się wymyślić przedstawiam na rysunku poniżej. Mam kilka pytań odnośnie tego wszystkiego.
    Mianowicie:
    1. Do stabilizatora napięcia podłączam 2 kondensatory tak jak jest w datasheet stabilizatora 7805CV. Rozumiem że tu nie ma się do czego przyczepic. Jeśli jest inaczej to proszę o wskazówki.
    2. PIN1 (RESET) w Atmega8 podłączam przez rezystor 10kOhm do VCC oraz przez kondensator 2,2uF do uziemienia. Czy kondensator nie jest za duży?
    3. Wyjścia sterujące serwami to ostatnie 6 nóżek Atmegi (będę potrzebował raczej 4 ale na wszelki wypadek lepiej wyprowadzić 6). Czy to jest poprawnie?
    4. W Atmega8 są wyjścia AVCC i AREF. Czy muszę je też podłączyć pod 5V? Jeśli tak to czy przez jakiś rezystor/kondensator?
    5. W Atmega8 są 2 nóżki GND. Czy oba podłączyć do uziemienia?
    6. Jaki typ kondensatorów montować (ceramiczne czy inne jakieś)? Jakie to ma znaczenie?

    Wielkie dzięki za pomoc.
    To moja pierwsza zabawa z elektroniką, ale (jakby to powiedzieć) muszę to zrobić, aby przeżyć XD
    Każda rada cenna :)
    Pozdrawiam

    [Atmega8] Sterowania serwami.


    Poprawiłem tytuł:
    https://www.elektroda.pl/rtvforum/topic1015361.html
    [c_p]
  • AM TechnologiesAM Technologies
  • Pomocny post
    Poziom 30  
    1. Przed stabilizatorem dodałbym elektrolit ~470uF...
    Jeżeli serwa będą zasilane z tego samego stabilizatora to trzeba dołożyć za nim spory elektrolit...
    Nie jestem zresztą pewien czy 1A stabilizator wystarczy na 4 serwa...

    2. Jeżeli masz zamiar programować go w układzie (ISP) to zdecydowanie za duży... 10nF

    3. Na których pinach będziesz generował sygnał to już twój wybór...

    4. AVCC do zasilania bezpośrednio jeżeli nie korzystasz z przetwornika A/D... jeżeli jednak tak to zajrzyj do dokumentacji jak atmel zaleca filtrować zasilanie...
    Na AREF dajesz tylko kondensator do masy 10-100nF...

    5. Zdecydowanie tak... raczej do masy zasilania niż do uziemienia...

    6. To zależy gdzie... na pewno ceramiki tuż przy nóżkach zasilania uC...

    A tak poza tym to radzę poczytać przyklejone temat dla początkujących...
    Oj gromy się posypią... ;)
  • Pomocny post
    Poziom 34  
    Co ja bym zrobił, gdybym sam robił ten projekt:
    1. Przed stabilizatorem elektrolit 1000uF + ceramiczny 330nF (za stabem 100uF + 100nF)
    2. atmega8 (tak jak i inne avr'ki) ma wbudowany układ resetu, dodatkowo można załączyć BOD poprzez fusebity. Jeśli układ nie będzie programowalny w układzie, to reset bym podłączył na stałe do VCC, jeśli ma być programowalny, to opornik 2k2 do plusa i bez kondensatora.
    3. nie robi to znaczenia, chociaż z doświadczenia ze sterowaniem serwomechanizmami wiem, że łatwiej się nimi steruje, gdy wyjścia są w tym samym porcie (można zyskać pare cykli optymalizując kod w asmie).
    4. Nie korzystasz z części analogowej, więc generalnie wszystkie piny VCC spinasz razem tak samo GND razem. Z AREF nigdy nie korzystałem, więc zostawiam wiszący (kondensator jest potrzeby w celu dodatkowego niwelowania zakłóceń sygnału referencyjnego, tu nie potrzebny). Pomiędzy każdą parę GND-VCC po jednym 100nF nie zaszkodzi.
    5. jw.
    6. Znaczeniem jest indukcyjność wyprowadzeń kondensatora - kondensatory blokujące szpilki na liniach zasilających muszą mieć jak najmniejszą indukcyjność (ceramiczne), gdyż wtedy skuteczniej ucinają szpilki. Montuje się je jak najbliżej - ścieżki też mają indukcyjność. Większe kondensatory służą do magazynowania ładunku gdzie większe znaczenie ma pojemność - tu raczej elektrolity.
  • Użytkownik usunął konto  
  • AM TechnologiesAM Technologies
  • Poziom 38  
    A widziałeś kiedyś, żeby procek brał 1A?:> Heh...żeby brał 100mA?
  • Poziom 30  
    Zakładając, że zasilamy tylko uC to jak najbardziej...
    Można by spokojnie dać 78L05...
    Ale zakładając, że serwa są zasilane z tego samego stabilizatora... no tu pojawia się już problem...
    Ja do serw dawałem osobny stabilizator...
  • Poziom 38  
    Ja też bym tak zrobił...
    Dla minimalizacji przepięć na uC:)
  • Użytkownik usunął konto  
  • Poziom 38  
    Kolego jak Ci AVR pobiera 100mA to współczuję:>
    Typowy pobiera KILKA max KILKANAŚCIE (chyba katowany).

    Anyway Offtop się robi.
    Ja bym dał oddzielny stab. 78l05 dla cpu i oddzielny dla mechaniki.
  • Poziom 14  
    Serwo zależy jakie duże standardowe modelarskie bedzie Ci w impulsie pobierac tak ok 200mA max ale to tylko w pojedynczych szpilkach jakis naglych ale tak czy siak dałbym osobny stabilizator wydzielenie mocy 0.8A (co prawda w impulsie wiec to nie tak hop)ale przy spadku 7V da okolo 5,6W tu musi byc radiator juz przy 0,5W stabilizator jest cieply tak do 1W mozna stosowac bez radiatora . Tak jak koledzy wczesniej pisali sterowanie serwami dac na jeden port bedzie wygodniejsze w sterowaniu .
  • Poziom 36  
    Serwo modelarskie jak każdy układ wykonawczy pobiera prąd proporcjonalny do obciążenia i potrafi w szczycie pobierać nawet kilka A. Wiele zależy od momentu którym się cechuje i producenta umownie mówiąc wielkości )
  • Poziom 33  
    Witam
    Dodałbym jeszcze kwarc, jedna sprawa to stabilność częstotliwości, druga to dla uzyskania sensownego kroku sterowania trzeba zastosować dość wysoki zegar, dla instrukcji sterowania serwami w Bascomie o ile pamiętam zaleca się 10MHz.
    Piotr
  • Poziom 10  
    Wow! Ile odpowiedzi :)
    Wiedziałem, że na pasjonatów z elektrody można liczyć. Dzięki za rady i że mnie nie zbesztaliście :P
    Zabieram się do roboty... jak coś z tego wyjdzie to wynik zamieszczę tutaj. Co do stabilizacji oddzielnej na serwa to nawet o tym nie pomyślałem, a to wydaje się być najlepszym pomysłem :)
    A mój układ będzie sterował 2 serwami a nie 4. Więc potrzebne są 2 nóżki, a nie 4 jak pisałem (my mistake).
    Jakby ktoś miał coś do dodania to proszę się nie krępować :D
    Dzięki jeszcze raz.
    Pozdrawiam
  • Użytkownik usunął konto  
  • Poziom 10  
    Witam jeszcze raz :)
    Wszystko chodzi ładnie pięknie oprócz 1 serwa.
    Na Vcc mam 5V, sygnał sterujący z Atmegi ma napięcie ok 4,9V czyli jest raczej w porządku. Kupiłem kilka serw Tower Pro SG50 i SG90 i one chodzą na tym ślicznie. Ale mam też jeszcze 1 serwo Tower Pro SG5010. Podłączam i nic :| Serwo działa na pewno, gdyż podłączałem do samochodzika sterowanego zdalnie i tam ono działa. Mało tego: podłączyłem mój układ do sterowania serwami w tym samochodziku i tam też układ działa.
    Podsumując: serwo SG5010 nie działa w moim układzie, działa w układzie samochodzika, mój układ działa z serwami samochodzika.
    Macie może jakieś pomysły czym to jest spowodowane? Napisałem program przykładowy, który zmienia pozycję serwa (zmieniam długość fali z 1.25ms na 1.5ms przy okresie 20ms). Kąt obrotu wynosi ok 30*.
    Jeszcze jedno pytanko:
    Chcę zrobić tak, że jeśli na port C.5 pojawi się sygnał to włączy się port C.4. Jak fizycznie to wykonać? Podłączyć 5V na nóżkę 5?
    Z góry wielkie dzięki za odpowiedzi :)
    Pozdrawiam
  • Pomocny post
    Użytkownik usunął konto  
  • Poziom 10  
    Dzięki za odpowiedź :)
    Chodziło mi tylko o interpretację fizyczną. Piszę w BASCOM AVR ale tu już myślę, że sam sobie poradzę.
    A co do serwa SG5010: czy możliwe jest że sygnał sterujący musi mieć większe napięcie niż 5V? Serwo jest zasilane napięciem 5V i Umax sygnału sterującego też ma 5V. Może chodzi o to aby zwiększyć Umax sygnału sterującego do np 8V...
    Ale wtedy bym musiał jakiś tranzystor chyba montować...
    Czy mógłby się ktoś wypowiedzieć kto się zna na tym?
    Z góry dzięki.
    Pozdrawiam
  • Użytkownik usunął konto  
  • Poziom 27  
    technics6 napisał:
    Balu napisał:
    Kolego jak Ci AVR pobiera 100mA to współczuję:>
    Typowy pobiera KILKA max KILKANAŚCIE (chyba katowany).


    Miałem na myśli "Absolute maximum ratings" z dokumentacji, nie typowe aplikacje. Jeżeli kolega początkujący podłączy np. kilka super jasnych led-ów to może taki prąd popłynąć (oczywiście trzeba uważać żeby nie przekroczyć 20mA max na jeden pin wyjściowy).


    ATmega pobiera max 20mA przy taktowaniu 16Mhz. Absolute maximum ratings o którym wspomina kolega tyczy się prądu jaki można pobierać z pinów uC pracujących jako wyjście, więc nie jest to prąd jaki pobiera ATmega, a urządzenia przez nią bezpośrednio sterowane.

    Z doświadczenia polecam zastosowanie osobnego zasilania (stabilizatora) dla serw. Zakłóceniach na zasilaniu uC (spadki napięc itp) generowane przez serwa przy ich poruszaniu najprawdopodobniej będą resetowały uC. Poza tym przy paru serwach prąd może sięgać nawet 2 lub więcej amper przy obciążeniu serw więc nawet dobrze chłodzony LM7805 możę sobie nie poradzić.
  • Poziom 14  
    Cytat:
    nawet dobrze chłodzony LM7805 możę sobie nie poradzić.

    Można dać 2 7805 ale cały czas musisz pamiętać o mocy strat powyżej 0.5 W już się ostro grzeją . Pamiętaj też o odpowiednim transformatorze proponuje Trafo 2x9V 1.4A powinno starczyć 25 Wat może być np
    TS25/008
  • Poziom 10  
    Po podłączeniu 2 serw równolegle, oba nie działają. Po odłączeniu tego SG5010 (odłączam w trakcie pracy Atmegi) to mniejsze serwo znów zaczyna działać. Gdy znów w trakcie pracy Atmegi podłączę SG5010 to mniejsze przestaje działać.
    Jeśli SG5010 podłączę pod inną nóżkę niż SG90, to SG90 działa a SG5010 nie.
    W układzie mam 2 stabilizatory: jeden do Atmegi a drugi do serw.
    Przypominam, że gdy podłączę nawet 4 serwa SG90 lub SG50 pod 4 inne nóżki, to wszystko działa jak należy. Problem leży tylko w podłączeniu tego SG5010. Wszystko wskazuje na to, że jest ono zepsute lub potrzeba większego Umax przy sygnale sterującym...
    Jakieś to wszystko dziwne dla mnie :|
    Po włączeniu SG5010 serwo przekręca się o jakiś mały kąt i nic więcej nie robi (czyt. zachowuje się tak jakby nie było przewodu sterującego)
  • Poziom 14  
    A obserwowałeś przebiegi sterujące na oscyloskopie ? To by dużo mogło powiedzieć czy impuls jest taki jak powinien . Jedne serwa są bardziej wrażliwe niż drugie .PS Może masz duże wahania wypełnienia opcji może być wiele a to serwo podłączone do odbiornika aparatury działa czy nie ?
  • Poziom 10  
    Nie mam oscyloskopu, a nawet jakbym miał to pewnie nie wiedziałbym jak go używać.
    Nie rozumiem o jaki odbiornik aparatury chodzi...

    Ale wielkie dzięki za podpowiedź... przejdę się do kogoś kto to ma i zobaczę czy jest coś nie halo...
  • Poziom 14  
    tommyexlee napisał:

    Nie rozumiem o jaki odbiornik aparatury chodzi...

    No normalnie mamy aparaturę (nadajnik ) oraz odbiornik np w samochodzie RC . Ty zastępujesz można tak powiedzieć ten odbiornik, który generuje przebieg PWM i chodzi mi o to czy to serwo po podłączeniu do tego odbiornika z samolotu, samochodu, statku RC reaguje na jakieś ruchy drążków w aparaturze ?
  • Poziom 10  
    tak reaguje... serwo działa w układzie zdalnie sterowanego samochodzika
  • Pomocny post
    Poziom 14  
    No to masz odp . 100% Źle jest sterowane . No chyba, że inaczej to też jest możliwe ze serwo jest jakiś większych gabarytów (nie chciało mi sie szukać po oznaczeniach tego Twojego ) i wydajność prądowa jest nie wystarczająca !Jeżeli masz miernik taki co zapamiętuje maksymalną wartość przy pomiarze to możesz sie pokusić o pomiar zasilania . Ale najlepszym rozwiązaniem jeżeli masz taka możliwość to jest podsłuchanie transmisji na jednym kanale oscyloskopu z samochodu a na drugim kanale tego co wychodzi z ATmegi pozdrawiam
  • Poziom 11  
    Na wstępie mam nadzieję, że nie będziecie źli za podpięcie się do starego tematu, ale był tutaj poruszany temat do którego chciałbym powrócić.

    A mianowicie, robię układ sterujący serwem przez ATmegę i chciałbym zrobić osobne zasilanie do mikrokontrolera oraz do serwa. Oba będą oparte o stabilizator L7805, póki co zastanawiam się jeszcze czy całość umieścić na jednej płytce i nie wiem teraz czy łączyć ze sobą masy obu stabilizatorów?
    Oraz czy mógłbym te dwa stabilizatory zasilać jednym zasilaczem? (mam jakiś stary zasilacz 12V, 8W).
  • Moderator Mikrokontrolery Projektowanie
    retaliato napisał:
    A mianowicie, robię układ sterujący serwem przez ATmegę i chciałbym zrobić osobne zasilanie do mikrokontrolera oraz do serwa. Oba będą oparte o stabilizator L7805, póki co zastanawiam się jeszcze czy całość umieścić na jednej płytce i nie wiem teraz czy łączyć ze sobą masy obu stabilizatorów?
    Oraz czy mógłbym te dwa stabilizatory zasilać jednym zasilaczem? (mam jakiś stary zasilacz 12V, 8W).

    1. W przypadku serw nie powinieneś mieć strasznych zakłóceń, więc oba stabilizatory możesz umieścić na jednej płytce, ale zrób to rozsądnie wydzielając obszar gdzie będzie mikrokontroler i jego zasilanie, od obszaru wyjść serw i ich zasilania. Najbezpieczniejszym jest oczywiście rozdzielenie płytek, ale za mało napisałeś o samym serwie i projektowanym urządzeniu.

    2. Masy muszą być połączone, chyba, że stosujesz oddzielenie galwaniczne (transoptor) na wyjściu mikrokontrolera sterującym serwem.

    3. Czy zasilacz wystarczy - to zależy co to za serwo - jeżeli modelarskie to spokojnie wystarczy.