[Underwater Propulsion Control] Hur styr man ESC med PWM med STM32?

Postat av Fengyukun

Många forskare vill använda en mikrokontroller för att styra driften av propellern på Internet för att hitta en hel del information, men fann att många av dem inte är skrivna mycket tydligt, APISQUEEN grovt inspelade hur man löser.
Jag hoppas att du kan dela din erfarenhet i kommentarfältet, kan hjälpa fler människor.
Vi köpte ESC kan vara annorlunda, men den övergripande kontrollidén är densamma, så jag tror att du kommer att kunna uppnå ditt syfte efter att ha läst den här artikeln.

Pulsbreddsmodulerade signaler:
(1) PWM-vågkontroll (i allmänhet använder ESC 50Hz, dvs. 20 ms PWM-vågkontroll);
(2) Mid-stop (här hänvisar i allmänhet till den höga nivån på arbetscykeln) 1.5ms, i själva verket mellan 1.475ms till 1.525ms är ute av mid-stop;
(3) Kontrollområde 1 ms till 2 ms;
(4) Framåt 1,5 ms till 2 ms, bakåt 1,5 ms till 1 ms.



Detta är en Arduino-baserad för kort referens:



Obs: ESC måste låsas upp innan den kan användas! ESC-enheten piper 3 gånger när strömmen slås på och 2 gånger när den har låsts upp, totalt 5 gånger. Om ESC inte har låsts upp korrekt kan ESC inte användas för styrning. Med hänvisning till ovanstående kod kan vi därför dra slutsatsen att sättet att låsa upp ESC är att ställa in den på neutral signal efter initialisering och vänta på att signalen tas emot (två pip) för att starta hastighetsregleringen.


Metod för kontroll och felsökning


Vi använder STM32F7-utvecklingskortet med HAL-biblioteket för programmering och felsökning, vilket faktiskt är en PWM-våg med timerutgång. Men det finns många saker att vara uppmärksam på, många detaljer är inte tydliga verkligen försenad tid och energi, den här sidan av felsökningsupplevelsen för att säga några ord.

Först och främst, när du konfigurerar PWM-vågen i timern, var försiktig så att du inte initierar den som din upplåsningssignal, ge honom ett slumpmässigt värde eller antingen inte konfigurerat. Eftersom ESC bara låser upp efter att timern och PWM är initialiserade, i fallet med den jag har, är 1,5 ms neutral stoppsignal dess upplåsningssignal, då kan du inte konfigurera PWM för att starta vid 1,5 ms, annars kommer ESC bara att ringa en gång efter tre ström på pip, och då kommer dina paddlar fortfarande inte att vända.



För det andra, var försiktig med användningen av fördröjningar. Först använde jag inte fördröjning, resultatet är att ESC bara piper och sedan inte svarar, sedan när jag observerade PWM-vågen med ett oscilloskop, fann jag att min initialiserade PWM blinkar direkt, vilket behöver ge tiden för ESC att ta emot upplåsningssignalen. Men den här gången är också att uppmärksamma, först använde jag delay_us () konfiguration, problemet kan inte lösas, och sedan ändras till delay_ms (1000), det vill säga konfigurera tiden för 1s, det finns fortfarande ett problem, och justera sedan tiden igen, och slutligen hörde två pip, och sedan började motorn att rotera. Då hur man behärskar mottagningstiden för denna upplåsningssignal är mycket viktigt.



Och var också uppmärksam på att lära dig att använda ett oscilloskop för att kontrollera om det finns något problem med den signal du konfigurerade under användning. Nedan visas en PWM-våg med en duty cycle på 1,5 ms, en period på 20 ms och en amplitud på 3,3 V som jag initialiserade i början.



Sammanfattningsvis behöver hela processen uppmärksammas:

(1) ESC kontrollerar i allmänhet frekvensen 50Hz, och kontrollområdet är ungefär mellan 1ms och 2ms, beroende på situationen, naturligtvis.
(2) ESC kommer att låta 3 pip när strömmen slås på och 2 pip när den är framgångsrikt upplåst. Men om ESC endast avger ett pip betyder det förmodligen att ESC har tagit emot den signal du konfigurerade men inte har lyckats låsa upp enheten, så du måste dubbelkontrollera om det finns något fel i din upplåsningskod. Om det inte finns något ljud från ESC, har det inte tagit emot signalen alls, vänligen dubbelkontrollera dina ledningar och kod.
(3) Var uppmärksam på användningen av tidsfördröjningsfunktionen, ge ESC en viss tid för att ta emot upplåsningssignalen, varje ESC är annorlunda, detta justerar sig självt.
(4) Var uppmärksam på marken, ESC-signallinjen till styrkortets signalutgångsport och sedan signallinjens jord till styrkortets GND.
(5) Lär dig att använda ett oscilloskop för att kontrollera dina konfigurerade signaler.
(6) Anslut inte fel kabel!

Dela det här inlägget



← Äldre inlägg Nyare inlägg →


0 kommentarer

Lämna en kommentar