07-09-2021, 15:59
(Ten post był ostatnio modyfikowany: 07-09-2021, 16:01 przez Krismir102.)
Witajcie. Z góry przepraszam za mój brak doświadczenia ale to moja pierwsza próba sterowania serwem z NodeMCU V2. Już na samym starcie trafiłem na problem, którego nie rozumiem. Prostym kodem chcę sterować serwem za pomocą potencjometru, lecz serwo przemieszcza się tylko w zakresie ok 90 stopni (mniej więcej od 45 do 135). To samo się dzieje gdy wgram przykład "Swap" z biblioteki Servo.h.
Nie rozumiem co zrobiłem źle, prądu raczej mu nie brakuje, masy są wspólne, potencjometr podpinałem pod 5V jak i 3,3V, a serwo sterowałem również poprzez tranzystor i podłączałem na różne piny, kopiowałem przykłady i schematy z internetu... ciągle to samo. Na serial monitorze wartości z potencjometru pokazuje mi 13-1024, czyli raczej ok. Zmienna kat także operuje między 0 i 180.
Podłączałem też serwo MG90 i zachowywało identycznie.
Po podpięciu wszystkiego do Arduino Uno i wgraniu tego samego kodu wszystko działa jak należy więc to raczej coś z NodeMCU.
Zastanawiałem się czy to może biblioteka Servo.h źle współpracuje z ESP8266 ale we wszystkich przykładach jakie znalazłem ludzie ją wykorzystują z sukcesem. Instalowałem starsze wersje Servo.h ale też nie pomogło.
Używam NodeMCU V2, serwo MG995 oraz potencjometr 10k.
Nie rozumiem co zrobiłem źle, prądu raczej mu nie brakuje, masy są wspólne, potencjometr podpinałem pod 5V jak i 3,3V, a serwo sterowałem również poprzez tranzystor i podłączałem na różne piny, kopiowałem przykłady i schematy z internetu... ciągle to samo. Na serial monitorze wartości z potencjometru pokazuje mi 13-1024, czyli raczej ok. Zmienna kat także operuje między 0 i 180.
Podłączałem też serwo MG90 i zachowywało identycznie.
Po podpięciu wszystkiego do Arduino Uno i wgraniu tego samego kodu wszystko działa jak należy więc to raczej coś z NodeMCU.
Zastanawiałem się czy to może biblioteka Servo.h źle współpracuje z ESP8266 ale we wszystkich przykładach jakie znalazłem ludzie ją wykorzystują z sukcesem. Instalowałem starsze wersje Servo.h ale też nie pomogło.
Używam NodeMCU V2, serwo MG995 oraz potencjometr 10k.
Kod:
#include <Servo.h>
Servo servo;
void setup() {
servo.attach(4);
pinMode(A0, INPUT);
}
int pot, kat, ost_kat;
void loop() {
pot = analogRead(A0);
kat = map(pot, 0, 1024, 0, 180);
if (kat != ost_kat){
servo.write(kat);
ost_kat=kat;
}
delay(100);
}