Witam
Chciałbym w miarę zoptymalizować swój programik, ale nie mam w tym dużego doświadczenia, więc prośba o wskazówki
Układ składa się z 4 potencjometrów (poniżej fragment kodu z dwoma w celu uproszczenia), jeden potencjometr służy jako czujnik wysokości ramienia, które porusza się z szybkością od dołu do góry w jakieś 3, 4s , ale jednak istotne jest by w miarę na bieżąco odczytywało położenie, duża zwłoka psuje wszystko, to już stwierdziałem
. Pozostałe czujniki służą jedynie do ustalenia wysokości itp, jako takie nie biorą udziału w ruchu, tu może być duże uśrednienie, zwłoka itp. bardziej liczy się stabilność.
Poniżej dość prosty fragment kodu jak to powinno działać, jak widać dokładność nie jest wymagana i już samo przełożenie na procenty jest sporym uśrednieniem, ale nawet tak duże uśrednienie nic nie daje bo są czasem problemy z przeskakiwaniem wyniku gdy wartośc jest bliska wartości granicznej np. 40 i 41 minimalne poruszenie pokrętła i wynik jest jak wryty. Czy da się temu jakoś zaradzić nie spowolniając mocno pracy programu? Jakieś inne uśrednianie, wybieranie wyników? Jak widać program porównuje ze sobą wartości z ADC i tez pytanie czy lepiej porównywać bezpośrednio wyniki z ADC czy po przełożeniu na procenty? Porównując wartości ze sobą zrobiłem "bufor" i działa to dość fajnie, pomimo iz wyniki czasem przeskakują (maksymalnie o 1%)
Chciałbym w miarę zoptymalizować swój programik, ale nie mam w tym dużego doświadczenia, więc prośba o wskazówki
Układ składa się z 4 potencjometrów (poniżej fragment kodu z dwoma w celu uproszczenia), jeden potencjometr służy jako czujnik wysokości ramienia, które porusza się z szybkością od dołu do góry w jakieś 3, 4s , ale jednak istotne jest by w miarę na bieżąco odczytywało położenie, duża zwłoka psuje wszystko, to już stwierdziałem
Poniżej dość prosty fragment kodu jak to powinno działać, jak widać dokładność nie jest wymagana i już samo przełożenie na procenty jest sporym uśrednieniem, ale nawet tak duże uśrednienie nic nie daje bo są czasem problemy z przeskakiwaniem wyniku gdy wartośc jest bliska wartości granicznej np. 40 i 41 minimalne poruszenie pokrętła i wynik jest jak wryty. Czy da się temu jakoś zaradzić nie spowolniając mocno pracy programu? Jakieś inne uśrednianie, wybieranie wyników? Jak widać program porównuje ze sobą wartości z ADC i tez pytanie czy lepiej porównywać bezpośrednio wyniki z ADC czy po przełożeniu na procenty? Porównując wartości ze sobą zrobiłem "bufor" i działa to dość fajnie, pomimo iz wyniki czasem przeskakują (maksymalnie o 1%)
Kod: VB.net