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.

Serwo nie rusza się, tylko "tyka"

14 Wrz 2019 17:21 99 7
  • Poziom 3  
    Witam!

    Zaprogramowałem odpowiednio mikrokontroler ATmega88PA, tak abym na jednym z pinów miał sygnał prostokątny o częstotliwości 50Hz i szerokości impulsu 2ms w celu sterowania serwem TP SG90 (przez tranzystor bipolarny NPN BC337). Serwo jest podpięte do osobnego zasilacza (5V DC, wszystkie masy są oczywiście połączone). Po podłączeniu wszystkiego serwo niestety nie rusza się (nawet przy zmianie szerokości impulsu), jedynie słychać lekkie tykanie, a serwo ani drgnie :(
    Co może być przyczyną takiego zachowania serwa?

    Z góry dziękuję!
  • Moderator - Na Wesoło HydePark
    MadRussianHacker napisał:
    jedynie słychać lekkie tykanie, a serwo ani drgnie

    Może serwo chce ruszyć, a jest zablokowane mechanicznie i nie daje rady? Sprawne w ogóle?
  • Poziom 27  
    Witam
    MadRussianHacker napisał:
    Zaprogramowałem odpowiednio mikrokontroler ATmega88PA

    Jeśli chcesz to pokaż ten kod może on coś nie do końca...
    Masz trzy składowe - kod na ATmegę, tranzystor (...no właśnie po co Ci on i jak go podłączasz?) i serwo; dużo szukania nie ma.

    Pozdr.
  • Poziom 3  
    Podłączałem dwa różne serwa, już bez tranzystora (bo w sumie to tylko sygnał i coś mi się powaliło z tym tranzystorem ;) ), bezpośrednio na pinie PB0. Na oscyloskopie sygnał wygląda poprawnie, a serwa nie są w żaden sposób blokowane mechanicznie, więc nie wiem gdzie może leżeć przyczyna problemu. Tu jeszcze dorzucam kod na mikro:

    [code
    Kod: c
    Zaloguj się, aby zobaczyć kod
    ]
  • Moderator - Na Wesoło HydePark
    _jta_ napisał:
    A jakiego prądu i napięcia potrzebuje to serwo, ile masz z uC?


    MadRussianHacker napisał:
    Serwo jest podpięte do osobnego zasilacza (5V DC, wszystkie masy są oczywiście połączone).
  • Poziom 27  
    Witam
    A sprawdź na tym kodzie:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    To jest na ATm8 z zegarem 8MHz więc ICR'a trzeba zwiększyć; rejestry chyba są te same, tylko UWAGA: wyjście PB1.
    A tak żartobliwie: jesteś taki biegły z zapisu Hex czy tak było i przepisałeś :D ?
    OCR1A = 0x69FF;
    ICR1 |= 0x74FF;

    Pozdr.