08-09-2021, 16:23
(Ten post był ostatnio modyfikowany: 08-09-2021, 16:25 przez Krismir102.)
Problem rozwiązany. Okazuje się, że wszystko działa jak należy tylko że biblioteka do serwa z środowiska ESP podaje ZBYT DOKŁADNY sygnał PWM.
Odkryłem to analizatorem stanów logicznych, którym sprawdziłem podawany sygnał PWM przez Node i Arduino Uno. Przypominam, że na Node serwo poruszało się w ograniczonym zakresie, a na Uno w pełnym.
Biblioteka z Node generowała wręcz wzorowy sygnał PWM, w którym najkrótszy czas wypełnienia wynosił 1 ms, a najdłuższy 2 ms i wszystko z dokładnością do setnych części ms. Biblioteka z Uno generowała sygnał PWM o najkrótszym czasie wypełnienia 0,5 ms, a najdłuższym ok 2,4 ms!! Przynajmniej obie zgadzają się co do okresu 20 ms.
Zainstalowałem starszą bibliotekę środowiska ESP8266 i nagle wszystko zaczęło działać. Po odczytaniu przebiegu PWM ukazało mi się, że teraz mój Node, na starszej bibliotece, generuje sygnał o wypełnieniu w zakresie od 0,5 ms do 2,4 ms w okresie 20 ms. W takim zakresie wypełnienia 1 ms dla mojego serwa to ok 75 stopni, a 2 ms to ok 150 stopni. I rzeczywiście mniej więcej w takim stopniu mi się przemieszczał.
Szkoda że dokumentacja na jaką trafiłem podaje prawidłowe wypełnienia jako 1 ms i 2 ms...
Nie wiem jak z innymi modelami serw ale serwa Tower Pro SG90 oraz MG995 wymagają biblioteki środowiska ESP8266 wersji 2.7.4 lub starszej. Wersje 3.0 i nowsze generują nieodpowiedni sygnał PWM dla tych serw.
Na szczęście na nowszych jest odpowiednie polecenie więc nie trzeba instalować starszych. Należy użyć polecenia:
servo.attach(pin, min, max);
Gdzie za min wpisujemy 544, a za max 2400.
Pewnie w serwie za 200 zł i jakiś najnowszych tego problemu nie będzie ale moje za trzy dyszki z allegro ma takie wymagania
Odkryłem to analizatorem stanów logicznych, którym sprawdziłem podawany sygnał PWM przez Node i Arduino Uno. Przypominam, że na Node serwo poruszało się w ograniczonym zakresie, a na Uno w pełnym.
Biblioteka z Node generowała wręcz wzorowy sygnał PWM, w którym najkrótszy czas wypełnienia wynosił 1 ms, a najdłuższy 2 ms i wszystko z dokładnością do setnych części ms. Biblioteka z Uno generowała sygnał PWM o najkrótszym czasie wypełnienia 0,5 ms, a najdłuższym ok 2,4 ms!! Przynajmniej obie zgadzają się co do okresu 20 ms.
Zainstalowałem starszą bibliotekę środowiska ESP8266 i nagle wszystko zaczęło działać. Po odczytaniu przebiegu PWM ukazało mi się, że teraz mój Node, na starszej bibliotece, generuje sygnał o wypełnieniu w zakresie od 0,5 ms do 2,4 ms w okresie 20 ms. W takim zakresie wypełnienia 1 ms dla mojego serwa to ok 75 stopni, a 2 ms to ok 150 stopni. I rzeczywiście mniej więcej w takim stopniu mi się przemieszczał.
Szkoda że dokumentacja na jaką trafiłem podaje prawidłowe wypełnienia jako 1 ms i 2 ms...
Nie wiem jak z innymi modelami serw ale serwa Tower Pro SG90 oraz MG995 wymagają biblioteki środowiska ESP8266 wersji 2.7.4 lub starszej. Wersje 3.0 i nowsze generują nieodpowiedni sygnał PWM dla tych serw.
Na szczęście na nowszych jest odpowiednie polecenie więc nie trzeba instalować starszych. Należy użyć polecenia:
servo.attach(pin, min, max);
Gdzie za min wpisujemy 544, a za max 2400.
Pewnie w serwie za 200 zł i jakiś najnowszych tego problemu nie będzie ale moje za trzy dyszki z allegro ma takie wymagania