Probleme mit Servo bei fork von Freddy

Liebes Forum
ich habe den HaniMandl nach dieser Anleitung vom Freddy3108 den HaniMandl-3.0 nachgebaut nur mit dem Unterschied

            // 3x Schalter Ein 1 - Aus - Ein 2
            const int switch_betrieb_pin = 15;
            const int switch_vcc_pin     = 2;     // <- Vcc dieser Pin war vorher auf 9
            const int switch_setup_pin   = 4;

War er auf Pin 9 Angesteckt funktionierte mein Display nicht so wie es soll.

Aber ich habe jetzt Festgestellt das mein Servo nicht Funktioniert. 5 V liegen am Kabel vom Motor an. Aber ob ein Signal kommt weis ich jetzt nicht wie ich es Testen könnt mit dem Multimeter.

Danach hatte ich dieses versucht. allerdings beim Kompilieren sagt er das mehrere Preferences.h vorhanden sind. Wenn ich auf die Bibliothek 0.12.1 installiert habe. Anfangs hatte ich ESP32Servo Vers. 3.04 installiert

Auch diese Änderung habe ich schon Probiert. Ohne erfolg

Was kann ich noch dafür tun ?

Gruß Florian

Die Variante von Freddy können wir hier nicht unterstützen, da wir sie nicht entwickelt haben. Frag bitte bei ihm direkt nach.

Ok ich Dachte er Habe nur des Große Display hinzugefügt bzw. den ESP32 Wroom

So ganz genau kann ich dir nicht sagen, was geändert wurde, da müsstest du bei Freddy’s GitHub-Repo schauen, wenn es interessiert. Ich nehme aber an, dass die Pins großteils anders sind. Hast du das Display schon umgelötet oder aus I2C gekauft? Falls nicht und es noch auf SPI ist würde ich das auch so lassen und statt dessen die Code-Modifikation machen, ist ggf einfacher.

Display ist schon auf I²C umgebaut und Funktioniert einwandfrei. Nur ich konnte den Hardwaretreiber für I²C nicht verwenden und läuft auf Software. Problem das es funktionierte war nur ein Pin den ich sowohl im Sketch als auch auf der Platine Änderte.

Ich Installiere mir gerade auf Dem Laptop alles damit ich von vorn alles aufspielen kann in der Hoffnung mit der Älteren Lib von ESP32_servo zu arbeiten. Da ich scheinbar nicht Sauber Downgraden kann

Kennst du dich mit dem handling von Arduino-Bibliotheken aus? Falls es Probleme gibt könnte eine “Deinstallation” der entsprechenden Bibliothek ggf. helfen: Probleme mit der Waage, Gewicht springt stark

Die im Arduino-Bibliotheksmanager vorhandenen kann man darüber normalerweise ganz gut downgraden, händisch installierte sollte man vorher löschen.

Ich hab Arduino IDE vorher nie richtig genutzt. Hab bisher meist nur mit N++ Programmiert

Aber Das Problem mit dem Servo habe ich erstmal soweit hinbekommen. Ich hatte die lib ESP32Servo lib aus der Bibliotheksverwaltung gezogen und Installiert. Allerdings hätte ich die Zip Downloaden und einbauen müssen. wie es auch im Kopf steht. Allerdings muss ich auch aus der Boardverwaltung ESP32 von Espressif auf 2.0.17 downgraden. Jetzt muss ich noch schauen weshalb die Wage ab jetzt nichtmehr Funktioniert.

Darf ich hier noch wegen Probleme mit der Waage Posten und um Rat fragen? oder muss/Soll ich eienen neuen Post erstellen?

Klar, einfach fragen!! ;-)

Bevor ich Software vom ESP32_Servo + ESP32 (expressiv) geändert habe Funktionierte die Waage

Jetzt mit dem Downgrade nichtmehr. Ich habe die Aktuellen Versionen Aufgespielt. Hab den Ordner ESP32_Servo gelöscht aus dem …\Arduino\libary.… und Sie Fuktioniert noch immer nicht. Kann ich sie anderweitig Testen?

Bin langsam am überlegen doch ne Andere HaniMandl variante zu verwenden die Aktueller ist. Aber alle sind auf Helltec bassierend was ich so gesehen habe. Ich find auch nichts. welche Versionen der Ersteller damals verwendete.

Hi Florian. Hilft Dir das weiter?

Es sieht ohnehin so aus, als sollten wir die Version der ESPServo Bibliothek aktualisieren, wie bei Use newer Version of ESPServo library (at least for Heltec Wifi V3 Boards) · Issue #61 · hiveeyes/hanimandl · GitHub von Ralf berichtet?

öhm bei mir wird von HX711 als neueste Version die 0.4.0 angezeigt

Meine HX711 variante gibt es dann andere ?

Das Projekt das ich genutzt Habe. ist 4 Jahre alt. Erfordert aber die ERfüllung an 2,42" Display und ESP32-Wroom. Daher hatte ich nur dieses Eine Projekt gefunden und warscheinlich auch diese Probleme

Alles klar. Mit dieser Referenz …

… ist die ehemals kanonische HX711 Bibliothek von Bogdan Necula gemeint, in ebendieser Version. Du verwendest gerade scheinbar die neue kanonische HX711 Bibliothek von Rob Tillaart.

HaniMandl wurde mit der erstgenannten Bibliothek entwickelt. Möglicherweise bringt es schon Erfolg, auf diese umzustellen?

P.S.: Wir wollen definitiv auf die Neue HX711 Bibliothek für Arduino von Rob Tillaart umstellen, aber es ist noch nicht geschehen. Zumindest nicht in der Codebase bei GitHub - hiveeyes/hanimandl: HaniMandl ist ein halbautomatischer Honig-Abfüll-Roboter.. Ist es denn im Fork von Freddy bereits anders?

Freddys code nutzt mit #include <HX711.h> /* aus dem Bibliotheksverwalter */ auch “unsere” HX711-lib, du musst also nur wie in der offiziellen Anleitung beschreiben die korrekte lib installieren, vorher die falsche deinstallieren:

Es ist einfach doof, wenn zwei unterschiedliche Bibliotheken hier den gleichen Dateinamen für unterschiedliche Bibliotheken verwenden #include "HX711.h" :-/

An deiner Stelle würde ich die aktuelle Version des offiziellen codes versenden, mit ein hardware-Level suchen und dann die pins entsprechend anpassen, falls du die pins wie bei Freddy beschrieben schon angelötet hast.

Ich hatte z.B. auch Hardware-Level 2 großteils für einen ESP32 Wroom übernommen und das klappte super. Neben den Pins die im code offensichtlich anpassbar sind müsstest du noch die Zeile mit U8G2_SSD1306_128X64_... im Blick haben, da werden die pins für das Display festgelegt.

Servo-Lib ist in der Zwischenzeit auch angepasst worden und wird nicht mehr wie im alten code von Freddy eingebunden s. Bisherige ESP32Servo-Bibliothek mit der im Arduino-Bibliotheksverwalter ersetzen - #13 by RoSch

Ist erstmal soweit Umgeschrieben ich habe Hardware-Level 1 umgeschrieben.

Ist das nur die Pin Belegung ändern und für den OLED anpassen ? in der *.ino ?
Bibliotheken sind Installiert wie in der Platformio geschrieben.
Aber es ändert nichts. Waage zeigt keine Änderungen.
Wenn ich die Waage abstecke Ändert sich immer leicht um 1g die Anzeige, ist das Normal ?

#elif HARDWARE_LEVEL == 1
//
// Heltec Version 1

// OLED 2.42" externes Display 
//U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ 16, /* clock=*/ 15, /* data=*/ 4);   // HW I2C crashed den Code
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ 22, /* data=*/ 21, /* reset=*/ 16);

// Rotary Encoder
const int outputA  = 33;
const int outputB  = 26;
const int outputSW = 32;

// Servo
const int servo_pin = 0; //2

// 3x Schalter Ein 1 - Aus - Ein 2
const int switch_betrieb_pin = 15;  //19
const int switch_vcc_pin     = 18;  //22 <- Vcc 
const int switch_setup_pin   = 4;  //21

// Taster 
const int button_start_vcc_pin = 13;  // <- Vcc 
const int button_start_pin     = 12;
const int button_stop_vcc_pin  = 14;  // <- Vcc 
const int button_stop_pin      = 27;

// Poti
const int poti_pin = 7; //39

// Wägezelle-IC 
const int hx711_sck_pin = 17;
const int hx711_dt_pin  = 5;

// Buzzer - aktiver Piezo
static int buzzer_pin = 25;
#else

Aktuell Klappt es

esp32                   **2.0.17**

ESP32Servo              **0.9.0**

HX711 Arduino Library   **0.7.4**
Preferences             **2.1.0**
U8g2                    **2.34.22** 

Erst funktionierte dann der Servo nicht. Ich habe ihn auf einen Pin 2 gesetzt
Soll ich des Komplette Programm nochmal Posten?

Warum schlägst du dich mit so einem alten Code durch? Und übrigens, das Schema (Schaltbild) von Freddy hat noch einen Fehler (glaube nicht das dein GND mit dem internen Speicher Kommunizieren will). Auch SW I2C ist nicht mehr zu empfehlen. Da kann der HM schön träge werden. habe bei SW I2C für den OLED refresch schon bis zu 600ms gemessen.

Ich hatte des gesehn, das der nicht ein Display mit auf dem Board hatte und wollt das Getrennt halten. Deshalb bin ich an der Bauanleitung geblieben. Ja der Fehler am Schaltbild wo die GND Leitungen auf CMD gehen. Hatte ich schon auch entdeckt und ausgebessert für mich. Hier nur Untergegangen.

Ich hatte Sämtliche Treiber HW I²C versucht aber ohne erfolg. Irgendwo hatte ich auch gelesen das der ESP32-WROOM das nicht unterstützt.

@florian8619 Ich habe auch mal mit diesem Code angefangen. Bin aber sehr schnell zum orginalen übergegangen und habe damals den Development Code der Version 0.2.13 genommen. Nur schon deswegen, das ich die gleichen Bibliotheken verwenden kann. Da muss halt das Pinnmapping geändert werden, so das es für deinen Aufbau passt.
Den Display musst du dann nur separat anschliessen an die I2C Pins vom Module.
SCL → PIO22
SDA → PIO21
RES → irdend ein PIO der kann im Code definiert werden
VCC → V3V
GND → GND
DC → GND
SC → GND

Der Servo sollte funktionieren an PIO2. Die Library am besten in der Version 0.12.0 (habe gesehen die sind nun schon bei Version 3.x. Dies hat aber glaube ich noch nimand getestet.)

1 Like