Seite 1 von 1

Invertiertes PWM im ESP32

Verfasst: Dienstag 27. April 2021, 06:56
von Tom-12
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.

Re: Invertiertes PWM im ESP32

Verfasst: Dienstag 27. April 2021, 08:12
von __deets__
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.

Re: Invertiertes PWM im ESP3

Verfasst: Dienstag 27. April 2021, 08:50
von __deets__
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.