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

[ATmega32][ASM/AVR Studio 5] Sterownik silnika krokowego ze zmianami trybów

20 Lis 2011 19:47 2210 5
REKLAMA
  • #1 10162290
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #2 10162437
    janbernat
    Poziom 38  
    Tu:
    https://www.elektroda.pl/rtvforum/topic1804999.html
    coś podobnego robiłem.
    Ale w C.
    Działało.
    W temacie jest podana nota Atmela o liczeniu rampy do sterowania silnikiem.
    Ale to strasznie rozbudowana kobyła.
    Poza tym nie rozumiem po co zwalniać do zera przy zmianie kroków.
    Przy zmianie kierunku jest to konieczne.
  • REKLAMA
  • #3 10162516
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #4 10162872
    janbernat
    Poziom 38  
    Pewnie że jest- ostatecznie program napisany w C jest zamieniany najpierw na asm.
    Nie znam asm- ale z tego co widzę wynika chyba że procesor jest sterowany impulsami zewnętrznymi i wystawia sygnały do sterowania silnikiem.
    Popraw mnie jeśli źle ten program zrozumiałem.
    Jeśli tak jest jak zrozumiałem to koncepcja jest błędna.
    No bo jak silnik ma zwalniać jeśli stale przychodzą impulsy sterujące.
    Trzeba by je zapisywać do jakiegoś bufora a potem odczytywać.
    Prędkość zmieniać można zmieniając wartość początkową licznika albo wartość w rejestrze porównania albo przy stałej prędkości licznika ustawiać w nim jakąś flagę i liczyć w pętli głównej.
    Poza tym- asm też wymaga komentarzy.
  • REKLAMA
  • #5 10163179
    Konto nie istnieje
    Poziom 1  
  • #6 10163362
    janbernat
    Poziom 38  
    A, to jednak niezupełnie zrozumiałem.
    Sterowanie polega na tym że przyciskiem na przerwaniu 2 zmieniasz sekwencję (i kierunek?) a na przerwanie 1 i 3 przychodzi ?( DIR) i STEP.
    To jeśli tak to po wciśnięciu przycisku zmieniającego kierunek (krok, półkrok?)musisz stopniowo zmieniać szybkość impulsów podawanych na uzwojenia prawie aż do zera.
    Zmieniając wartość rejestru porównania.
    Bez przesady- jak silnik będzie się bardzo wolno kręcił to bezboleśnie zmieni kierunek nie gubiąc kroków.
    No ale dalej pytanie- impulsy sterujące przychodzą stale- możesz to zlekceważyć i stopniowo zwalniać a potem przyspieszać silnik czy też trzeba te impulsy gdzieć zapisać?
    Cały problem przy takich silnikach jest taki że należy stale znać ich "położenie"- ile impulsów dostały i "gdzie" w danej chwili są- no bo jeśli nie to zalety silników krokowych mocno maleją.
    Czyli w zasadzie trzeba by znać całą sekwencję programu- od początku do końca.
    Najpierw zapisać a potem wykonać.
    Tylko na takiej podstawie można jakoś sensownie liczyć rampę.
REKLAMA