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

Sterowanie ESC ABC Power20A za pomocą Atmega8 i PWM - silnik nie startuje

J0e 27 Sie 2016 19:54 2442 23
  • #1 15895482
    J0e
    Poziom 8  
    Witam,

    ostatnio zakupiłem silniki bezszczotkowe oraz układy ESC do nich (ABC Power20A). Chcę sterować nimi za pomocą Atmegi (docelowy 16 na czas testów 8) z wykorzystaniem timerów i sprzętowego PWM. Znalazłem na kilku stronach przykładowy kod w Bascomie, jednakże silnik nie uruchamia się. Czy ktoś mógłby wytłumaczyć mi jak należy tym układem sterować? (Masy układów połączyłem a biały kabel sterujący do wyjścia OC2)

    Kod Bascom:
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod
  • #2 15895500
    kamyczek
    Poziom 38  
    Sygnał sterujący regulatorem jest taki sam jak sygnał sterujący serwomechanizmem . Do testów możesz śmiało połączyć serwo bo na nim łatwiej obserwować działanie programu . Z grubsza mówiąc sygnał serwomechanizmu to sygnał pwm ze stanem wysokim w zakresie od ok 1ms do 2ms , środkowe położenie to 1,5ms przerwa między impulsami powinna wynosić od 20 do 40ms . Większość regulatorów modelarskich ma zabezpieczenie zanim ruszą muszą rozpoznać zerową pozycję drążka gazu 1ms po takim sygnale nastąpi "uzbrojenie regulatora i następne zmiany będą owocowały działaniem silnika .
  • #3 15895680
    J0e
    Poziom 8  
    Serwa niestety nie posiadam :(
    Jak powinienem obliczyć częstotliwość generowanego sygnału ? Z komentarzy wnioskuję że jest to 16 ms. Jak to zmienić ? Autor kodu zapisał to niestety w rejestrach a takiego zapisu ja nie pojmuję.
  • #4 15895841
    Konto nie istnieje
    Konto nie istnieje  
  • #5 15895853
    J0e
    Poziom 8  
    Piotrus_999 napisał:
    czestotliwosć z założenia to 50Hz czyli okres 20ms. ale serwa i inne urzadzenia akceptują też inne częstotliwości.

    Ja rozumiem, ale kod wyżej nie generuje chyba pwma o częstotliwości 50HZ ?
    Jak w przypadku innej częstotliwości regulować prędkość ? Współczynnikiem wypełnienia ?
  • #6 15895874
    m2c
    Poziom 19  
    Zapoznaj się CONFIG SERVOS w helpie Bascoma, masz tam też przykład. Pamiętaj że esc wymaga ustawienia aparatury na 0 podczas podłączenia zasilania, inaczej silniki nie ruszą.
  • Pomocny post
    #7 15895884
    kamyczek
    Poziom 38  
    Zasadniczo zmieniać nic nie trzeba układ powinien działać tyle że musisz sobie policzyć wartość W dla 8MHz i dzielnika 256 każdy impuls trwa 0,032ms więc musisz wymaganą wartość w ms podzielić przez 0,032 i całkowitą część wpisać do W czyli od 32 do 65 i w tym przypadku osiągniesz krańcowe położenia drążka sterującego jednak jak można łatwo zauważyć masz do dyspozycji tylko 33 kroki co jest wartością bardzo małą .
  • #8 15896359
    J0e
    Poziom 8  
    Sprawdziłem układ programem Soundcard Oscilloscope i wychodzi na to że kod który podałem nie generuje żadnego przebiegu, za to polecenie config servos już tak.
    Sterowanie ESC ABC Power20A za pomocą Atmega8 i PWM - silnik nie startuje
  • Pomocny post
    #9 15896498
    Konto nie istnieje
    Konto nie istnieje  
  • #10 15896524
    J0e
    Poziom 8  
    Faktycznie zapomniałem o tym :D
    Pojawił się sygnał, jednakże silnik dalej nie rusza. Czy ten sygnał powinien tak wyglądać ? Sterowanie ESC ABC Power20A za pomocą Atmega8 i PWM - silnik nie startuje
  • #11 15896548
    Konto nie istnieje
    Konto nie istnieje  
  • #12 15896550
    Konto nie istnieje
    Konto nie istnieje  
  • #13 15896560
    J0e
    Poziom 8  
    Wpisałem Ocr2 = 128 i przebieg wygląda tak Sterowanie ESC ABC Power20A za pomocą Atmega8 i PWM - silnik nie startuje
  • #14 15896590
    Konto nie istnieje
    Konto nie istnieje  
  • #15 15896642
    kamyczek
    Poziom 38  
    Żaden z powyższych sygnałów nie będzie prawidłowo sterował regulatorem i serwem przebieg ma wyglądać następująco przez ok 20ms masz logiczne zero następnie prze 1 do 2ms masz logiczną 1 i znów 20ms logiczne zeroTu jest wszystko ładnie wytłumaczone
  • #16 15896738
    Konto nie istnieje
    Konto nie istnieje  
  • #17 15896762
    J0e
    Poziom 8  
    Ok, prawie mi się udało. Najniższa prędkość (0%) jak rozumiem to OCR2 = 32, najwyższa 65. W programie mam ustawione najpierw 32 po 6 sekundach zmienia się na 40. ESC wchodzi jednak w tryb programowania. W instrukcji piszą że jest to spowodowane złym kierunkiem drążka.
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    Przebieg:
    Sterowanie ESC ABC Power20A za pomocą Atmega8 i PWM - silnik nie startuje
  • #18 15896817
    Konto nie istnieje
    Konto nie istnieje  
  • #19 15896847
    J0e
    Poziom 8  
    Piotrus_999 napisał:
    Czy zauważyłes co jest źle na tym oscylogramie? Przy minimum 1ms wysoki stan później przez 19 niski. Przy maksimum 2ms wysoki i 18ms niski.

    Piszemy Ci to już 20sty raz. Wstydziłbyś się taki oscylogram wstawiać.

    Ja o tym wiem ! Pytam JAK zrobić 1ms niski 19ms wysoki. Rozumiem zasadę działania ale nie wiem jak ją zaprogramować.

    A z oscylogramem jest nie tak to że jest on jakby "w lustrzanym odbiciu".
  • #20 15896915
    Konto nie istnieje
    Konto nie istnieje  
  • #21 15896959
    Konto nie istnieje
    Konto nie istnieje  
  • #22 15897142
    J0e
    Poziom 8  
    niveasoft napisał:

    Sterowanie ESC ABC Power20A za pomocą Atmega8 i PWM - silnik nie startuje

    Cały dzień już wnerwiony nad tym siedzę.

    Mi generuje taki przebieg (Kod skopiowany od ciebie):
    Sterowanie ESC ABC Power20A za pomocą Atmega8 i PWM - silnik nie startuje

    Po zmianie clear_up na clear_down:

    Sterowanie ESC ABC Power20A za pomocą Atmega8 i PWM - silnik nie startuje

    Poprzedni kod wywaliłem, zacząłem pisać swój, wyszedł mi prawie identyczny jak ten który podał niveasoft (ten pierwszy).

    Niestety ESC ciągle się obraża że okres to 16ms nie 20ms i piszcząc odpowiednio silnikiem mi to sygnalizuje. Dzięki za pomoc dalsze rozkminy na ten temat będę prowadził prawdopodobnie jutro.
  • Pomocny post
    #23 15897235
    Konto nie istnieje
    Konto nie istnieje  
  • #24 15897441
    kamyczek
    Poziom 38  
    Tak się zastanawiam czy przypadkiem winowajcą całego zamieszania nie jest twój oscyloskop i czy aby przypadkiem nie odwraca on przebiegu . Poza tym Piotr o serwach można faktycznie napisać więcej informacji , ale w takich zastosowaniach raz że serw cyfrowych mogących pracować z sygnałami powtarzanymi co 10ms raczej nie spotkamy . Wiele serw analogowych akceptuje sporą przerwę między sygnałami ale nie jest to zawsze i w 100% pewne że będzie tak za każdym razem . Rożne też są regulatory niektóre wymagają karty programującej inne programują się z drąga (sygnałem PWM) są też takie które używają cyfrowego pseudo uarta . Takie są czasem wykorzystywane w quadro-kopterach
REKLAMA