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



Teraz jest 11 gru 2024, o 21:16


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 10 sty 2019, o 18:07 
Offline
Nowy

Dołączył(a): 26 paź 2018
Posty: 23
Pomógł: 0

Tworze sobie kontroler sterujący pracą siłownika elektrycznego, wykorzystuje tam kilka kanałów Adc do których podłączone są potencjometry, jeden jako czujnik położenia dwa jako skrajne punkty pracy siłownika czyli minimalna wysokośc i maksymalna - wszystko ma byc płynnie regulowane. Potencjometr położenia nie będzie pracował w pełnym swoim zakresie bo to nierealne, doszedłem do wniosku, że trzeba wszystko w jakis sposób ze sobą skalibrować. W eepromie zapisuje więc skrajne wartości pracy czujnika położenia i pozostałych potencjometrów.
Tylko teraz w jaki sposób to ze sobą zgrać by potencjometry ustawiania położenia mieściły sie w zakresie pracy potencjometru położenia?

Obrazek

Połowicznie rozwiązałem to w taki sposób:
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Generalnie to działa, ale tylko w jednym skrajnym położeniu potencjometru od biedy wystarczy, bo zostaną określone wysokości gdzie ma się siłownik zatrzymać, czy ktoś ma pomysł jak przeskalować całą wartość U2 i U3 by zakresy pracy potencjometrów mieściły sie w zakresie pracy U1? Samo odejmowanie róznicy od wartości nie wystarczy bo jedna strona owszem się zgra, ale druga się rozejdzie...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sty 2019, o 21:32 
Offline
Moderator
Avatar użytkownika

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

zubik napisał(a):
A nie da się "analogowo" tego rozwiązać? Tj w układzie ze wzmacniaczami operacyjnymi?

O matko jerychejska .... no po jasny gwint ? ;) to wzmacniaczami zrobić skoro można programowo ;) po prostu zgroza ;) .... nie po to bierzemy procka w łapki, żeby jeszcze doklejać na PCB 100 innych WO ;)

W którymś poradniku wideo pokazuję funkcję map() ;)

_________________
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: 10 sty 2019, o 21:50 
Offline
Nowy

Dołączył(a): 26 paź 2018
Posty: 23
Pomógł: 0

Oj ten siłownik to duuże uproszczenie bo cały projekt jest bardziej wyrafinowany ;).



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

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

zubik napisał(a):
jak przy okazji stracisz połowę rozdzielczości adc to też tak zrobisz?


No tak, oczywiście że masz rację gdyby miało dojść do aż takiej straty - tzn też aż tak dużej różnicy w przeskalowaniu no i jeszcze do tego miałoby to aż takie duże znaczenie w działaniu programu. Moim zdaniem jednak w zdecydowanej większości wypadków i potrzeb - programowo spokojnie wystarczy a bywają wręcz sytuacje gdzie wręcz ta utrata rozdzielczości nie ma żadnego znaczenia bo chodzi o zgrubne reakcje w dużo mniejszej ilości punktów a wręcz o ich przy okazji mocne uśrednienie ....

W każdym razie - rzeczywiście twoja uwaga jest cenna - bo to że często można programowo - to warto wiedzieć, że analogowo na zewnątrz można to zrobić prawie bezstratnie

_________________
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: 11 sty 2019, o 06:24 
Offline
Nowy

Dołączył(a): 26 paź 2018
Posty: 23
Pomógł: 0

O w razie czego zawsze mogę wbić kołek ograniczający ruch potencjometru i też będzie dobrze :mrgreen:.

Pan Mirek nie pamięta gdzie ów cenne porady mogą się znajdować?

A coś znalazłem:
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 sty 2019, o 11:05 
Offline
Nowy

Dołączył(a): 26 paź 2018
Posty: 23
Pomógł: 0

Spróbowałem z tą funkcją, ale mam pewien problem z wynikiem, górny zakres się zgadza, ale dolny się rozjeżdża.

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


Gdzie tkwi błąd?

Edit:
Funkcja napisana jest prawidłowo i juz działa dobrze, błąd był w zmiennych pobieranych z eepromu, a raczej tych co do niego trafiały... W sumie to jeszcze można to uprościć, wystarczy oba rożne przedziały liczbowe przedstawić w procentach i dopiero potem je ze sobą porównywać i tak wartości miałem wyświetlać w %.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 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