Servo hat keine Funktion

Hallo in die Runde,

mit einem ESP32 soll ein Servo betrieben werden. Der Servo ist auf Pin 18 des ESP gesteckt. Die 5V Spannungsversorgung des Servos erfolgt von extern.

Leider bekomme ich mit unten stehendem Programm keine Funktion. Das heißt der Servo dreht nicht. Zur Kontrolle, ob der ESP überhaupt funktionert, habe ich eine LED geschaltet. Die leuchtet, bzw. blinkt.

##########################################################

#include <ESP32Servo.h>

Servo myservo;

int pos = 0;
int servoPin = 18;

void setup() {
pinMode(19, OUTPUT);

ESP32PWM::allocateTimer(0);
ESP32PWM::allocateTimer(1);
ESP32PWM::allocateTimer(2);
ESP32PWM::allocateTimer(3);
myservo.setPeriodHertz(50);    
myservo.attach(servoPin, 500, 2400); 

}
void loop() {
digitalWrite (19, HIGH);
delay(50);
digitalWrite(19, LOW);
delay(50);

for (pos = 0; pos <= 180; pos += 1) { 
	// in steps of 1 degree
	myservo.write(pos);    
	delay(15);             
}
for (pos = 180; pos >= 0; pos -= 1) { 
	myservo.write(pos);    
	delay(15);          
}

}

######################################################

Es wäre toll, wenn jemand einen Lösungsansatz für mich hat.

Schöne Grüße aus Bochum

Peter

Du hast gesagt, dass Du den Servo mit 5V extern versorgst. Hast Du GND vom Servo auch mit GND vom ESP32 verbunden? Ohne diese verbindung kann der Servo das signal nicht sehen, da er kein Bezugspotential hat. Sonst mach mal ne Zeichnung, wie alles Verbunden ist und stell das bild hier rein, damit wir sehen, obs an der Verdrahtung liegt/liegen könnte

Hallo Deltaflyer, herzlichen Dank für Deine Antwort. Das war der Fehler. Die Versorgungsspannung kommt jetzt vom ESP und es funktioniert. Klasse.

Du kannst für den Servo weiterhin eine externe Spannung nutzen, musst nur beide GND miteinander verbinden.

Wie versorgst Du den ESP?

Im Moment noch über USB. Später mit 5V.

Wenn das Servo mit d'ran hängt besser früher als später... :wink:

Die Versorgungsspannung sollte genau NICHT vom ESP32 kommen.
Vor allem nicht vom 3.3V pin. Der onboard-Spannungsregler kann nicht so viel Strom liefern.

Wenn du das Servo vom V_in-Pin versorgst bedeutet das das du den Strom aus dem USB-Port ziehst. USB-Ports können maximal 500 mA. Servos können auch mehr Strom als
500 mA ziehen. Das kann deinen USB-Port beschädigen je nachdem wie gut der gegen zu höhe Ströme abgesichert ist.
Servos sollte man grundsätzlich so mit Strom versorgen.
Das Bild zeigt das mit einem Arduino Uno. Das Bild gilt aber für jede Art microcontroller.

vgs

Hallo zusammen,

vielen Dank für eure nette und schnelle Hilfe.

Schöne Grüße aus Bochum

Peter

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.