Bemerkung

Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.

Warum beitreten?

  • Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.

  • Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.

  • Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.

  • Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.

  • Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.

👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [hier] und treten Sie heute bei!

5.8 Den Knopf Drehen

Ein Potentiometer ist ein dreipoliges Gerät, das häufig verwendet wird, um den Widerstand in einem Schaltkreis anzupassen. Es verfügt über einen Drehknopf oder einen Schieberegler, mit dem der Widerstandswert des Potentiometers verändert werden kann. In diesem Projekt werden wir es nutzen, um die Helligkeit einer LED zu steuern, ähnlich wie bei einer Schreibtischlampe im täglichen Leben. Durch Anpassen der Position des Potentiometers können wir den Widerstand im Schaltkreis verändern, wodurch der Stromfluss durch die LED reguliert und deren Helligkeit entsprechend angepasst wird. Dies ermöglicht es uns, ein anpassbares und verstellbares Beleuchtungserlebnis zu schaffen, ähnlich dem einer Schreibtischlampe.

Benötigte Komponenten

Für dieses Projekt benötigen wir die folgenden Komponenten.

Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link:

Name

ARTIKEL IN DIESEM KIT

LINK

ESP32 Starter Kit

320+

ESP32 Starter Kit

Sie können sie auch separat über die untenstehenden Links kaufen.

KOMPONENTENVORSTELLUNG

KAUF-LINK

ESP32-Platine

KAUFEN

ESP32-Kameraerweiterung

KAUFEN

Steckbrett

KAUFEN

Überbrückungsdrähte

KAUFEN

Widerstand

KAUFEN

LED

KAUFEN

Potentiometer

KAUFEN

Verfügbare Pins

  • Verfügbare Pins

    Hier ist eine Liste der verfügbaren Pins auf dem ESP32-Platine für dieses Projekt.

    Verfügbare Pins

    IO14, IO25, I35, I34, I39, I36

  • Strapping Pins

    Die folgenden Pins sind Strapping-Pins, die den Startprozess des ESP32 während des Einschaltens oder Resets beeinflussen. Sobald der ESP32 jedoch erfolgreich gestartet ist, können sie als normale Pins verwendet werden.

    Strapping Pins

    IO0, IO12

Schaltplan

../../_images/circuit_5.8_potentiometer.png

Wenn Sie das Potentiometer drehen, ändert sich der Wert von I35. Durch Programmierung können Sie den Wert von I35 verwenden, um die Helligkeit der LED zu steuern. Daher ändert sich die Helligkeit der LED entsprechend, wenn Sie das Potentiometer drehen.

Verdrahtung

../../_images/5.8_potentiometer_bb.png

Code

Bemerkung

  • Die Datei 5.8_pot.ino kann unter dem Pfad esp32-starter-kit-main\c\codes\5.8_pot geöffnet werden.

  • Nachdem Sie das Board (ESP32 Dev Module) und den passenden Port ausgewählt haben, klicken Sie auf den Upload-Button.

  • „Unbekanntes COMxx“ wird immer angezeigt?

Nachdem der Code erfolgreich hochgeladen wurde, drehen Sie am Potentiometer und Sie werden sehen, wie sich die Helligkeit der LED entsprechend ändert. Gleichzeitig können Sie die analogen und Spannungswerte des Potentiometers im seriellen Monitor sehen.

Wie funktioniert das?

  1. Definition der Konstanten für Pin-Verbindungen und PWM-Einstellungen.

    const int potPin = 35; // Potentiometer connected to
    const int ledPin = 26; // LED connected to
    
    // PWM settings
    const int freq = 5000; // PWM frequency
    const int resolution = 12; // PWM resolution (bits)
    

    Hier ist die PWM-Auflösung auf 12 Bit eingestellt und der Bereich ist 0-4095.

  2. Konfiguration des Systems in der Funktion setup().

    void setup() {
        Serial.begin(115200);
    
        // Configure PWM pin
        ledcAttach(ledPin, freq, resolution);
    }
    
    • In der Funktion setup() wird die serielle Kommunikation mit einer Baudrate von 115200 gestartet.

    • Die Funktion ledcAttach() wird aufgerufen, um den angegebenen LED-Pin mit der angegebenen Frequenz und Auflösung einzurichten.

  3. Hauptloop (wird wiederholt ausgeführt) in der Funktion loop().

    void loop() {
    
        int potValue = analogRead(potPin); // read the value of the potentiometer
        uint32_t voltage_mV = analogReadMilliVolts(potPin); // Read the voltage in millivolts
    
        ledcWrite(ledPin, potValue);
    
        Serial.print("Potentiometer Value: ");
        Serial.print(potValue);
        Serial.print(", Voltage: ");
        Serial.print(voltage_mV / 1000.0); // Convert millivolts to volts
        Serial.println(" V");
    
        delay(100);
    }
    
    • uint32_t analogReadMilliVolts(uint8_t pin);: Diese Funktion wird verwendet, um den ADC-Wert für einen gegebenen Pin/ADC-Kanal in Millivolt zu erhalten.

      • pin GPIO-Pin, um den analogen Wert zu lesen.

    Der Potentiometerwert wird direkt als PWM-Tastverhältnis für die Steuerung der LED-Helligkeit über die Funktion ledcWrite() verwendet, da der Wertebereich ebenfalls von 0 bis 4095 reicht.