Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 25 cze 2026, o 13:38


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 17 maja 2014, o 16:36 
Offline
Użytkownik

Dołączył(a): 08 maja 2014
Posty: 61
Pomógł: 1

Witam serdecznie.

Niektórzy być może czytali temat założony przez użytkownika Samuel http://forum.atnel.pl/topic6534.html
Udało nam się stworzyć tę frezarkę CNC, działa całkowicie sprawnie. Jednak niestety nie powiodło się tak jak w temacie Samuela
użyć do tego programu Mach3, ponieważ on na porcie LPT wystawia sygnały kierunku lewo/prawo oraz takt: 1 impuls - 1 krok.
Wtedy okazało się że trzeba by było zakupić sterowniki do silników krokowych które przetwarzają te właśnie sygnały już bezpośrednio na zasilanie silnika krokowego. Mnie jednak jak zawsze poniosła ambicja i postanowiłem napisać taki sterownik samodzielnie.
Nie jest to bardzo skomplikowane, mam jednak parę pytań w których mam nadzieję ktoś mi doradzi.

Konkretny problem przedstawia się następująco. Nie wiem jaką długość ma sygnał kroku z potu LPT więc muszę w jakiś sposób
uzyskać taki efekt, że po każdym zapaleniu się tego wyjścia, do jakiejś zmiennej doda się lub odejmie w zależności od kierunku
jedynka, a z tej zmiennej przy użyciu switch(zmienna) będę sterował silnikiem.

Gdybym chciał zrobić to bez zastosowania przerwań, zrobił bym to mniej więcej tak:

Składnia: [ Pobierz ] [ Ukryj ]
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Obawiam się jednak, że tę opcję można od razu wyrzucić do kosza, ponieważ efekt jak podejrzewam byłby taki, że sygnały z portu
LPT dal silników osi Y oraz Z będą się gubić.
Kiedy obejrzałem tutorial pana Mirka o przerwaniach, dowiedziałem się, że nawet podczas wykonywania się jednego z przerwań,
reszta przerwań zostaje zapisana do wykonania zaraz po poprzednim, w tym wypadku myślę, że całkowicie rozwiązywało by mi to
sprawę, bo w tym wypadku chodzi tutaj tylko o dopisanie lub odjęcie jedynki od zmiennej.
Co o tym sądzicie? Macie dla mnie jakieś rady? Dodam też że boję się jeszcze trochę przerwań, są dla mnie "obce".
Powiedziałem też na początku, że frezarka działa, jest tak ponieważ znaleźliśmy program o nazwie TurboCNC który podaje
na wyjście LPT już gotowy sygnał na silniki krokowe, jest on jednak uruchamiany w DOS'ie, nie jest zbyt komfortowy
do obsługi, za każdym razem trzeba na nowo konfigurować osie, kroki silnika, kąt obrotu silnika, ogólnie rzecz biorąc jest
odrzucający.

Dziękuję i pozdrawiam, Maciek :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 maja 2014, o 23:24 
Offline
Użytkownik

Dołączył(a): 08 maja 2014
Posty: 61
Pomógł: 1

Wydaje mi się, że udało mi się rozwiązać ten problem, bez użycia zatrzymujących program pętli while oraz bez pomocy przerwań.
Udostępniam kod, jeżeli wam się chce to był bym wdzięczny za analizę tego kodu, w najbliższym czasie przetestuję ten sterowniczek.
Okazało się że Mach3 podaje tylko 2 sygnały, DIR i STEP, gdzie jeśli DIR nie jest zapalony, obraca silnikiem w jedną stronę, a kiedy się włączy to w drugą. W najbliższym czasie przetestuję i dam znać czy działa :) Zrobię potem projekt płytki PCB i również udostępnię.

Składnia: [ Pobierz ] [ Ukryj ]
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Pozdrawiam, Maciek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 maja 2014, o 21:43 
Offline
Użytkownik

Dołączył(a): 08 maja 2014
Posty: 61
Pomógł: 1

Kilka poprawek i wszystko działa. Dla ciekawych udostępniam kod oraz projekt w eagle.

Program ATmega16/32:
http://www45.zippyshare.com/v/8839933/file.html

Projekt eagle:
http://www45.zippyshare.com/v/15208169/file.html


Niema to jak samemu rozwiązać problem ^^
Dziękuję i pozdrawiam, Maciek :)

Aaaa zapomniałem, radzę dodać jeszcze po oporniczku na wejścia 10k Ohm.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 5 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO