[Unterwasser-Triebwerkssteuerung] Wie verwende ich STM32, um ESC über PWM zu steuern?
Geposted von Fengyukun am
Viele Forscher, die Mikrocontroller verwenden möchten, um den Betrieb von Triebwerken zu steuern, haben viele Informationen im Internet gefunden, aber festgestellt, dass viele davon nicht klar geschrieben sind. APISQUEEN beschreibt grob, wie das Problem gelöst werden kann.
Ich hoffe, dass jeder seine Erfahrungen im Kommentarbereich teilen und mehr Menschen helfen kann.
Der Regler, den wir gekauft haben, mag zwar anders sein, aber die allgemeine Steuerungsidee ist dieselbe, daher glaube ich, dass Sie Ihre Ziele nach der Lektüre dieses Artikels erreichen können.
PWM-Signal:
(1) PWM-Wellensteuerung (im Allgemeinen verwendet ESC eine 50-Hz- oder 20-ms-PWM-Wellensteuerung);
(2) Zwischenpause (bezieht sich hier im Allgemeinen auf einen Arbeitszyklus auf hoher Ebene) 1,5 ms, tatsächlich handelt es sich um eine Zwischenpause zwischen 1,475 ms und 1,525 ms;
(3) Der Steuerbereich beträgt 1 ms bis 2 ms;
(4) Gehen Sie 1,5 ms bis 2 ms vorwärts und 1,5 ms bis 1 ms zurück.
Hier ist eine einfache Referenz basierend auf Arduino:
HINWEIS: Der Geschwindigkeitsregler muss zur Verwendung entsperrt werden! Wenn Sie den Geschwindigkeitsregler an die Stromversorgung anschließen, piept er drei Mal. Wenn er erfolgreich entsperrt wurde, piept er zwei Mal, also insgesamt fünf Mal. Wenn Sie ESC nicht erfolgreich entsperren, können Sie es nicht zur Steuerung verwenden. Unter Bezugnahme auf den obigen Code können wir daher schließen, dass die Möglichkeit zum Entsperren des ESC darin besteht, ihn nach der Initialisierung auf ein neutrales Signal zu setzen und auf den Empfang des Signals (zwei Pieptöne) zu warten, bevor mit der Geschwindigkeitsregelung begonnen wird.
Kontroll- und Debugging-Methoden
Wir verwenden das STM32F7-Entwicklungsboard und die HAL-Bibliothek zum Programmieren und Debuggen. Tatsächlich gibt der Timer PWM-Wellen aus. Aber es gibt viele Dinge, auf die man achten muss, und unklare Details verschwenden wirklich Zeit und Energie. Hier ein paar Worte zur Debugging-Erfahrung.
Achten Sie beim Konfigurieren der PWM-Welle im Timer zunächst darauf, sie nicht als Entsperrsignal zu initialisieren, ihr einen zufälligen Wert zu geben oder sie nicht zu konfigurieren. Da ESC erst entsperrt wird, nachdem der Timer und die PWM initialisiert wurden, ist in meinem Beispiel das mittlere Stoppsignal von 1,5 ms das Entsperrsignal, dann können Sie die PWM nicht von Anfang an auf 1,5 ms konfigurieren, da ESC sonst nur einmal piept Drei Power-Pieptöne und dann dreht sich Ihr Paddel immer noch nicht.
Zweitens achten Sie auf die Verwendung von Verzögerungen. Zuerst habe ich keine Verzögerung verwendet, und das Ergebnis war, dass der Regler nur piepte und dann nicht reagierte. Als ich dann die PWM-Welle mit einem Oszilloskop beobachtete, stellte ich fest, dass die von mir initialisierte PWM direkt blinkte, und das musste ich tun Geben Sie ESC Zeit, das Entriegelungssignal zu empfangen. Aber Sie sollten zu diesem Zeitpunkt auch aufpassen. Zuerst habe ich Delay_us () zum Konfigurieren verwendet, aber das Problem konnte nicht gelöst werden. Später habe ich es in Delay_ms (1000) geändert, was bedeutet, dass die konfigurierte Zeit 1 s beträgt. Dort ist immer noch ein Problem. Dann habe ich die Zeit angepasst. Nach zwei letzten Pieptönen beginnt der Motor zu drehen. Daher ist es sehr wichtig, den Empfangszeitpunkt dieses Entriegelungssignals zu kennen.
Achten Sie auch darauf, den Umgang mit einem Oszilloskop zu erlernen, um zu überprüfen, ob während der Verwendung Probleme mit den von Ihnen konfigurierten Signalen auftreten. Unten ist die PWM-Welle mit 1,5 ms Arbeitszyklus, 20 ms Periode und 3,3 V Amplitude, die ich zu Beginn initialisiert habe.
Zusammenfassend lässt sich sagen, dass im gesamten Prozess Folgendes beachtet werden sollte:
(1) ESC wird im Allgemeinen mit einer Frequenz von 50 Hz gesteuert, und der Steuerbereich liegt ungefähr zwischen 1 ms und 2 ms, was natürlich von der Situation abhängt.
(2) Nach dem Einschalten piept der ESC dreimal. Nach erfolgreicher Entsperrung piept der ESC zweimal. Wenn der Geschwindigkeitsregler jedoch nur einmal piept, kann dies bedeuten, dass der Geschwindigkeitsregler das von Ihnen konfigurierte Signal empfangen hat, das Gerät jedoch nicht erfolgreich entsperrt hat. Sie müssen daher den Entsperrcode noch einmal überprüfen, um festzustellen, ob Fehler vorliegen. Wenn der Regler keinen Ton von sich gibt, empfängt er nicht einmal ein Signal. Überprüfen Sie Ihre Verkabelung und Ihren Code noch einmal.
(3) Achten Sie darauf, die Verzögerungsfunktion zu nutzen, um dem ESC eine gewisse Zeit zum Empfang des Entriegelungssignals zu geben. Jeder ESC ist anders, Sie können dies also selbst anpassen.
(4) Achten Sie auf die Erdung, verbinden Sie die ESC-Signalleitung mit dem Signalausgangsanschluss der Steuerplatine und erden Sie dann die Signalleitung mit der GND-Erdung der Steuerplatine.
(5) Lernen Sie, mit einem Oszilloskop konfigurierte Signale zu überprüfen.
Schließen Sie nicht die falsche Leitung an!
Diesen Post teilen
- 0 Kommentare
- Tags: ESC