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



Teraz jest 11 lut 2025, o 08:44


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 1 gru 2013, o 19:17 
Offline
Użytkownik

Dołączył(a): 29 lis 2012
Posty: 1074
Lokalizacja: Sochaczew
Pomógł: 21

Słuchajcie, mam takie pytanie. w EP 2/2010 opisany był układ zdalnego pozycjonowania kamery. Nic szczegółnego, procesor tiny13 do niego podłączony potencjometr, driver ULN2803 i silnik krokowy. Procesor na podstawie odczytu ADC z potencjometru odpowiednio ustawiał silnik krokowy.

Możecie mi wyjaśnić na jakiej to zasadzie działa? Przedstawić algorytm?

Ogólnie temat wygląda tak że po włączeniu zasilania silnik ustawiany jest na pozycję zero czyli obracany o odpowiednią ilość kroków. Nawet jeśli wcześniej trafi na ogranicznik to nic mu się nie stanie. Następnie obliczane jest ADC i silnik ustawiany odpowiednio do odczytu. Z tym ogólnie nie było by kłopotu ale nie rozumiem jak ustalana jest pozycja rotora w zależności od ADC ? Przecież za każdym razem silnik nie wraca na pozycję zero.

Odczytywane jest to na podstawie danych DATA ? Bo o co chodzi? Jeśli ustawimy potencjometr w połowie to odczytamy powiedzmy połowę ADC czyli dajmy na to te 512 więc łatwo ustawić silnik w danej pozycji, ale jeśli skręcimy potencjometr na 1/4 obrotu to skąd wiadomo ile obrócić silnik umówmy się że w lewo? A jesli teraz przestawimy na 3/4 to skąd wiedzieć ile obrócić go w prawo?

Filmiku nie wstawię bo boję się że autor miałby coś przeciw.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2013, o 17:26 
Offline
Użytkownik

Dołączył(a): 29 lis 2012
Posty: 1074
Lokalizacja: Sochaczew
Pomógł: 21

No to rozumiem, ale chodzi mi o to jak program wie ile obrócić silnik wstecz ?
Dajmy na to że mamy te 512 ADC i silnik krokowy na 12-tej.
Jeśli ja teraz obrócę potencjometr tak by mieć 256 ADC to jak wyliczyć o ile przesunąć silnik w danym kierunku ?

Czy to chodzi o to że od aktualnej pozycji czyli 512 ADC odejmujemy nową pozycję czyli 256 ADC i mamy zarówno (przyjmijmy) ilość kroków do wykonania jak i kierunek który sprawdzamy czy nowe ADC jest mniejsze czy większe od poprzedniego ADC. Ewentualnie jeśli nowe ADC jest większe to od nowego ADC odejmujemy poprzednie lub też możemy odejmować od pełnego ADC nowy odczyt i sprawdzać czy jest większy czy mniejszy niż poprzedni.

Chyba rozgryzłem. Dzięki za naprowadzenie na tor myślenia.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2013, o 18:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1967
Lokalizacja: Lipsko
Pomógł: 125

Hehe, to bardzo proste. Dobrze kombinujesz. W zasadzie na podstawie różnicy między ADC, a aktualnym licznikiem pozycji ustawiany jest krokowiec. Dokładnie to o co Ci chodzi robiłem kiedyś w BASCOM w kilka minut i gdzieś mam nawet program. Zastosowałem tam dodatkową zmienną "doganiającą" jako zabezpieczenie przed zbyt szybkimi zmianami ADC aby silnik nie gubił kroków :)

http://www.youtube.com/watch?v=sBLOafyeoyU


Autor postu otrzymał pochwałę

_________________
http://www.sylwekkuna.com



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 1 gość


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