Unterrichts- und Lernmaterial für Mikrocontroller
Unterrichts- und Lernmaterial fürMikrocontroller

Spannungen messen

1 - Potenziometerschaltung

  • Weitere Vorschläge zum gleichen Thema mit den Boards: Prop-BoE - Prop-AB - BASIC Stamp - Raspberry Pi

Ein Arduino UNO Board verfügt über einen 10 Bit Sechs-Kanal-Analog-Digital-Umsetzer. Eingangsspannungen zwischen 0 bis 5 Volt werden auf einen Bereich von 0 bis 1023 abgebildet. Die Auflösung liegt dann bei 5 Volt / 1024 = 4,9 mV pro Stufe. Der Einlesevorgang für einen analogen Spannungswert liegt bei 100 µs (0,0001 s); pro Sekunde lassen sich 10.000 Messungen durchführen.

Die Anschlüsse der sechs AD-Wandler sind auf den Arduino UNO Boards mit ANALOG IN gekennzeichnet und tragen die Bezeichnungen A0 ... A5.

Abbildung 1 - AD-Wandler Eingänge A0 ... A5

Angesprochen werden die AD-Wandler über die Funktion

  • analogRead(pin)
    
    

Als Rückgabewert wird eine Zahl vom Typ int (integer) zwischen 0 und 1023 ausgegeben.

2 - Übung 1 - Eine erste Spannungsmessung

Eine erste Spannungsmessung mit AD-Wandler
Material
  • 1x Arduino UNO oder NANO ESP32
  • 1x  USB-Verbindungskabel
  • 1x  Spannungsnetzteil
  • 1x  Potenziometer, 10 kOhm
Aufgaben
  • Baue die Schaltung nach vorliegender Schaltskizze auf dem Steckbrett auf.
  • Übertrage das Programm Potenziometer_UNO_WiFi_R2.ino in den Editor und speichere es ab.
  • Starte das Programm und öffne den seriellen Monitor.
  • Überprüfe, ob sich die angezeigten Werte verändern, wenn der Schleifer am Potenziometer bewegt wird.
  • Stelle fest, ob sich Werte zwischen 0 und 1023 liegen.

Schaltskizze und Schaltungsaufbau

Abbildung 2 - Schaltskizze (links) und Schaltungsaufbau auf dem Steckbrett und Verbindung zum Arduino Board (rechts)

TIPP: Sollte das Potenziometer nicht fest auf dem Steckbrett sitzen, dann begradige die drei Anschlussbeine des Potenziometers mit einer Flachzange.

Das Programm Potenziometer_UNO_WiFi_R2.ino

Abb. 3 - Das Programm Potenziometer_UNO_WiFi_R2.ino mit Datenausgabe auf dem seriellen Monitor

Im seriellen Monitor sollten für die Schleiferstellung linker Anschlag bzw. rechter Anschlag beim Potenziometer die Werte 0 bzw. 1023 angezeigt werden. Bei jeder Zwischenstellung des Schleifers wird ein Wert zwischen diesen beiden Extremen angezeigt (siehe Abb. 3).

3 - Übung 2 - Umrechnung der Rohdaten in Spannungsgrößen

Die vom AD-Wandler zurückgegebenen Werte liegen zwischen 0 und 1023; sie sind ein Maß für die Stellung des Schleifers beim eingesetzten Potenziometer und sie sind ein Maß für die Spannung, die vom Schleifer abgegriffen wird.

In der einen Extremposition (linker Anschlag) wird ein Wert 0 und bei Rechtsanschlag ein Wert 1023  im Terminal ausgegeben. Dieser höchste Wert entspricht der anliegenden Spannung  und das sind hier 5 Volt. Mit Hilfe des Dreisatzes können wir sagen:

  • 1023       entspricht 5 Volt
    1          entspricht 5 / 1023 Volt
    wert       entspricht 5 * wert / 1023 Volt
    
    

Mit dieser Formel (klassischer Dreisatz) kann die Umrechnung durchgeführt werden:

Das zugehörige Programm poti_1.ino ist durch wenige Zeilen ergänzt worden und es wurde die Fließkommavariable spannung vom Typ float eingeführt.

Das Programm Spannungsmessung_UNO_WiFi_R2.ino

Abb. 4 - Anzeige der Spannungswerte bei einem Potenziometer, dessen Mittelabgriff über A0 abgefragt wird.

Die zugehörige Terminalausgabe zeigt Bild 4. In der linken Spalte wird der vom AD-Wandler ausgegebene Wert angezeigt, rechts daneben der daraus berechnete Spannungswert nach Formel (1) in der Einheit Volt.

4 - Übung 3 - Spannungsmessung am Poti (grafische Programmierung)

Was wird benötigt?

  • Grafische Software VISUINO
  • Ein Arduino Board (ich benutze ein Arduino UNO WiFi)
  • Ein Potenziometer (z.B. 10 kOhm)
  • Steckbrett und Steckdraht (MA-MA)

 

Wie geht es weiter?

  • Starte das Programm VISUINO
  • Baue auf dem Steckbrett die Schaltung nach Schaltskizze (s. Abb. 5) auf.
  • Baue die Blockstruktur unter VISUINO auf.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Abb. 5 - Schaltskizze

Die Blockstruktur aufbauen

  • Auf der Arbeitsoberfläche von Visuino aktiviere das von dir benutzte Arduino Board. Ich benutze hier ein Arduino UNO WiFi Rev2.
  • Füge auf der Arbeitsoberfläche die beiden Blöcke "Taktgeber" und "Rohmesswerte" ein.
    Gib dazu im Icon-Fenster ganz rechts im Suchfeld "form" ein und ziehe das Icon "Formatted Text" in die Arbeitsoberfläche. Im Eigenschaften-Fenster wird der Name  in "Rohmesswerte" geändert.

Abb. 6 - Die Blöcke Taktgeber (Pulse) und Rohmesswerte (Formatted Text) werden auf die Arbeitsoberfläche gezogen.

Abb. 7 - Eigenschaften-Fenster von Formatted Text
  • Gib im Suchfeld "puls" ein und ziehe das Icon "Digital"-"Pulse Generator" in die Arbeitsoberfläche und gib im Eigenschaften-Fenster im Feld Name "Taktgeber" ein.
  • Verbinde den Ausgang des Taktgebers Out mit dem Takteingang (Clock) von "Rohmesswerte" und ebenso den Ausgang von Feld Digital[14]/Analog(0) im Arduino Block mit dem Eingang (In) des Blocks "Rohmesswerte".
  • In einem letzten Schritt wird der Ausgang Out des Blocks "Rohmesswerte" mit dem Eingang In des Feldes Serial[0] (9600) im Block Arduino verbunden.

 

 

 

 

 

Abb. 8

Durch einfaches Anklicken der quadratischen weißen Flächen lassen sich die Anschlüsse der Blöcke verbinden.

  • Öffne in VISUINO im Arbeitsmenü Build; überprüfe ob das benutzte Board und der COM-Port aktiviert sind und starte über das Icon Compile/Build and Upload das Programm.
  • Öffne den Serial Monitor und aktiviere die Verbindung über den Button "Connect".
  • Jetzt sollten die Analogwerte (Rohdaten) im Fenster angezeigt werden (s. Abb. 9).

Abb. 9 - Die Rohdaten werden im Terminalfenster ausgegeben. Die Werte ändern sich je nach Position des Mittelabgriffs am Potenziometer; sie schwanken zwischen 0 (Linkanschlag) und 1 (Rechtsanschlag) des Mittelabgriffs am Potenziometer.

5 - Übung 4 - Rohdaten umrechnen in Volt  (grafische Programmierung)

Was ist zu tun?

Die Umrechnung der Rohdaten in Spannungsgrößen erfolgt über das Einfügen eines weiteren Blocks in die bereits bestehende Blockstruktur aus Übung 3 (s. Abb. 6).

Übung 3 hat gezeigt, dass die aufgenommenen Rohdaten zwischen 0 und 1 liegen und als 3-stellige reelle Zahl ausgegeben werden (s. Abb. 9).

Bei einer Betriebsspannung von 5 V muss der ermittelte Rohdatenwert mit dem Spannungswert multipliziert werden, um den tatsächlichen Spannungswert zu erhalten.

Die Blockstruktur anpassen

  • Öffne im Icon-Fenster durch Anklicken das Math Icon.

 

 

 

 

 

 

Abb. 10 - Icon Fenster

Das Math Icon zeigt das Bild eines Tischrechners.

  • Ziehe das Icon Multiply Analog by Value (s. Abb. 11) in die Arbeitsoberfläche und gib dem neuen Block einen Namen. In meinem Beispiel ist es "Spannung_in_Volt_". Die Unterstriche zwischen den Worten müssen sein, sonst gibt es eine Fehlermeldung.

 

 

 

 

 

 

 

 

 

 

Abb. 11 - Das Icon "Multiply Analog By Value" ist das dritte in der obersten Zeile von links.

  • Der Multiplikationsfaktor wird im Feld "Value" mit 5 eingetragen (s. Abb. 12).

 

 

 

 

 

 

Abb. 12 - Block Multiply Analog By Value

Die Felder Name und Value werden neu belegt.

Den neuen Block einbinden

  • Klicke mit der rechten Maustaste die Verbindung am Ausgang von Analog(0) an und wähle Disconnect Link. Positioniere den Block "Spannung_in_V" vor den analogen Ausgang und stelle die Verbindung zum Arduino- und zum Rohmesswerte-Block wieder her.
  • Compile/Build/Upload startet das Programm.

Abb. 13 - Der neue Block wird an den Ausgang mit dem Ausgang Out von Digital[14]AnalogIn(0) verbunden. 

  • Öffnen des Terminalfensters zeigt die gemessenen Spannungswerte am Mittelabgriff des Potenziometeres in der Einheit Volt (s. Abb. 14).

 

 

 

 

 

 

 

 

 

 

Abb. 14 - Terminalfenster

Die Rohdaten werden jetzt in der Einheit Volt ausgegeben.

 

240221

Druckversion | Sitemap
© Reinhard Rahner - Gettorf