Invertiertes PWM im ESP32

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Tom-12
User
Beiträge: 1
Registriert: Dienstag 27. April 2021, 05:43

Hi,

wie invertiere ich ein PWM-Signal im ESP32 mit Micropython? Ich benötige zwei Signale. Signal 2 Invertiert zu Signal 1.
Ich hatte schon "Signal(PWM, invert=True)" Probiert, was jedoch nicht funktionuert hat. Denn habe ich probiert ein
PWM selber zu erstellen über einen Timer. Jedoch da er im loop erzeugt wurde, war er viel zu langsam.

Vielleicht hat hier jemand einen guten Ansatz, denn ich komm nicht so richtig weiter.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Was genau brauchst du? Muss der Pegel genau invertiert sein zum gegebenen Zeitpunkt? Oder reicht eine asynchrone PWM die einfach nur 20% liefert, wenn die andere 80% hat, und die Phasenlage ist egal?

Ersteres ist keine Frage der Programmierung. Da muss Hardware her, ein einfacher inverter wie der 74HC14.

Letzteres kannst du einfach selbst programmieren, indem du die beiden Duty cycle passend setzt.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Nachtrag: ich sehe gerade, dass der ESP32 nicht nur PWM generiert, sondern echte Motor Controller hat. Siehe https://docs.espressif.com/projects/esp ... on-example

Das kann sein, dass man das damit hin bekommt (die Doku ist nicht so klar), aber ich bezweifele, das micropython das kann. Du hast zwei Möglichkeiten (neben den vorher genannten):

- umsteigen auf C/C++ und das ESP IDF. Das ist ziemlich gut.
- micropython mit einem eigenen C-Modul erweitern, das diese umfangreichen Möglichkeiten abbildet. Auch das bedeutet C Programmierung.
Antworten