ESPTOP 10 PWM mit Mikropython mit Thonny IDE

ESPTOP 10 PWM mit Mikropython mit Thonny IDE
ESP32 ist ein Mikrocontroller-basiertes Board mit PWM-Stiften. PWM ist eine Technik, mit der ESP32 die Breite eines digitalen Impulssignals verändern kann, und als Ergebnisausgangsdc -Spannung variiert je nach IT. Die meisten Mikrocontroller haben eine interne Timeruhr, mit der sie ein bestimmtes PWM -Signal für Frequenz erzeugen. In diesem Artikel werden wir heute PWM -Stifte diskutieren und wie sie in ESP32 konfiguriert werden können.

PWM -Stifte in ESP32

Die ESP32 -Karte verfügt über 16 unabhängige Kanäle, mit denen PWM -Signale mit unterschiedlichen Zeiträumen und Breite erzeugt werden können. Fast alle GPIO -Stifte, die als Ausgabe wirken können, können verwendet werden, um ein PWM -Signal zu erzeugen. GPIO -Stifte 34,35,36,39 können nicht als PWM -Stifte verwendet werden, da sie nur Pins eingeben.

In der 36 Pins -Variante von ESP32 -Board werden jedoch auch die sechs SPI -integrierten Stifte als PWM -Signalgeneratoren nicht empfohlen.

So verwenden Sie ESP32 -PWM -Stifte

PWM ist eine Technik zur Steuerung der Ausgabe mit einem variablen digitalen Impulssignal. PWM hilft bei der Steuerung der Motordrehzahl oder der LED -Helligkeit. Hauptkomponente bei der Erzeugung von PWM -Signalen ist das interne Timermodul. Der Timer wird von der internen Mikrocontroller -Uhr -Quelle gesteuert.

Mit der Zeit wird sein Wert mit zwei Komparatoren verglichen und sobald er die definierte erreicht Auslastungsgrad Wert Ein Signal am PWM -Pin wird ausgelöst, wodurch die Pinzustände auf niedrig wechseln. Als nächstes zählt das Timer -Signal, bis es die erreicht Zeitraum Wert registrieren. Jetzt wird der Komparator jetzt wieder einen neuen Auslöser erzeugen und die Pins -State -Verschiebung von PWM -Stiften von niedrig zu hoch.

Um ein PWM -Signal an GPIO -Stiften zu erzeugen, müssen die folgenden vier Eigenschaften definiert werden:

  • PWM -Frequenz: Die Frequenz für PWM ist gegenüber dem Zeitraum entgegengesetzt. Jeder Wert kann je nach Anwendung festgelegt werden.
  • PWM -Auflösung: Die Auflösung definiert die Anzahl der diskreten Arbeitszyklus, die wir kontrollieren können.
  • Auslastungsgrad: Zeitspanne, in der sich ein PWM -Signal im aktiven Zustand befindet.
  • GPIO PIN: PIN -Anzahl von ESP32, bei dem PWM -Signal gelesen werden soll. (GPIO 34,35,36,39 können nicht verwendet werden)

Hier sind einige Punkte, die man berücksichtigen muss, während Sie das ESP32 -PWM -Signal konfigurieren:

  • Insgesamt 16 unabhängige PWM -Kanäle sind in ESP32, die in zwei Gruppen aufgeteilt werden, die jeweils 8 Kanäle haben.
  • 8 PWM -Kanäle sind hohe Geschwindigkeit, während die anderen 8 Kanäle niedrig sind.
  • Die PWM-Auflösung kann zwischen 1-Bit und 16 Bit festgelegt werden.
  • Die PWM -Frequenz hängt von der Auflösung von PWM ab.
  • Der Arbeitszyklus kann ohne Prozessorintervention automatisch erhöht oder verringert werden.

Steuerung der LED -Helligkeit unter Verwendung von PWM -Signal in ESP32

Jetzt werden wir die LED -Helligkeit mit einem PWM -Signal steuern. LED mit ESP32 GPIO PIN 18 anschließen.

Die folgende Tabelle zeigt die PIN -Konfiguration für LED mit ESP32.

ESP32 GPIO PIN LED
GPIO 18 +Ich habe
GND -Ich habe

Code für eine LED -Helligkeitskontrolle

Programmieren eines ESP32 -Boards mit Micropython Open Thonny Ide und laden Sie den folgenden Code hoch. Denken Sie daran, das ESP32 -Board mit Micropython -Firmware zu blinken, wenn Sie erstmals verwendet werden.

vom Maschinenimportstift, PWM
Zum Zeitpunkt des Imports
Frequenz = 5000
LED1 = PWM (Pin (18), Frequenz)
während wahr:
Für Duty_Cycle im Bereich (0, 1024):
LED1.Dienst (Duty_Cycle)
Schlaf (0.005)

Der Code wurde mit dem Importieren der erforderlichen Klassen begonnen.

vom Maschinenimportstift, PWM

Der LED Objekt wird für das PWM -Signal initialisiert.

LED = PWM (Pin (18), Frequenz)

Ein PWM -Objekt benötigt zwei Argumente: Eine ist die Frequenz und ein anderer ist Dienstzyklus.

Frequenz: Der Frequenzwert reicht von 0 bis 78125. Hier haben wir eine Frequenz von 5 kHz verwendet, um die LED -Helligkeit zu kontrollieren.

Auslastungsgrad: Sein Wert reicht von 0 Und 1023. Hier 1023 ist gleich dem maximalen Wert, der definiert 100% Arbeitszyklus und volle Helligkeit der LED und ähnlich auf der gegenüberliegenden Seite, 0 entspricht 0% Dienstzyklus bedeutet, dass LED völlig schwach ist.

Verwenden der Arbeitszyklusfunktion Pflicht() Wir verabschieden den Arbeitszyklus als Argument für diese Funktion.

LED.Dienst (Duty_Cycle)

In der während Schleife a für Die Schleife wird initialisiert, die den Arbeitszyklus jedes Mal erhöht, wenn er mit einem Intervall von 5 ms um 1 läuft.

Für Duty_Cycle im Bereich (0, 1024):
LED.Dienst (Duty_Cycle)
Schlaf (0.005)

Der Bereich() Funktion kann geschrieben werden als:

Bereich (Start, Stopp, Schritt)

Hier Start Gibt den Startwert des Arbeitszyklus an, der gleich 0 entspricht. stoppen Erklären Sie den Wert, den wir den Arbeitszyklus stoppen möchten. Hier haben wir den Wert 1024 verwendet, da der Maximalwert, bei dem er kommen kann.

Das Letzte Schritt beschreibt den Inkrementierungsfaktor und standardmäßig ist es 1.

Ausgang
Auf der Hardware können wir die Helligkeit der LED in vollem Umfang sehen. Dies bedeutet, dass das Arbeitszyklussignal bei 1024 liegt.

Jetzt können wir sehen, dass die LED völlig schwach ist, was bedeutet, dass der Arbeitszykluswert bei 0 liegt.

Steuern mehrerer Stifte mit demselben PWM -Signal

Wir können mehrere Stifte mit demselben PWM -Signal steuern, das aus einem einzelnen PWM -Kanal erzeugt wird. Jetzt werden wir das Beispiel für ein einzelnes LED ändern, um mehrere LEDs Helligkeit zu kontrollieren.

Schließen Sie drei LEDs an GPIO -Pins 23, 18 und 15 an.

Unter dem Tisch gibt wir PIN -Layout für drei LEDs.

ESP32 GPIO PIN LED
GPIO 23 +Ich habe 1 geführt
GPIO 18 +Ich habe 2 geführt
GPIO 15 +Ich habe 3 geführt
GND LED Common GND

Code für mehrere LEDs Helligkeitskontrolle

Offen Thonny Ide und schreiben Sie den Code in das Editor -Fenster. Schließen Sie danach das ESP32 -Board an und laden Sie es hoch.

vom Maschinenimportstift, PWM
Zum Zeitpunkt des Imports
Frequenz = 5000
LED1 = PWM (Pin (18), Frequenz)
LED2 = PWM (Pin (23), Frequenz)
LED3 = PWM (Pin (15), Frequenz)
während wahr:
Für Duty_Cycle im Bereich (0, 1024):
LED1.Dienst (Duty_Cycle)
LED2.Dienst (Duty_Cycle)
LED3.Dienst (Duty_Cycle)
Schlaf (0.005)

Der Code ähnelt dem vorherigen Beispiel. Wir haben gerade zwei neue LEDs am gpio pin hinzugefügt 23 Und 15.

Der gleiche Arbeitszyklus- und Frequenzwert wird verwendet.

Ausgang
Im Ausgangsabschnitt können wir sehen, dass alle drei LEDs in voller Helligkeit sind, was bedeutet.

Jetzt sind alle drei LEDs düster, was bedeutet, dass alle den gleichen Arbeitszyklus aus demselben PWM -Kanal mit dem Dienstzykluswert 0 haben.

Wir haben die LED -Helligkeit mit dem PWM -Signal erfolgreich kontrolliert.

Abschluss

In diesem Leitfaden haben wir ESP32 PWM -Pins besprochen und wie sie zur Steuerung von Geräten verwendet werden können. Wir haben auch den Code zur Steuerung von Einzel- und mehreren LEDs mit dem PWM -Kanal besprochen. Mit dieser Anleitung kann jede Art von Hardware mit Hilfe des PWM -Signals gesteuert werden.