logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Serva w bascomie. Jakie wartości podawać, aby serwo się gdzieś ustawiło?

dzik84 15 Mar 2006 23:56 1377 6
REKLAMA
  • #1 2419764
    dzik84
    Poziom 17  
    Posty: 444
    Pomógł: 30
    Ocena: 17
    Sprawa wygląda tak, chciałęm sie pobawić serwami, a że sobie pomyślałem że bascom juz ma wbudowaną obsługe tego to będzie prosto, ale cos jest nie tak :/
    Nawet jak nie wysłam żadnego polecenia typu Servo(1)=20
    Tylko jest sam program ze zdeklarowanym servem, to servo ciągle skacze krokami w jedną strone, jak zaczynam podawać jakies wartości to nic się nie zmienia :(
    Sewrvo jest ok, procek(atmega32) programuje sie bez problemów ale jeszcze tej szt. nie używałem - jutro go sprawdze linijką led

    Czy ktoś wie co to może być

    Aha, i jakie wartości podawać żeby servo się gdzieś ustawiło[/url]
  • REKLAMA
  • #2 2419879
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 124
    Jeśli wykorzystujesz przerwania, to instrukcja serwa rozsypie się, jak z resztą większość rzeczy w bascomie. Moja rada: Napisz obsługę serwa ręcznie, w dziale Automatyka i Robotyka opisałem kiedyś jak sterować serwami, przynajmniej czegoś się nauczysz
  • REKLAMA
  • #3 2420134
    dzik84
    Poziom 17  
    Posty: 444
    Pomógł: 30
    Ocena: 17
    Chciałem na szybko zobaczyć, docelowo ma być C
    Tylko mnie zdziwiło że to wogólne niedziała
    Jak wróce ze szkoły spróbuje napisać to ręczne w bascomie a potem w C
    Z tego co wiem to musze co 20ms podawać impuls o długości od 0.9 do 2.1ms ? a 1.5ms to pozycja neutralna?
  • REKLAMA
  • #4 2420425
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 124
    Tak, te impulsy mają się pojawiać z częstotliwością 50Hz, na początek radze wybrać zakres 1-2ms, taki jest "fabryczny" wydłużony może przeciążać mechanizmy serwa
  • #5 2420526
    dzik84
    Poziom 17  
    Posty: 444
    Pomógł: 30
    Ocena: 17
    Z tego co tak na szybko wykombinowałem to musze zrobić przerwanie co 20ms, w obsłudze przerwania ustawić stan wysoki, odczekać przykładowo 1.5ms i potem ustawić stan niski?
    Jeszcze tego nie spr, ale myśle że powinno być ok
  • REKLAMA
  • #6 2421678
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 124
    Też tak myśle ;) 1,5ms to powinno być neutrum, chyba że jest to serwo firmy Multiplex oni mają troche inny standard - 60Hz i 1,6ms dla neutrum
  • #7 2452852
    slawko_k
    Poziom 35  
    Posty: 2931
    Pomógł: 254
    Ocena: 240
    witam.
    kupilem ostatnio servo i tez sie bawilem.
    polecenie servo w bascomie jest do bani. servo szaleje po wydaniu takiej instrukcji. podpiecie oscyloskopu od razu mowi ze te czasy sa jakies lewe.
    samodzielnie napisalem prosty programik i servo dziala jak trzeba

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy problemów z obsługą serwomechanizmów w Bascomie na mikrokontrolerze Atmega32. Standardowa instrukcja Servo() w Bascomie często powoduje niestabilne zachowanie serwa, które skacze bez wysyłania poleceń. Zaleca się ręczne sterowanie serwem poprzez generowanie impulsów o częstotliwości 50 Hz (co 20 ms) z czasem trwania impulsu od około 1 do 2 ms, gdzie 1,5 ms odpowiada pozycji neutralnej. W przypadku serw Multiplex standard może się różnić (60 Hz i 1,6 ms dla neutrum). Wskazane jest implementowanie obsługi serwa za pomocą przerwań, ustawiając stan wysoki na czas impulsu, a następnie niski, co pozwala na stabilne ustawienie pozycji serwa. Użytkownicy potwierdzają, że samodzielne programy działają lepiej niż wbudowana funkcja Bascoma.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA