Spannungsversorgung TGA200 von Hager


Google-Suche auf MEINE-SCHALTUNG.de :





Online Rechner

Chronik

Dauerkalender


Analoge Signale und ESP32

Mit einem Potentiometer und einer Balkenanzeige wollen wir nachfolgend die Funktionalität des Analog-Systems des ESP32 ein wenig ausprobieren. ESP32 kann analoge Signale in beiden Richtungen verarbeiten. Die analogen Signale können gelesen und bei Bedarf ausgegeben werden. Die dafür zuständige Gerätschaft besteht aus DACs (Digital to Analog Converter, zuständig für analoge Signalausgabe) und ADCs (Analog to Digital Converter, zuständig für das Lesen der Signale).

Analoge Eingänge

Für das Lesen der analoger Signalen stehen 18 ADC-Kanäle zur Verfügung. Die zuständigen ADCs wandeln die gemessene Spannung (0-3,3V) in digitale Werte um und stellen dem Programm zur weiteren Verarbeitung zur Verfügung. Die Auflösung beträgt 12 Bit. Die möglichen Werte pendeln im Bereich von 0 bis 4096.
Das Auslesen der Werte erfolgt mit der Funktion analogRead(). Als Parameter muss die PIN-Nummer, an dem die Spannung gemessen wird, angegeben werden. Beispiel:
analogRead(36);
Die Auflösung kann mit der Funktion analogReadResolution (resolution) zwischen 9 Bits und 12 Bits verändert werden.
Die Messgenauigkeit der ADCs lässt einiges zu wünschen übrig. Der Verlauf ist nicht immer linear und weicht von der geraden Linie ab. Für genaue Messungen empfiehlt es sich, auf externe AD-Wandler umzusteigen.

Analoge Ausgänge

Beim ESP32 stehen zwei GPIOs, die man für analoge Ausgabe nutzen kann, zur Verfügung. Es sind die GPIO 25 und GPIO 26. Hinter den beiden Ausgängen verbergen sich zwei 8-Bit DACs, die es ermöglichen, die Spannungswerte in Stufen von 0 bis 255 einzustellen. Damit entspricht eine Stufe einer Spannung in Höhe von 3,3V / 255 = 13 mV. Die Ausgänge müssen nicht mit pinMode vordefiniert werden. Im Programm wird die Funktion dacWrite() benutzt. Sie erwartet zwei Parameter: GPIO-Nummer und den gewünschten Spannungswert, angegeben in Stufen von 0 bis 255. Beispiel:
dacWrite (25, 155);
Mit dem Befehl wird am Ausgang Pin 25 eine Spannung in Höhe von 2V ausgegeben.

Spannungsanzeige
(als Anwendungsbeispiel)

In der folgenden Schaltung kommen gleichzeitig ein analoger Eingang und ein analoger Ausgang zum Einsatz. Die Aufgabe der Schaltung ist äußerst einfach. Die Spannung, die am analogen Eingang gemessen wird, soll unverändert an einem analogen Ausgang wieder ausgegeben werden. Das war’s eigentlich. Zusätzlich, damit wir das Geschehen am Ausgang beobachten können, wird hier zwecks Visualisierung eine Balkenanzeige angeschlossen.

Balkenanzeige (10 Elemente)

Balkenanzeige (10 Elemente)

Balkenanzeige


LM3914

LM3914. Bei dem LM3914 handelt e sich um einen Anzeigentreiber, der bis zu 10 LEDs ansteuern kann. Er stellt zehn interne Widerstände zur Verfügung, wodurch die Anzahl der Komponenten und Verdrahtungsaufwand reduziert werden können.

LM3914


Potentiometer

Potentiometer. Der stufenlos einstellbare Widerstand leistet z.B. bei Spannungsteilern sehr gute Dienste. Anders als bei den festen Widerständen, lässt sich die Teilung mit einem Potentiometer exakt einstellen.

Der Schaltplan

Schaltplan

Schaltplan

Die Testschaltung

Testschaltung

Testschaltung

Das Programm

// *************************************************************************************
// Analoge Signale und ESP32
// ESP32-Dev-KitC V4
// Arduino IDE 1.8.19
// *************************************************************************************
      
  int Analog_Eingang = 34;                           // GPIO 34, analoger Eingang
  int Analog_Ausgang = 25;                           // GPIO 25, analoger Ausgang
  int Messung;                                       // aktuelle Messung
  int Ausgabe;                                       // Ausgabe Wert

  // ***********************************************************************************
  void setup() {

  }

  // ***********************************************************************************
  void loop() {

      Messung = analogRead (Analog_Eingang);         // Messung durchführen
      Ausgabe = Messung / 16;                        // Wert für die Ausgabe umrechnen
      dacWrite (Analog_Ausgang, Ausgabe);            // Ausgabe am Ausgang
      delay (10);    
  }
  // ***********************************************************************************  


An dem GPIO 34 des ESP32 wird die Spannung, die manuell eingestellt werden kann, gemessen. Der maximale Wert der Spannung beträgt 3,3V. In dem Programm stehen, je nach aktuellem Wert der Spannung, Messwerte im Bereich 0 bis 4096 zur weiteren Verarbeitung zur Verfügung. Dank Teilung durch 16 werden diese Werte auf den Bereich von 0 bis 255 skaliert. Anschließend, ohne weitere Bearbeitung, werden diese Werte zu dem Ausgang (GPIO 25) weitergeleitet. Auf diese Weise wird die Spannung vom Eingang unverändert zum Ausgang weitergeleitet.
Mit der Balkenanzeige wird der Wert am Ausgang zusätzlich visualisiert. Der volle Ausschlag (10 LEDs) entspricht einer Spannung von 3,3V.
Der Anzeigentreiber LM3914 arbeitet mit einer Referenzspannung von 1,25 V. Um die Ausgangsspannung an den Treiber anzupassen, wird ihm ein Spannungsteiler vorgeschaltet. Er wird mit dem Potentiometer P2 und dem Widerstand R1 gebildet. Um die passende Teilung zu erhalten, soll der Potentiometer auf ca. 16,4 kOhm eingestellt werden.
Bei Berechnungen kann der E-Rechner behilflich sein:

E-Rechner


Kurzvideo

Kurzvideo


Weitere Themen:



Google-Suche auf MEINE-SCHALTUNG.de :


Home Impressum Datenschutz