Wie kann ich das Zurücksetzen des ESP32 stoppen, wenn der Motor startet?

Dies ist mein erster Beitrag hier und ich bin neu in der Elektronik. Ich versuche, einen Motor mit einer ESP32-Kamera zu steuern. Siehe beigefügtes Bild für ein ziemlich grobes Schema. Das Netzteil ist für 2,4 A ausgelegt. Ich verwende einen 12-V-DC-Schneckengetriebemotor mit 5 U / min wie diesen DC-12-V-Schneckengetriebemotor .

Wenn der Motor startet, wird der ESP32 zurückgesetzt (ich habe das herausgefunden, indem ich den ESP beim Start blinken ließ). Währenddessen dreht sich der Motor ohne Unterbrechung weiter (ich habe ESPHome auf dem ESP32 und behandle 2 GPIO-Pins als Verriegelungsschalter [es kann immer nur einer eingeschaltet sein]).

Wenn Sie online lesen, scheint es, als würde der Anstieg beim Motorstart einen Spannungsabfall am ESP32 (möglicherweise als "Brownout" bezeichnet) verursachen, der einen Reset verursacht. Wie kann ich das auf einfache Weise verhindern?

Ich habe festgestellt, dass das Problem behoben ist, wenn ich den Motor an ein anderes Netzteil anschließe, aber ich möchte lieber keine zwei Netzteile verwenden.

Referenzen zu ähnlichen Themen:

Mögliche Lösungen

  1. Unterschiedliches Netzteil für Motor. Ich habe das ausprobiert und es funktioniert, aber ich möchte lieber kein zweites Netzteil verwenden. Ich denke, der ESP32 zieht ~ 250 mA und der Motor ~ 100 mA, also denke ich, dass ich gut innerhalb der Spezifikation des 2,4-A-Netzteils liege.
  2. Schottky-Diode - Ich habe keine davon und möchte nicht auf eine Bestellung warten
  3. "Entkopplungskondensatoren". Ich habe eine Tüte mit verschiedenen Elektrolytkondensatoren. Welche soll ich verwenden und wo platziere ich sie?
  4. PWM - Wenden Sie allmählich PWM an, um den Motor auf Drehzahl zu bringen. Würde das mit meiner Schaltung funktionieren, mit PWM vor dem Aufwärtswandler? Wird der Aufwärtswandler es sowieso nur auf 12 V anheben, entweder nur mit Kondensatoren oder mit PWM?

Notiz

  • Der DRV8833 ist auf 10 V ausgelegt, weshalb ich den Aufwärtswandler auf 10 V und nicht auf 12 V eingestellt habe. Der Motor scheint immer noch gut auf 10 V zu laufen.

schematisch Bild der Schaltung

Bearbeiten

Vielen Dank an die Leute, die hier gepostet haben, @winny, @vir, @bobflux und @thebusybee. Ich habe die PWM-Beschleunigungsmethode implementiert, die funktioniert. Bei den mittleren PWM-Werten ist ein lautes, hohes, jammerndes Geräusch zu hören, das verschwindet, sobald der Motor auf Drehzahl kommt. Audio hier verfügbar: https://streamable.com/3xgxy0

Korrekte Entkopplung, eine passende Freilaufdiode über dem Motor, Bulk-Kondensator und gutes Layout? Bitte zeigen Sie Ihren Schaltplan und Layout. 2. Fast jede Diode reicht aus. 3. Keine Elektrolyte, nur Keramik- oder Kunststofffolie.
@winny - danke für die Antwort. Ich habe grob meinen Schaltplan gezeichnet und angehängt. Kannst du das Bild sehen? Ich habe einen 470uF Elektrolytkondensator. Füge ich das einfach nach dem Netzteil mit dem positiven Bein des Kondensators an + 5 V und dem negativen Bein an Masse hinzu?
Vielleicht, aber mit dem „Einschaltstrom“ zum Motor sacken Ihre 5 V wahrscheinlich zu niedrig ab und Sie würden eine Diode in Reihe benötigen, um zu verhindern, dass der Motor die gesamte Ladung von der MCU raubt. 470 uF = Massenkapazität. Was hast du direkt mit dem MCU Vcc Pin verbunden? Irgendeine 100 nF Keramik?
Ich habe keine Keramikkondensatoren oder Dioden, werde aber für zukünftige Projekte ein Sortiment bestellen. Dumme Frage - ich habe LEDs "Light Emitting Diode". Kann ich eine LED anstelle einer Diode verwenden? Der Vcc-Pin ist einfach direkt mit USB + 5V verbunden
Hängt davon ab, läuft Ihre MCU über einen 3,3-V-LDO? Wenn Sie einen extrem niedrigen Dropout auf Ihrem LDO haben, können Sie mit der Verwendung einer roten LED (niedrigste Vf) davonkommen, aber Schottky wäre ideal. Wenn Sie 3,3 V LDO haben, können Sie auch nur einen sehr großen Kondensator direkt an Vcc entfernen. Wenn Sie den Motor PWM-schalten und den Arbeitszyklus sehr langsam und mit angemessen hoher Frequenz hochfahren können, könnte dies das Problem entschärfen.
Oh, der Motor, den Sie verlinkt haben, hat einen Stillstandsstrom von 1,8 A, vergleichen Sie dies mit dem Strom von 60 mA ohne Last ... Dies ist der Strom, den er beim Start benötigt, und noch mehr beim sofortigen Umkehren.
@winny - Ich habe den größten Kondensator ausprobiert, den ich habe (470 uF elektrolytisch), bekomme aber immer noch die Resets. Ich denke, der ESP32 kann mit 5 V oder 3,3 V ausgeschaltet werden. Ich schalte es aus 5v. Ich habe ein AMS1117-Modul, könnte also 5 V daran anlegen und die MCU mit 3,3 V ausschalten
@thebusybee - hier ist genau der Motor, den ich verwende (Modell mit 5 U / min). Die Spezifikationen sind nicht auf der Amazon-Seite, aber es sieht ähnlich aus wie die, die ich in meinem Beitrag verlinkt habe. amazon.ca/gp/product/B08GCM7FY7 . Ah, 1,8A ist viel. Ich hatte gehofft, tatsächlich ein 1A-Telefonladegerät anstelle meiner 2,4A-Versorgung zu verwenden
Wo haben Sie den 470-uF-Kondensator platziert, vor oder nach dem LDO?
Ich benutze kein LDO. Ich denke, es gibt einen an Bord des ESP32. Ich habe den positiven Schenkel des Kondensators auf + 5 V und den negativen Schenkel auf Masse gelegt
Platzieren Sie es nach dem Onboard-LDO, direkt auf der Vcc-Leitung der MCU.
@winny, LEDs haben normalerweise eine sehr niedrige max. Sperrspannung, wie 2 V oder so. Es würde also nicht lange als Klemmdiode überleben.
@TonyM Nicht klemmen, in Reihe schalten, um Rückstrom zu blockieren. Aber Ihr Punkt ist nicht weniger gültig, eine LED ist eine wirklich schlechte Wahl.
@winny, ah, sehen Sie, was Sie meinen :-)
@winny - auf den integrierten LDO kann nicht zugegriffen werden, daher habe ich mit meinem eigenen AMS1117-Modul (das gleiche wie der integrierte LDO) getestet und den ESP32 über die 3,3 V von AMS1117 mit Strom versorgt. Ich habe den Kondensator + an AMS1117 3,3 V out und - an GND angeschlossen. Ich bekomme immer noch den Reset
Ich verstehe nicht, wie es unzugänglich ist, aber es war nur ein Pflaster. Ihr Motor kann die 5-V-Schiene immer noch auf fast Null ziehen. Kannst du es sanft starten, die PWM hochfahren?
Es wird einige Zeit dauern, bis Sie herausgefunden haben, wie Sie ESPHome verwenden, um das PWM-Signal anzulegen und IN1 und IN2 des DRV8833 zu verriegeln, sodass jeweils nur einer hoch ist. Werde berichten, wenn ich es herausgefunden habe. (LDO ist technisch zugänglich, aber auf der Seite der MCU, die dem Steckbrett zugewandt ist, so dass es beim Stecken so schwierig ist, darauf zuzugreifen. Ich müsste auch direkt daran löten. Da es auch genau das gleiche LDO ist wie ich [AMS1117], I Ich dachte, es ist äquivalent, meinen eigenen LDO zu verwenden und 3,3 V einzuspeisen. Ich könnte dann das Steckbrett weiter verwenden.)
Ich habe gerade einen ersten Versuch mit der PWM-Beschleunigung gemacht! Es klingt schrecklich (hören Sie sich Audio an, ich habe hier ein Video hochgeladen - streamable.com/3xgxy0 ). Ist das Geräusch in Ordnung? Und bis ich eine Diode bekomme, wie groß ist die Gefahr? Da der DRV8833 dem Motor am nächsten ist, besteht die Gefahr des Rückstroms?

Antworten (2)

Diese lötfreien Steckbretter haben einen ziemlich hohen Kontaktwiderstand, so dass die Spannung abfällt, wenn Sie ernsthaften Strom durch sie fließen lassen.

Sie sollten also wirklich Drähte für Ihre Hochstromversorgung verwenden und diese an die Platinen löten. Für den ESP32 spielt es keine Rolle, aber für den Motor schon.

Unterschiedliches Netzteil für Motor.

Die Verwendung von Boost für einen Motor ist problematisch. Es wäre logischer, eine 10-V-Versorgung für das Hochstrommaterial und einen Abwärtswandler zu haben, um den Pi damit zu versorgen. Auch wenn Ihre 10 V unter Last ein paar Volt abfallen, begann sie bei 10 V, sodass immer noch genug vorhanden ist, um den Pi zu betreiben. Bei 5V weniger Spielraum.

Ich denke, der ESP32 zieht ~ 250 mA und der Motor ~ 100 mA

Der Motor zieht beim Starten das 10-fache und multipliziert sich mit 2, da Sie von 5 V aufladen. Wenn der Boost 10 V 1 A ausgibt, verbraucht er 2 A von 5 V. Die Ausgangsleistung ergibt sich aus der Eingangsleistung und Leistung = VxI. Wenn Sie also 2x mehr Volt am Ausgang wünschen, erhalten Sie 2x mehr Ampere am Eingang. Für einen Dollar gilt die gleiche Regel, die Ausgangsleistung kommt von der Eingangsleistung, aber die Ausgangsspannung ist die niedrigere, was bedeutet, dass der Eingangsstrom niedriger als der Eingangsstrom ist.

"Entkopplungskondensatoren". Ich habe eine Tüte mit verschiedenen Elektrolytkondensatoren. Welche soll ich verwenden und wo platziere ich sie?

Es gibt viele kleine Entkopplungskappen auf Ihrem Board, aber Sie können einen großen Elko auf das Netzteil setzen.

PWM - Wenden Sie allmählich PWM an, um den Motor auf Drehzahl zu bringen.

Ja.

Würde das mit meiner Schaltung funktionieren, mit PWM vor dem Aufwärtswandler?

Der Boost sollte immer eingeschaltet sein und die DRV8833-Karte mit Strom versorgen, die den Motor steuert.

DRV8833 hat einen PWM-Eingang, den Sie verwenden sollten, um Ihren Motor sanft zu starten.

Vielen Dank für die Erklärung hier. Interessant, dass der Kontaktwiderstand ein Problem ist. Meine Hoffnung war es, vor dem Löten einen Prototyp zu erstellen, aber damit gibt es eindeutig ein Problem. Kann ich für den Elektrolytkondensator einfach 470 uF mit positivem Bein auf + 5 V und negativem Bein auf Masse legen, direkt neben der Micro-USB-Breakout-Platine? (Ich habe eine gemischte Tüte Kondensatoren, auch mit anderen Werten). Ich werde mich jetzt mit der Anwendung von PWM aus der ESPHome-Software befassen
@maurera Messen, messen, messen. Wenn Sie kein gutes Oszilloskop haben, experimentieren Sie mit verschiedenen Kondensatoren und verwenden Sie schließlich ein Vielfaches des kleinsten Werts, der funktioniert hat.
Arbeite jetzt! Ich habe gerade eine Bearbeitung am Ende meines ursprünglichen Beitrags gepostet. Danke für die Hilfe!
Wenn Sie der Ton stört, ändern Sie die PWM-Frequenz auf etwas Unhörbares wie 25 kHz (überprüfen Sie, ob das DRV dies unterstützt).
@bobflux, die Verwendung von Überschall-PWM-Frequenzen (über 20 kHz oder so), um diesen Motor automatisch leise zu machen, ist ein technischer Mythos (siehe electronic.stackexchange.com/a/243336/115257 )
bobflux und @TonyM - das hat funktioniert! Die Standard-PWM-Frequenz in der Software war 1000 Hz. Ich habe auf 25000Hz umgestellt und jetzt ist das hohe Heulen weg.
Großartige Neuigkeiten. Nach wie vor ist es ein Mythos, dass es automatisch für PWM funktioniert, alles andere als wahr. Aber ich freue mich, dass es hier für dich funktioniert hat.
Ich glaube nicht, dass es automatisch funktioniert, aber es ist eine billige Sache, es zuerst zu versuchen, falls es doch funktioniert ...

Ich schlage die PWM vor, da Sie sowieso ein Mikro haben. Sie brauchen immer noch einen Kondensator, aber keinen lächerlich großen. Wenn Sie versuchen, es von einem USB-Konverter mit einem wahrscheinlich 28-AWG-USB-Kabel zu betreiben, wird Ihr Startstoß es überschwemmen, wenn Sie versuchen, mit voller Geschwindigkeit zu starten.

Danke für die Antwort. Ich muss mir die ESPHome-Software ansehen, um zu sehen, wie man pwm für einen sanften Start anwendet. Warum beeinflusst die Drahtstärke den Anlaufstoß? Gibt es dafür einen Begriff, den ich googeln kann?
Als ich auf einem Arduino für einen linearen Aktuator eine schnelle und schmutzige Rampen-PWM implementierte, verwendete ich einfach verschachtelte for-Schleifen, die die gesamte PWM-Periode in Ein- und Ausschaltzeit aufteilten und eine auf Kosten der anderen linear erhöhten. Ich bin sicher, es gibt einen eleganteren Weg, aber das ist das Ergebnis, auf das Sie schießen sollten. Die Drahtstärke wirkt sich auf den Spannungsabfall aus, den Sie beim Starten des Motors sehen, da die Spannung, wenn sie auf Ihrer Platine ankommt, um I * R reduziert wird. Mit dem von Bobflux geschätzten Anstieg von 2 A sehen Sie 2 * 2 A * 0,212 Ohm (1 m, 28 AWG-Draht), was 0,848 V entspricht.
Den Übergangswiderstand könntest du am lötfreien Steckbrett prüfen, ich tippe auf minimal 0,2 Ohm
Ich habe gerade genau 0,2 Ohm gemessen (meine Multimetersonden sind zu dick, um in die Löcher des Steckbretts zu passen, also zu 2 10-cm-Jumpern in benachbarten Löchern).
Arbeite jetzt! Ich habe gerade eine Bearbeitung am Ende meines ursprünglichen Beitrags gepostet. Danke für die Hilfe!