Witam
Tak sobie przeglądam stare posty i zatrzymałem się przy Twoim.
Rozumiem, że jak moduł był podłączony wcześniej tylko do zabawki to wszystko reagowało od razu (nie po 4 sek.) TAK?
Więc według mojej opinii są trzy problemy:
1) po co dodajesz/odejmujesz 10? dodawaj/odejmuj 1
2) musisz sprawdzać jakieś zakresy (MIN,MAX) dla tych dodawanek, po to aby ich nie przekroczyć.
3) błąd w funkcji map - ta funkcja konwertuje wartości z jednego zakresu (parametr 2 i 3) na inny zakres(parametr 4 i 5). Czyli jakaś wartość (tutaj twój licznik) ma zmieniać się od 0-5 a w wyniku masz mieć 90-180. Zdajesz sobie sprawę, że serwo przy takiej konwersji będzie mocno skakało? Niech licznik zlicza impulsy w szerszym zakresie (np 0-50).
Ten dziwny czas 4 sek. być może bierze sie stąd właśnie, że zakres do konwersji masz 0-5 a tylko w jednym kroku (za jednym przyciśnięciem pilota) zmieniasz wartość o 10 jednostek. Bez sensu. Jak program ma trafić w ten zakres 0-5 skoro skok jest co 10. trafi co najwyżej w 0. :-)
Pozdrawiam
Tak sobie przeglądam stare posty i zatrzymałem się przy Twoim.
Rozumiem, że jak moduł był podłączony wcześniej tylko do zabawki to wszystko reagowało od razu (nie po 4 sek.) TAK?
Więc według mojej opinii są trzy problemy:
1) po co dodajesz/odejmujesz 10? dodawaj/odejmuj 1
2) musisz sprawdzać jakieś zakresy (MIN,MAX) dla tych dodawanek, po to aby ich nie przekroczyć.
3) błąd w funkcji map - ta funkcja konwertuje wartości z jednego zakresu (parametr 2 i 3) na inny zakres(parametr 4 i 5). Czyli jakaś wartość (tutaj twój licznik) ma zmieniać się od 0-5 a w wyniku masz mieć 90-180. Zdajesz sobie sprawę, że serwo przy takiej konwersji będzie mocno skakało? Niech licznik zlicza impulsy w szerszym zakresie (np 0-50).
Ten dziwny czas 4 sek. być może bierze sie stąd właśnie, że zakres do konwersji masz 0-5 a tylko w jednym kroku (za jednym przyciśnięciem pilota) zmieniasz wartość o 10 jednostek. Bez sensu. Jak program ma trafić w ten zakres 0-5 skoro skok jest co 10. trafi co najwyżej w 0. :-)
Pozdrawiam