Hallo, kann mir vieleicht jemand sagen was ich falsch mache. Ich möchte grad erst mal zu test zwecken einen Servo mit einen Arduino Nano ESP32 ansteuern.
Ich verwende dafür die ESP32Servo.h Bibliothek
Beim Hochladen wir dann folgender Fehler ausgeworfen.
In file included from C:\Users\weste\OneDrive\Dokumente\ArduinoData\packages\arduino\hardware\esp32\2.0.13\cores\esp32/Arduino.h:223,
from C:\Users\weste\OneDrive\Dokumente\Arduino\libraries\ESP32Servo\src/ESP32PWM.h:12,
from C:\Users\weste\OneDrive\Dokumente\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp:8:
C:\Users\weste\OneDrive\Dokumente\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp: In member function 'void ESP32PWM::attachPin(uint8_t)':
C:\Users\weste\OneDrive\Dokumente\ArduinoData\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:56:91: error: void value not ignored as it ought to be
#define ledcAttachPin(pin, channel) ledcAttachPin(digitalPinToGPIONumber(pin), channel)
^
C:\Users\weste\OneDrive\Dokumente\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp:312:11: note: in expansion of macro 'ledcAttachPin'
success=ledcAttachPin(pin, getChannel());
^~~~~~~~~~~~~
exit status 1
Fehler beim Kompilieren für das Board Arduino Nano ESP32.
Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden.
Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.
Schau dir mal die Beispiele in ESP32Servo an.
Bei dir fehlen noch div. Informationen.
Ich vermute, du hast nur ein Beispiel aus der AVR-Servo-Library genommen.
Ich habe mir alle Beispiele von der Bibliothek angeschaut und auch die versucht Hochzuladen. Leider bei jedem Beispiel das Gleiche Problem.
Der Code Sweep wäre meinem am änlichsten der geht jedoch leider auch nicht. Ich habe mir auch auf YT schon Videos angeschaut und dort wird es genau so gemacht wie ich es gemacht habe und bei denen geht das anscheinend alles. Jedoch verwenden die keinen ESP32 von Arduino. Kann es sein das die von Arduino einfach damit nicht Kompatiebel sind:
Hier mal der Sweep Code:
#include <ESP32Servo.h>
Servo myservo; // create servo object to control a servo
// 16 servo objects can be created on the ESP32
int pos = 0; // variable to store the servo position
// Recommended PWM GPIO pins on the ESP32 include 2,4,12-19,21-23,25-27,32-33
// Possible PWM GPIO pins on the ESP32-S2: 0(used by on-board button),1-17,18(used by on-board LED),19-21,26,33-42
// Possible PWM GPIO pins on the ESP32-S3: 0(used by on-board button),1-21,35-45,47,48(used by on-board LED)
// Possible PWM GPIO pins on the ESP32-C3: 0(used by on-board button),1-7,8(used by on-board LED),9-10,18-21
#if defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32S3)
int servoPin = 17;
#elif defined(CONFIG_IDF_TARGET_ESP32C3)
int servoPin = 7;
#else
int servoPin = 18;
#endif
void setup() {
// Allow allocation of all timers
ESP32PWM::allocateTimer(0);
ESP32PWM::allocateTimer(1);
ESP32PWM::allocateTimer(2);
ESP32PWM::allocateTimer(3);
myservo.setPeriodHertz(50); // standard 50 hz servo
myservo.attach(servoPin, 1000, 2000); // attaches the servo on pin 18 to the servo object
// using default min/max of 1000us and 2000us
// different servos may require different min/max settings
// for an accurate 0 to 180 sweep
}
void loop() {
for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}
Hallo,
ja, sorry, ich habe bisher noch keinen Servo am ESP32 betrieben und mit nur ein Beispiel angesehen. Das kam mir aufwändiger vor, als dein Sketch.
Habe jetzt das Beispiel selbst getestet und kannte an einem ESP32 DEV Modul sowie an einem ESP32-C3 den Fehler feststellen.
Habe aber leider keine Idee, wie der zu beheben ist.
Habe es noch mit einer älteren core-Version 1.0.6 getestet. Da gibt es auch Warnungen, aber er kompiliert.