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



Teraz jest 27 kwi 2024, o 11:21


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 27 ] 
Autor Wiadomość
PostNapisane: 26 sty 2017, o 08:12 
Offline
Użytkownik

Dołączył(a): 07 paź 2011
Posty: 77
Pomógł: 0

Cześć
Szukam pomocy, być może ktoś już to robił z Was?

Znacie takie analogowe wskaźniki wychyłowe elektromagnetyczne, kiedyś robiło sie na nich np obrotomierze lub tzw. UV Metery.
Ich zaletą jest to że po podaniu sygnału płynnie dochodzą do wartości wskazania (uśredniają ten sygnał),

Chciałbym zamienić taki wskaźnik odpowiednikiem cyfrowym, z silnikiem krokowym, coś jak obecne obrotomierze w samochodach, z tym że oprogramowanie czegoś takiego powoduje iż to dość ładnie działa.

Macie pomysł jak zrobić takie płynne przejścia od jednego wskazania do drugiego? A szczytem marzeń byłoby aby dochodząc do wartości którą ma wskazać wskazówka zwalniała i woniej dochodziła.
Kompletnie nie wiem jak się za to zabrać, Jak próbowałem w typowy sposób to zrobić to wskazówka pomiędzy wskazaniami lata jak (przepraszam za wyrażenie ) głupia, w ułamku sekundy od skrajnego do skrajnego położenia się przemieszcza i wygląda to strasznie.

Robił z Was ktoś coś podobnego. Wiem wyzwanie jest, ale może ktoś bardziej doświadczony bawił sie w to?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 sty 2017, o 08:24 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27227
Lokalizacja: Szczecin
Pomógł: 1041

Do takiego celu idealny może się okazać najprostszy silniczek krokowy, jakiś niewielki nawet taki ze starych stacji dyskietek czy z jakiejś drukarki i nawet bez żadnego zaawansowanego sterowania silnikiem z udziałem rampy da radę to pięknie zrobić ;) Wystarczy najprostsze nim sterowanie - pojedyncze kroki zadawane powoli .. a płynność obrotów można porównać właśnie do takich wskaźników wychyłowych. Jeśli posiadasz Bluebooka

http://atnel.pl/mikrokontrolery-avr-jezyk-c.html

to masz tam przecież opisane jak się za to zabrać i to zarówno z silniczkiem unipolarnym (5 przewodów w tym jeden wspólny) i bipolarnym (4 przewody - czyli dwie cewki) ... aż sobie przypomniałem czasy gdy pisałem Bluebooka (2010 rok) i jak na stole przy zestawie ATB ślicznie kręciły mi się takie silniczki niewielkie. Jeśli użyć go tylko do pokręcania wskazówką czyli nie potrzeba żadnej tam siły - no to wręcz ideał ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 sty 2017, o 11:05 
Offline
Użytkownik
Avatar użytkownika

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

Pewnie chodzi o taką ideę ;)



Z regulowanego dzielnika napięcia potocznie zwanego potencjometrem zadaje pozycję wału silnika. To jeszcze w bascomie robiłem. Nawet przy bardzo szybkiej zmianie silnik zawsze dokrèci do właściwej pozycji.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 sty 2017, o 11:11 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27227
Lokalizacja: Szczecin
Pomógł: 1041

SylwekK napisał(a):
Pewnie chodzi o taką ideę

Ot piękny przykład na żywo ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 sty 2017, o 11:35 
Offline
Użytkownik

Dołączył(a): 07 paź 2011
Posty: 77
Pomógł: 0

Jasne że mam Bleubooka i jasne że z niego korzystałem, ale też nie o tym pisałem. Trochę chyba nie umiem wytłumaczyć.
Robię coś podobnego mam potencjometr i z ADC odczytuję napięcie z niego potem z na podstawie wartości z niego odczytanej ustawiam pozycję wskazówki na zasadzie ADC=0 pozycja 0, adc np 1023 pozycja max
I tu mam problem taki że jak szybko pokręcę gałką to przejścia pomiędzy poszczególnymi wartościami skaczą,
Zobaczcie na ten filmik, tu jest podobnie, ruchy są energiczne gwałtowne




Ostatnio edytowano 26 sty 2017, o 11:40 przez Slawek, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 sty 2017, o 11:40 
Offline
Użytkownik
Avatar użytkownika

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

Musisz to robić przez zmienną pośrednią, do której jest (w uproszczeniu) TYLKO zapis z odczytu i TYLKO odczyt przez silnik, a do tego należy ustalić max prędkość (najlepiej z wykorzystaniem timera) z jaką obraca silnik aby nie gubił kroków. Na moim filmie widać w pewnym momencie, że silnik jedzie swoim tempem mimo, że gałka jest już nieruchoma - silnik dogania pozycję.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sty 2017, o 07:47 
Offline
Użytkownik

Dołączył(a): 07 paź 2011
Posty: 77
Pomógł: 0

Ok z jednym sobie poradziłem, dzięki, ale zostało jeszcze cos trudniejszego.
Założenie jest takie, ustawiam wartość do wskazania i jak wskazówka zbliża się do tej wartości to zwalnia, np jest na zero a ma sie przestawić na 10 to od zera do np 9 biegnie szybciej a od 9 do 10 już wolniej i w końcu staje na 10.
Jakieś sugestie, jak sie za to zabrać?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sty 2017, o 08:18 
Offline
Użytkownik
Avatar użytkownika

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

RAMPA jest kluczem :). Przy końcu wartości do, której dąży wał silnika zacznij zwiększać opóźnienie - to które służy do stabilizowania max prędkości silnika aby kroków nie gubił.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sty 2017, o 13:34 
Offline
Użytkownik

Dołączył(a): 07 paź 2011
Posty: 77
Pomógł: 0

Musisz mi podpowiedzieć coś więcej co masz na myśli?
Czy dobrze podejrzewam że chodzi o te moduły do sterowania silniczkami krokowymi np A4988?

Cytuj:
to które służy do stabilizowania max prędkości silnika aby kroków nie gubił


O którym opóźnieniu mowa?

PS. Nie śmiej sie może po prostu jestem nie w temacie albo nie wpadłem jeszcze na o o czym piszesz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sty 2017, o 13:46 
Offline
Użytkownik
Avatar użytkownika

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

Rampa to potocznie zwane przyspieszanie/zwalnianie - jak na torze dla deskorolki :) i realizuje się to programowo zmieniając prędkość. Opóźnienie, o którym wspomniałem to właśnie regulacja prędkości między kolejnymi krokami. Musi być ustalona, bo silniki mają bezwładność i przy zbyt szybkiej zmianie kroków (na podstawie danych wejściowych czyli, np. parametr zadawany potencjometrem) byłyby one gubione stąd też pisałem wcześniej o dodatkowej zmiennej pośredniej dzięki, której silnik na spokojnie odliczy sobie ze swoją prędkością to co ma obrócić z uwzględnieniem swojej max prędkości.
Kurczę nie jestem pedagogiem i to co dla mnie oczywiste ciężko jest mi przekazać w prostszej wersji :)

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sty 2017, o 14:04 
Offline
Użytkownik

Dołączył(a): 07 paź 2011
Posty: 77
Pomógł: 0

Mam to samo, też nie potrafię wytłumaczyć. Tak jak na początku postu, jak Wam wytłumaczyć o co mi chodzi mimo że to proste.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sty 2017, o 14:07 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27227
Lokalizacja: Szczecin
Pomógł: 1041

Slawek napisał(a):
Mam to samo, też nie potrafię wytłumaczyć. Tak jak na początku postu, jak Wam wytłumaczyć o co mi chodzi mimo że to proste.

Trzeba było w ogóle zacząć od pierwszego postu od tego filmiku i o co chodzi - m.in o takie szybkie kręcenie - to bym nie polecał tego uproszczonego sterowania tylko tak jak pisze kolega Sylwekk sterowanie z Rampą i tzw "doganianie" jak on to często nazywa

Mówię ci - że teraz to już wiadomo o co tobie chodzi .... a SylwekK podał mega celną odpowiedź - tu nie ma że boli - rampa się kłania

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sty 2017, o 14:16 
Offline
Użytkownik

Dołączył(a): 07 paź 2011
Posty: 77
Pomógł: 0

Robił ktoś coś podobnego?
Nie ma pojęcia czy to ma być w pętli, przerwaniu, czy może wykorzystać Callback'i
Czy może jeszcze inaczej, ma być funkcja np Motor(int val), z drugiej strony nie może byc wywoływana zbyt często, ani co długi okres.

PS. To są luźne pytania.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sty 2017, o 14:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Obejrzałem filmik.
Jakaś zmienna dyktuje położenie silnika.
Może zbyt mała rozdzielczość,
jak nie to może wystarczy uśrednianie tej zmiennej przed podaniem na silnik ?
Bo podejrzewam że z kompa jest bardziej płynnie podawane.
Myślę że komp to przelicza.
Choć mogę się mylić. :?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sty 2017, o 16:58 
Offline
Użytkownik
Avatar użytkownika

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

Slawek napisał(a):
Robił ktoś coś podobnego?


To co ja Ci na filmie pokazałem to jest właśnie coś podobnego. Zamiast potencjometru i odczytu ADC mógłbym podawać bezpośrednio w programie wartości, np. przez UART z zakresu 0-1023 i wtedy silnik przekręci mi się w skrajne pozycje bez zająknięcia i gubienia kroków z max prędkością ustawioną w programie, która umożliwia się danemu modelowi silnika poruszać bez gubienia kroków. Rampa natomiast to już tylko dodatek gdzie badasz czy do pozycji docelowej zostało np. 10 jednostek i stopniowo zmniejszasz od tego momentu prędkość do jakiejś minimalnej pozwalającej doczłapać się wskazówce. Tyle... Jeśli nadal nie łapiesz o co chodzi to musisz niestety sięgnąć do podstaw sterowania krokowcami. I wcale nie mówię tego złośliwie.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 sty 2017, o 08:19 
Offline
Użytkownik

Dołączył(a): 07 paź 2011
Posty: 77
Pomógł: 0

Przez weekend trochę sie tym pobawiłem.
Mam problem, z którym nie mogę sobie poradzić. Cokolwiek bym nie zrobił w takim sensie że jakkolwiek bym nie sterował silnikiem, zawsze wskazówki skaczą, jak w sekundniku.

Zastosowałem nawet układ A4988 który umożliwia pracę półkrokową i mikrokrokową. Nic nie pomogło, wolne obracanie silnikiem powoduje przeskakiwanie z pozycji na pozycję. Zmiana prądu płynącego przez silnik też nie pomogła, albo utyka, albo drga jeszcze bardziej.
Z budowy silnik wyszło (po rozebraniu) że ma tylko 4 bieguny. więc jest dość malo kroków na obrót (4 chyba tak się liczy)

Może ktoś poradzić czy można jakoś wysterować ten silnik w aby płynnie sie poruszał z wolna prędkością?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 sty 2017, o 08:34 
Offline
Użytkownik
Avatar użytkownika

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

Zacznijmy od początku... Program może pokaż.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 sty 2017, o 06:43 
Offline
Użytkownik

Dołączył(a): 07 paź 2011
Posty: 77
Pomógł: 0

W końcu dotarłem do komputera.

Program jest wyjątkowo prosty, służy jedynie do testowania pracy silnika.
Sterowanie niby jest półkrokowe, w tablicy stany_2 znalazłem też inną sekwencje podawania na silnik, lecz żadnej różnicy nie ma. Wolna praca powoduje drgania, przy dużej szybkości jest dobrze, nie widać drgań, ale do wskazówek duża szybkość nie jest pożądana.
Jak zmiennie na sterowanie krokowe, wolniej się kręci, ale i tak drga.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Ostatnio edytowano 31 sty 2017, o 12:09 przez Slawek, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 sty 2017, o 10:52 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3187
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 89

topic7402.html



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 sty 2017, o 12:10 
Offline
Użytkownik

Dołączył(a): 07 paź 2011
Posty: 77
Pomógł: 0

Zmieniłem, pomogło to jakoś rozwiązać problem?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 sty 2017, o 12:28 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27227
Lokalizacja: Szczecin
Pomógł: 1041

Slawek napisał(a):
pomogło to jakoś rozwiązać problem?

Tu nie chodzi o to czy pomogło tylko o proste zasady na forum i proszę o tym pamiętać.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 sty 2017, o 12:33 
Offline
Użytkownik

Dołączył(a): 07 paź 2011
Posty: 77
Pomógł: 0

OK będę, nie wiedziałem



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 sty 2017, o 12:56 
Offline
Użytkownik
Avatar użytkownika

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

Z tego co widzę, to problemem jest mechanika, ale...
Sposób 1.
W swoich sterownikach aby zminimalizować drgania stosuję dynamiczną zmianę mocy na wolnych obrotach, a wynika to z zasady działania krokowca. Kluczem jest podawany w parametrach jego moment trzymający, który informuje ile trzeba użyć siły aby przekręcić oś, kiedy silnik stoi na włączonej cewce. Podczas zwiększaniu obrotów (czyli przełączaniu cyklicznym cewek z zadaną częstotliwością) przy standardowym sterowaniu napięciowym (a nie prądowym) moment (siła silnika mówiąc w uproszczeniu) drastycznie słabnie. Kontynuując zmianę mocy... przy niskich obrotach, kiedy nie muszę silnika bardzo obciążać (w twoim przypadku to tylko mała wskazóweczka na osi) moc jest bardzo mała przez co nie występuje gwałtowne szarpanie i silnik może się stosunkowo płynnie obracać. Wraz ze zwiększaniem obrotów moc silnika jest zwiększana aby skompensować ją w zależności od obciążenia, bo doszło by natychmiast do zerwania kroków.
Jak reguluję moc? - wystarczy zwykły PWM i jakiś wzorek dobrany do konkretnego typu silnika. PWM może być programowy lub sprzętowy.

Sposób 2.
Wystarczy podnieść minimalne obroty silnika do jakichś gdzie nie ma wielkich drgań i zastosować przekładnie spowalniającą :)

Osobiście jestem za rozwiązaniem nr 1.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 sty 2017, o 12:59 
Offline
Użytkownik

Dołączył(a): 07 paź 2011
Posty: 77
Pomógł: 0

A możesz podrzucić jakiś przykład jak t zrobić?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 sty 2017, o 13:20 
Offline
Użytkownik
Avatar użytkownika

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

Najprościej tak:

PWM=MaxPWM-(AktualneObroty*współczynnik)

MaxPwm - maksymalna możliwa wartość PWM
AktualneObroty - jak wynika z nazwy zakładając, że narastanie wartości oznacza przyspieszanie.
współczynnik - parametr który należy dobrać tak aby nie wyjść poza zakres PWM

Oczywiście można wzór jeszcze rozbudować o swoje dodatki typu minimalna czy maksymalna moc, ale to już wedle uznania.

EDIT:
Zapomniałem dodać, że to wzorek gdy sygnał PWM jest odwrócony tzn. max jest dla wartości 0, a min dla 255. Taką akurat potrzebne miałem w programie, z którego wzór.

_________________
http://www.sylwekkuna.com



Ostatnio edytowano 31 sty 2017, o 16:21 przez SylwekK, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 sty 2017, o 13:29 
Offline
Użytkownik

Dołączył(a): 07 paź 2011
Posty: 77
Pomógł: 0

Bardziej mi chodziło jak ten PWM zaprzęgnąć do silnika, bo on pracuje w mostku i wymaga przełączania



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 sty 2017, o 14:06 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27227
Lokalizacja: Szczecin
Pomógł: 1041

Slawek napisał(a):
bo on pracuje w mostku i wymaga przełączania

Jeśli stosujesz jakiś specjalizowany scalak do silnika to zwykle masz tam wejście na które można podać PWM .. jakieś Enable - popatrz w dokumentację swojego scalaka

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



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

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