STM32 PWM Prinzip und Anwendung
Globaler Lieferant elektronischer Komponenten AMPHEO PTY LTD: Umfangreiches Inventar für One-Stop-Shopping. Einfache Anfragen, schnelle, individuelle Lösungen und Angebote.
PWM (Pulse Width Modulation) ist eine grundlegende Technik, die in STM32 und anderen Mikrocontrollern verwendet wird, um analoges Verhalten mit digitalen Signalen zu steuern. Es wird weit verbreitet in Anwendungen wie Motorsteuerung, LED-Helligkeit, Audiosignalerzeugung und mehr.
🔧 PWM-Prinzip bei STM32
✅ Was ist PWM?
PWM (Pulsweitenmodulation) ist ein digitales Signal mit fester Frequenz, aber variabler Impulsbreite (Duty Cycle).
-
Frequenz: Wie oft sich das Signal pro Sekunde wiederholt (z. B. 1 kHz = 1000 Mal pro Sekunde)
-
Duty Cycle (Tastverhältnis): Der prozentuale Anteil der Zeit, in der das Signal in einem Zyklus HIGH ist.
Beispiele:
-
0 % Tastverhältnis → Immer LOW
-
50 % Tastverhältnis → Halb HIGH, halb LOW
-
100 % Tastverhältnis → Immer HIGH
✅ Wie STM32 PWM erzeugt
STM32 verwendet Timer im PWM-Modus, um PWM-Signale zu erzeugen:
-
Der Timer zählt bis zu einem bestimmten Wert (ARR – Auto Reload Register).
-
Wenn der Zähler den Vergleichswert (CCR – Capture Compare Register) erreicht, wird der Ausgang geschaltet.
-
Der Vergleichswert bestimmt das Tastverhältnis des PWM-Signals.
📐 PWM-Formel
Für einen Timer im Aufwärtszählmodus:
-
PWM-Frequenz =
Timer-Takt / ((PSC + 1) * (ARR + 1))
-
Tastverhältnis (%) =
(CCR / ARR) * 100
Dabei gilt:
-
PSC
= Prescaler (Vorteiler) -
ARR
= Auto-Reload-Wert -
CCR
= Vergleichswert
🛠️ Anwendungsbeispiel: LED-Helligkeitssteuerung
🧱 Hardware
-
STM32F4-Board
-
LED angeschlossen an einen PWM-fähigen Pin (z. B. TIM3_CH1)
⚙️ Konfiguration in STM32CubeMX
-
Timer auswählen (z. B. TIM3)
-
PWM-Kanal aktivieren (z. B. CH1) an einem Pin (z. B. PB4)
-
Prescaler und Periodenwert (ARR) setzen, um Frequenz zu definieren
-
GPIO als Alternate Function konfigurieren
-
Im generierten Code
__HAL_TIM_SET_COMPARE()
verwenden, um das Tastverhältnis zu steuern
📄 Beispielcode
🎯 Typische Anwendungen
Anwendung | Beschreibung |
---|---|
LED-Dimmen | Helligkeit durch variierendes Tastverhältnis |
Motorsteuerung | Drehzahl oder Richtung über PWM steuern |
Servoansteuerung | 1–2 ms Impulse bei 50 Hz für Positionssteuerung |
Tonerzeugung | Tonfrequenzen durch PWM-Frequenz erzeugen |
Schaltnetzteile | PWM zur Spannungsregelung verwenden |
📚 Fazit
PWM beim STM32 wird mithilfe von Timern realisiert und ermöglicht eine hochpräzise, flexible Steuerung. Die Konfiguration ist mit STM32CubeMX einfach umzusetzen und eignet sich hervorragend für Echtzeitanwendungen wie LED-Dimmen, Motorsteuerung oder Signalverarbeitung.
Verwandte Artikel
- ·Wie benutzt man stm32 als Logikanalysator?
- ·Wie erstelle ich eine PCB für STM32?
- ·Unterschied zwischen HEX- und BIN-Dateien in Mikrocontrollern
- ·Wie man eine STM32 CNC 4-Achsen macht?
- ·UART-Serielle Kommunikationsexperiment basierend auf Raspberry Pi 4B und STM32
- ·Wie wählt man den Takt für den STM32 aus?
- ·Welches ist besser für Anfänger: ESP32 oder STM32? Ein Roboter-Beispiel
- ·Anwendung eingebetteter Elektronik im Bereich der Unterhaltungselektronik
- ·Vergleich von FPGA-, ARM-, STM32- und DSP-Plattformen