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

[bascom][attiny2313]Jak uzyskać płynną pracę silnika krok.

BLDC_fan 18 Paź 2010 10:59 2790 11
  • #1 8633735
    BLDC_fan
    Poziom 9  
    Witam..

    Mam podłączony sterownik silnika krokowego m542 + silnik pod prostą aplikację z attiny.

    potrzebuję uzyskać na silniku dość wysokie obroty (jak na krokowy/skokowy) i przez to musze zrobic łągodny rozruch.

    Wszystko byłoby ok gdyby nie fakt, iż program czasem się przycina (moim zdaniem w losowych momentach w czasie przyspieszania) i cała procedura przyspieszania nie jest jednostajna.(mam te same zjawisko w dwóch różnych zestawach silników sterowników i attiny) Jeśli "szarpnięcie" pojawi się w końcowej fazie rozruchu to po prostu silnik wpada w rezonans.

    program wygląda tak: (zawiłość kodu to efekt wielu prób dojścia do sedna problemu)


    Cytat:

    $crystal = 8000000
    $regfile = "attiny2313.dat"

    Config Portd.2 = Input ' wejscie sterujące
    Config Portd.6 = Output
    Config Portb.0 = Output
    Config Portb.1 = Output 'enable

    Dim I As Word

    I = 188
    'Config Portb.3 = Output

    Wait 1
    Config Timer1 = Timer , Compare A = Toggle , Compare B = Disconnect , Prescale = 1 , Clear Timer = 1


    Portb.1 = 0 'wylaczenie sterownika (ENABLE)

    Gosub Dzialanie

    Dzialanie:
    Do
    Portd.4 = 1
    If Pind.2 = 0 Then

    Portb.1 = 1
    Pwm1a = 188
    I = 188
    Portd.4 = 0
    Do
    If I > 27 Then I = I - 1
    Pwm1a = I
    Waitms 22
    If I = 100 Then Waitms 300
    If Pind.2 = 1 Then Gosub Dzialanie
    Loop 'Until Pind.2 = 1
    Waitms 400
    Portd.4 = 1
    End If
    Portb.1 = 0

    Pwm1a = 188
    I = 188
    Loop





    Inventco.eu - Regulamin p.11.1. Poprawiłem temat tym razem.
  • #2 8633746
    Jaca
    Poziom 31  
    Zamiast Gosub użyj Goto. Poczytaj o Gosub a będziesz wiedział czemu Ci się program wysypuje.
  • #3 8633749
    BLDC_fan
    Poziom 9  
    na samym początku w ogóle nie było procedury - efekt ten sam :(
  • #4 8634675
    landy13
    Poziom 31  
    Jeśli wejście sterujące na PD.2 to przycisk, to czy ma podciąganie rezystorem? Programowego nie widzę.
  • #5 8634691
    BLDC_fan
    Poziom 9  
    tak.. ale z ruszaniem nie ma problemu - po prostu nie jest plynne i raczej losowe -

    jak inaczej mogę zrobić generator impulsów z bardzo płynnym zmniejszaniem okresu?

    Pozdrowienia
  • #6 8635777
    janbernat
    Poziom 38  
    Jeśli masz sterownik do silnika i potrzebujesz tylko dir i enable to raczej nie steruj go przez PWM.
    Potrzebujesz generatora o zmiennej częstotliwości zrobionego na procesorze.
    A nie o zmiennym wypełnieniu impulsów.
    To się nazywa rampa.
    Powinna być używana zarówno przy starcie jak i hamowaniu silnika.
    Wypełnienie powinno być stałe albo dawać krótkie impulsy na sterownik.
    Można to zrobić na dwóch Timerach.
    Jeden podaje impulsy- początkowo dość rzadko- a drugi co jakiś czas zmienia zawartość rejestru compare albo wartość początkową pierwszego.
  • #7 8643828
    BLDC_fan
    Poziom 9  
    ten program właśnie to generator o zmienej częstotliwości - i działa - problem tylko w tym, że cały czas mam losowe przycinanie się podczas rozpęczania.
  • #8 8644280
    tmf
    VIP Zasłużony dla elektroda
    I pewnie będziesz miał nadal, bo przydałyby ci się mikrokroki. Trzeba było od początku brać normalny sterownik silnika krokowego, a nie coś prehistorycznego, to byś nie miał problemów. Niestety ciężko jest płynnie rozpędzić silnik jeśli możesz sterować prądem tylko na zasadzie on/off. Ew. zwolnij obroty, może mimo wszystko rozpędzasz go za szybko.
  • #9 8644307
    BLDC_fan
    Poziom 9  
    prehistoryczny :/??? 1/256 to mały podział? używałem mnóstwo różnych sterowników do skokowców i stwierdzam, że ten popularny tani model jest rewelacyjny! ten sam silnik, z tym samym sterownikiem ale podpiętym do PC działa idealnie
  • #10 8644624
    tmf
    VIP Zasłużony dla elektroda
    A sorki, nie zauważyłem, że masz tam jakiś sterownik. Skoro na PC działa to znaczy, że twój program obsysa. Nie wiem jak się komunikuje z tym sterownikiem, ale zakładam, że samo step i dir nie wystarczy dla obsługi mikrokroków? Niestety w Bascomie ci nie pomogę.
  • #11 8644675
    BLDC_fan
    Poziom 9  
    sam sterownik nie jest problemem - problemem jest to, że timer w czasie zmian parametrów pracy przycina się losowo - jak się pozbyć tego problemu?
REKLAMA