Inhaltsverzeichnis:

Profis wissen das! - Gunook
Profis wissen das! - Gunook

Video: Profis wissen das! - Gunook

Video: Profis wissen das! - Gunook
Video: Leo Rojas - Der einsame Hirte (Videoclip) 2024, November
Anonim
Image
Image

Heute werden wir über „ ESP32 automatisierte ADC-Kalibrierung “sprechen. Es mag wie ein sehr technisches Thema erscheinen, aber ich denke, es ist sehr wichtig, dass Sie ein wenig darüber wissen.

Dies liegt daran, dass es nicht nur um den ESP32 oder sogar nur um die ADC-Kalibrierung geht, sondern um alles, was mit analogen Sensoren zu tun hat, die Sie vielleicht auslesen möchten.

Die meisten Sensoren sind nicht linear, daher werden wir einen automatisierten Prototyp-Kalibrator für Analog-Digital-Wandler vorstellen. Außerdem werden wir eine Korrektur eines ESP32 AD vornehmen.

Schritt 1: Einführung

Verwendete Ressourcen
Verwendete Ressourcen

Es gibt ein Video, in dem ich ein wenig über dieses Thema spreche: Wusstest du nicht? ESP32 ADC-Anpassung. Lassen Sie uns nun auf eine automatisierte Weise sprechen, die Sie daran hindert, den gesamten Prozess der polynomischen Regression durchzuführen. Hör zu!

Schritt 2: Verwendete Ressourcen

· Jumper

· 1x Protoboard

· 1x ESP WROOM 32 DevKit

· 1x USB-Kabel

· 2x 10k Widerstände

· 1x 6k8 Widerstand oder 1x 10k mechanisches Potentiometer zum Einstellen des Spannungsteilers

· 1x X9C103 - 10k digitales Potentiometer

· 1x LM358 - Operationsverstärker

Schritt 3: Verwendete Schaltung

Verwendete Schaltung
Verwendete Schaltung

In dieser Schaltung ist der LM358 ein Operationsverstärker in der „Spannungspuffer“-Konfiguration, der die beiden Spannungsteiler so isoliert, dass einer sich nicht gegenseitig beeinflusst. Dies ermöglicht einen einfacheren Ausdruck, da R1 und R2 in guter Näherung nicht mehr parallel zu RB betrachtet werden können.

Schritt 4: Ausgangsspannung hängt von der Variation des digitalen Potentiometers X9C103. ab

Ausgangsspannung hängt von der Variation des digitalen Potentiometers X9C103. ab
Ausgangsspannung hängt von der Variation des digitalen Potentiometers X9C103. ab

Basierend auf dem Ausdruck, den wir für die Schaltung erhalten haben, ist dies die Spannungskurve an ihrem Ausgang, wenn wir das digitale Potentiometer von 0 bis 10k variieren.

Schritt 5: Steuerung des X9C103

Steuerung des X9C103
Steuerung des X9C103

· Um unser digitales Potentiometer X9C103 zu steuern, werden wir es mit 5V speisen, die von demselben USB kommen, der den ESP32 mit Strom versorgt, und VCC anschließen.

· Wir verbinden den UP / DOWN-Pin mit GPIO12.

· Wir verbinden den Pin INCREMENT mit GPIO13.

· Wir verbinden DEVICE SELECT (CS) und VSS mit GND.

· Wir schließen VH / RH an die 5V-Versorgung an.

· Wir verbinden VL / RL mit GND.

· Wir schließen RW / VW an den Spannungspuffereingang an.

Schritt 6: Verbindungen

Anschlüsse
Anschlüsse

Schritt 7: Auf dem Oszilloskop der Auf- und Ab-Rampen erfassen

Auf dem Oszilloskop der Auf- und Ab-Rampen erfassen
Auf dem Oszilloskop der Auf- und Ab-Rampen erfassen

Wir können die beiden vom ESP32-Code generierten Rampen beobachten.

Die Werte der Anstiegsrampe werden erfasst und zur Auswertung und Ermittlung der Korrekturkurve an die C#-Software gesendet.

Schritt 8: Erwartet im Vergleich zum Lesen

Erwartet im Vergleich zu gelesen
Erwartet im Vergleich zu gelesen

Schritt 9: Korrektur

Korrektur
Korrektur

Wir werden die Fehlerkurve verwenden, um den ADC zu korrigieren. Dazu füttern wir ein in C# erstelltes Programm mit den Werten des ADC. Es berechnet die Differenz zwischen dem gelesenen und dem erwarteten Wert und erstellt so eine ERROR-Kurve als Funktion des ADC-Werts.

Wenn wir das Verhalten dieser Kurve kennen, kennen wir den Fehler und können ihn korrigieren.

Um diese Kurve zu kennen, verwendet das C#-Programm eine Bibliothek, die eine polynomielle Regression durchführt (wie in früheren Videos durchgeführt).

Schritt 10: Erwartet im Vergleich zum Lesen nach der Korrektur

Erwartet im Vergleich zu Lesen nach Korrektur
Erwartet im Vergleich zu Lesen nach Korrektur

Schritt 11: Programmausführung in C#

Programmausführung in C#
Programmausführung in C#

Schritt 12: Warten Sie auf die Ramp START-Meldung

Warten Sie auf die Ramp START-Nachricht
Warten Sie auf die Ramp START-Nachricht
Warten Sie auf die Ramp START-Nachricht
Warten Sie auf die Ramp START-Nachricht

Schritt 13: ESP32-Quellcode - Beispiel einer Korrekturfunktion und deren Verwendung

ESP32-Quellcode - Beispiel einer Korrekturfunktion und deren Verwendung
ESP32-Quellcode - Beispiel einer Korrekturfunktion und deren Verwendung

Schritt 14: Vergleich mit früheren Techniken

Vergleich mit früheren Techniken
Vergleich mit früheren Techniken

Schritt 15: ESP32 SOURCE CODE - Deklarationen und Setup ()

ESP32 SOURCE CODE - Deklarationen und Einrichtung ()
ESP32 SOURCE CODE - Deklarationen und Einrichtung ()

Schritt 16: ESP32-QUELLCODE - Schleife ()

ESP32-QUELLCODE - Schleife ()
ESP32-QUELLCODE - Schleife ()

Schritt 17: ESP32-QUELLCODE - Schleife ()

ESP32-QUELLCODE - Schleife ()
ESP32-QUELLCODE - Schleife ()

Schritt 18: ESP32-QUELLCODE - Impuls ()

ESP32-QUELLCODE - Impuls ()
ESP32-QUELLCODE - Impuls ()

Schritt 19: QUELLCODE DES PROGRAMMS IN C# - Programmausführung in C#

QUELLCODE DES PROGRAMMS IN C# - Programmausführung in C#
QUELLCODE DES PROGRAMMS IN C# - Programmausführung in C#

Schritt 20: QUELLCODE DES PROGRAMMS IN C# - Bibliotheken

QUELLCODE DES PROGRAMMS IN C# - Bibliotheken
QUELLCODE DES PROGRAMMS IN C# - Bibliotheken

Schritt 21: QUELLCODE DES PROGRAMMS IN C# - Namespace, Class und Global

QUELLCODE DES PROGRAMMS IN C# - Namespace, Class und Global
QUELLCODE DES PROGRAMMS IN C# - Namespace, Class und Global

Schritt 22: QUELLCODE DES PROGRAMMS IN C# - RegPol ()

QUELLCODE DES PROGRAMMS IN C# - RegPol ()
QUELLCODE DES PROGRAMMS IN C# - RegPol ()

Schritt 23:

Bild
Bild

Schritt 24: Laden Sie die Dateien herunter

PDF

RAR

Empfohlen: