INHALTE

Der Mikrocontroller ESP32 und die Programmierumgebung Arduino IDE

  • ESP32-Features und Pin-Belegung
  • Grenzwerte des ESP32
    – Maximale Strombelastung der als Ausgang definierten Pins
    – maximal zulässige Summe der Gesamtausgangsströme
    – Treiberstufen bei höheren Lastströmen erforderlich (npn-Transistor bzw. MOS-FET)
  • Integrierte DA- und AD-Wandler des ESP32
    Vorstellung der ungenauen nichtlinearen Kennlinie der DAC-Kanäle und der ADC-Wandler
  • Einführung in die Programmierumgebung Arduino-IDE
    – Einbindung des ESP32-Package über json-Datei und Auswahl des ESP32 Mikrocontrollers
    – Serieller Monitor: Bedeutung der Baudrate anhand des Demo-Programms für die Anzeige der verfügbaren WLAN-
       Verbindungen vorstellen
    – Die Einbindung von Programm-Bibliotheken für die Nutzung komplexer Komponenten (z. B. eines LCD-Displays
       oder einer 7-Segmentanzeige für die Darstellung von Zahlenwerten)

 

Der Ultraschallsensor HC-SR04

  • Allgemeine Informationen zum Ultraschall und der Ausbreitungsgeschwindigkeit in unterschiedlichen Medien
  • Temperaturabhängigkeit der Schallgeschwindigkeit
  • Erzeugen und Messen von Ultraschall mit Piezo-Elementen
  • Das Impuls-Echo-Verfahren
  • Berechnungsformel unter Berücksichtigung der Umgebungstemperatur für eine möglichst genaue Ermittlung der Distanz
  • Arbeitsweise und technische Eigenschaften des HC-SR04 (Manual)
  • Einbinden der Bibliothek Utrasonic.h in die Arduino-IDE
  • Funktionstest mit Demo-Programm

 

Aufbereitung der Messwerte für die Darstellung auf einer 7-Segment-Anzeige oder einem LCD-Display

Unabhängig vom verwendeten Anzeige-Modul muss der dezimale Zahlenwert zunächst in einzelne Ziffern zerlegt und die Position des Dezimalpunktes gespeichert werden. Die danach folgenden Inhalte varieren in Abhängigkeit der verwendeten Anzeige-Module.


4-stellige 7-Segment-Anzeige mit Dezimalpunkten und Stromverstärker (ohne Decoder)
Wird eine 4-stellige 7-Segment-Anzeige mit Dezimalpunkten und Stromverstärker (ohne Decoder) verwendet, müssen die einzelnen Zeichen des Zeichensatzes  zunächst in einem Byte-Array gespeichert werden. Diese Bytes müssen vor der Ausgabe in 8 einzelne Bits zerlegt werden (7 Segmente und Dezimalpunkt), um die einzelnen Segmente über die Ausgänge des ESP32 schalten zu können. Die Aktualisierung der der Daten muss in diesem Fall mit hoher Geschwindigkeit erfolgen, um eine flackerfreie Anzeige zu erhalten. Um andere Programmteile nicht zu beeinträchtigen, sollte die Multitasking-Fähigkeit des ESP32 genutzt und das Aktualisierungsprogramm in einem separaten Parallel-Prozess abgearbeitet werden.

  • Separation der einzelnen Ziffern des gemessenenen Zahlenwertes und Speicherung der Position des Dezimalpunktes einer Dezimalzahl (float)
  • Erzeugung, Speicherung und Kodierung des Zeichensatzes für die LOW-aktiven LED-Segmente und den Dezimalpunkt (logische Ausmaskieren von Bits)
  • Programmierung eines separaten Prozesses in Rahmen der Multitasking-Funktion des ESP32


7-Segment-Anzeige mit Stromverstärker und Schieberegister SN74HC595
Die Aktualisierung der 7-Segment-Anzeige mit Stromverstärker erfordert weniger Rechenleistung, wenn für die vier Stellen der Anzeige jeweils ein 8-Bit-Schiebe­register SN74HC595 eingesetzt wird. Dieser kann nach dem seriellen Übertragen eines Bytes (für die Ansteuerung der 7 Segmente einschließlich des Dezimalpunktes), die Zustände der 8 Ausgangsbits in internen Buffern (Latches) speichern. Ein manuelles Aktualisieren der einzelnen Ziffern ist daher nur erforderlich, wenn sich ihr Wert ändert.

  • Separation der einzelnen Ziffern des gemessenenen Zahlenwertes und Speicherung der Position des Dezimalpunktes einer Dezimalzahl (float)
  • Erzeugung, Speicherung und Kodierung des Zeichensatzes für die LOW-aktiven LED-Segmente und den Dezimalpunkt (logische Ausmaskieren von Bits)
  • Ansteuerung der vier 8-Bit-Schiebe­register SN74HC595 zur Ausgabe der einzelnen Ziffern auf dem 7-Segment-Display


LCD-Display
Wird statt der vierstelligen 7-Segment-Anzeige ein LCD-Display verwendet, ist es erforderlich, die dazugehörige Programmbibliothek einzubinden. Die Übertragung der einzelnen Zeichen muss im ASCII-Code erfolgen, da der interne Dekoder des LCD-Displays nur diesen Code in eine Punkt-Matrix für die Schriftzeichen umwandeln kann. Auch das LCD-Display besitzt einen internen Speicher, der in der Regel wesentlich größer als die Zahl der maximal ausgebbaren Zeichen ist. Damit ist es z. B. möglich, Lauftexte zu realisieren.

  • Separation der einzelnen Ziffern des gemessenenen Zahlenwertes und Speicherung der Position des Dezimalpunktes einer Dezimalzahl (float)
  • Konvertierung der einzelnen Ziffern (und des Dezimalzeichens) in den dazugehörigen ASCII-Code zur Übergabe an das LCD-Display
  • Realisierung der seriellen Datenübertragung über den I2C- oder SPI-Bus (wenn das genutzte LCD-Display über eine dieser Schnittstellen angesteuert wird)

 

Zuletzt geändert: Dienstag, 27. September 2022, 02:01