Witam wszystkich. Postawiłem sobie za cel, stworzenie projektu sterownika silnika krokowego za pomocą mega32. Założenia są takie odczytując przyciski z klawiatury generujemy odpowiedni efekt.
Jak wiadomo układ L298-7 działa na zasadzie podania 3 sygnałów Lewo/Prawo, półkrok, krokowo oraz CLK.
I tu powstaje problem
Otóż przyjmijmy że za pomocą przycisku:
P1 - generujemy 1/4 obrotu w lewo
P2 - generujemy 1/2 obrotu w lewo
P3 - generujemy 3/4 obrotu w lewo
P4 - generujemy 1 obrot w lewo
P5 - generujemy 1/4 obrotu w prawo
P6 - generujemy 1/4 obrotu w prawo \
P7 - generujemy 1/4 obrotu w prawo
P8 - generujemy 1/4 obrotu w prawo
P9 płynny start do częstotliwości np. od 0 do 200 Hz
P10 przyspieszanie co 1 naciśnięcie o 50Hz
P11 zwalnianie co 1 naciśnięcie o 50 Hz
P12 łagodne wyhamowanie
itd...
Udało mi się obsłużyć klawiaturkę 4x4 i udaje się zapalić didodki przy naciskaniu odpowiedniego przycisku, ale to jak wiadomo za mało.
Czy może ktoś pokazać przykład jak generować odpowiedni sygnały, jednocześnie czytając klawiaturę.
Rozpacz czarna mnie dopadła
Podobno trzeba to zrobić na przerwaniach, ale potrzebuję jakiegoś porządnego prostego przykładu.
Aha.. piszę w C, AVR Studio 4
Jak wiadomo układ L298-7 działa na zasadzie podania 3 sygnałów Lewo/Prawo, półkrok, krokowo oraz CLK.
I tu powstaje problem
Otóż przyjmijmy że za pomocą przycisku:
P1 - generujemy 1/4 obrotu w lewo
P2 - generujemy 1/2 obrotu w lewo
P3 - generujemy 3/4 obrotu w lewo
P4 - generujemy 1 obrot w lewo
P5 - generujemy 1/4 obrotu w prawo
P6 - generujemy 1/4 obrotu w prawo \
P7 - generujemy 1/4 obrotu w prawo
P8 - generujemy 1/4 obrotu w prawo
P9 płynny start do częstotliwości np. od 0 do 200 Hz
P10 przyspieszanie co 1 naciśnięcie o 50Hz
P11 zwalnianie co 1 naciśnięcie o 50 Hz
P12 łagodne wyhamowanie
itd...
Udało mi się obsłużyć klawiaturkę 4x4 i udaje się zapalić didodki przy naciskaniu odpowiedniego przycisku, ale to jak wiadomo za mało.
Czy może ktoś pokazać przykład jak generować odpowiedni sygnały, jednocześnie czytając klawiaturę.
Rozpacz czarna mnie dopadła
Podobno trzeba to zrobić na przerwaniach, ale potrzebuję jakiegoś porządnego prostego przykładu.
Aha.. piszę w C, AVR Studio 4