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



Teraz jest 29 gru 2025, o 00:02


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 
Autor Wiadomość
PostNapisane: 4 kwi 2018, o 13:16 
Offline
Nowy

Dołączył(a): 10 wrz 2016
Posty: 22
Pomógł: 1

Witam serdecznie.
Od wczoraj zmagam się z problemem obliczania prędkości dla silnika krokowego. Mam projekt w którym muszę ustawić prędkość w cm/min dla wózka napędzanego silnikiem krokowym. Po naciśnięciu klawisza cały wózek ma jechać z zadaną prędkością.

Silnik posiada 400 kroków na obrót no i do tego przekładnia która daje 7200 kroków na obrót docelowego koła.

Koło ma średnicę 7,8cm więc niby sprawa prosta bo można by policzyć liczbę kroków np w ciągu sekundy i po kłopocie. No ale dochodzi do tego jeszcze kwestia wcześniejszego wyliczenia zadawanej prędkości no i nie wiem czy sprawa jest na tyle poważna i nie umiem sobie poradzić czy już mi głowa puchnie...

Używam sterownika opartego na A4988. Prędkość reguluję zmieniając częstotliwość prostokąta na pinie STEP. Generuję go tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Częstotliwość reguluję odczytując wartość ADC z potencjometru, dzielę ja przez 4 i ładuję do rejestru OCR0A. No i to mi działa, reguluję w ten sposób prędkość silnika.

No i moje pytania - jak ugryźć programowo kwestię wyliczania zadawanej prędkości? Czy od dobrej strony zabieram się do pisania programu?

Jeżeli podałem za mało szczegółów proszę dać znać.
Z góry dziękuję i pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 kwi 2018, o 14:34 
Offline
Użytkownik

Dołączył(a): 29 paź 2017
Posty: 232
Pomógł: 26

2*pi*r obwód Twojego koła czyli ~50 cm
7200 kroków podzielić przez 50 to daje 147 kroków na centymetr.
No to teraz jedziemy dalej:
jeden centymetr na sekundę to 0,006802721 sekundy
czyli 6,802721 mili sekundy

No to skonfigurujmy timer
Przy zegarze 8 mhz
Przy trybie ctc
gdy ustawisz ocr 6801
preskaler 8
dla timera 16 bit to będziesz miał dokładnie 1 cm na sekundę
W przerwaniu będzie szturchał 147 razy na sekundę silnik.
a reszta to już tylko skromna matematyka.

(może gdzieś się walnąłem z jakimś zerem ale chodziło mi o idee co to jest 1 cm na sekundę i jak nad nim zapanować)

_________________
Jestem na GG 31324
Nowy soft, nowa nadzieja.



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: 2 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO