|
[ Easy
Elektro Start ] [ Seitenende ] [
zurück ] |
|
|
Easy Elektro Start – Programmieren 9 Zwei in
Reih und Glied
Von unserem „Arduino UNO“ wissen wir, dass dieser hardwaremäßig über sechs analoge
Eingänge und
zwar in Form der engl. Ports „Pin A0“, …, „Pin A5“ verfügt, sodass sich mittels des integrierten
A/D-Wandlers entsprechende Eingangsspannungen UPin_A0 > 0 V und UPin_A0 <= 5,0 V vom Anschluss „Pin A0“
gegen Masse „Pin GND“ („┴“)
messen und als Digitalwert im Bereich [ 0, …, 1023 ] als Bitwert
anzeigen lassen. Da der „Arduino UNO“ über das mitgelieferte USB-Kabel
mit „Typ B“-Stecker mit Energie bei einer Spannung von 4,75 V
bis 5,25 V (= 5 V Nennwert) und
einer Stromstärke von bis zu 0,5 A (USB
2.0 High-Powered-Port)
versorgt wird, beträgt auch die interne Stromversorgung
des „Arduino UNO“ 5 Volt, die auch am Anschluss „Pin 5V“ z.B. als Referenzspannung zur allgemeinen
Verfügung steht. Wegen der internen Stromversorgung des „Arduino
UNO“
mit 5 Volt kann auch der
integrierte A/D-Wandler entsprechende Eingangsspannungen UPin_A0 > 0 V und UPin_A0 <= 5,0 V vom Anschluss „Pin A0“
gegen Masse „Pin GND“ („┴“)
verarbeiten, sodass folgt: 1023
Bit → 5,0 V 1 Bit
→ x V x
= 5,0 V / 1023 Bit * 1 Bit = 0,0049 V = 4,9 mV
Demzufolge beträgt also die Auflösung des A/D-Wandlers
4,9 mV / Bit. Probe: 4,9 mV / Bit
* 1023 Bit = 5 012,7 mV ≈ 5 V Da aber der A/D-Wandler nicht weiß, dass er mit einer internen Versorgungsspannung von UA/D = 5 V betrieben wird und demzufolge auch
entsprechend große Eingangsspannungen UPin_A0 > 0 V und UPin_A0 <= 5,0 V in Bitwerte umwandeln kann, müssen wir
ihm dies bei der Programmierung
zuvor entsprechend mitteilen: (Bild
vergrößern: auf Bild klicken! Webverzeichnis | sketch_prog_09_01.ino) Wenn man also will, dass das obenstehende
Programm die umgewandelten Bitwerte
im Arduino-Konsolefenster in Volt
anzeigt, dann muss man die Referenzspannung ebenfalls in Volt einpflegen! Wenn man darüber hinaus auch noch
den umgewandelten Spannungswert als Dezimalzahl mit zwei Nachkommastellen anzeigen will, dann
muss man die Variable U_float als vom Typ
„float“ deklarieren! Außerdem
gilt es zu beachten, dass der Quotient
AnzahlBits / 1023 bei der Division als Ergebnis einen Dezimalwert zurückliefert, sodass man dem Programm mitteilen muss, dass dezimal
gerechnet werden soll, indem man die Bitzahl
1023.0 ebenfalls als Dezimalzahl einpflegt (siehe rote Kästen im obenstehenden
Bild). - Für den Fall, dass man bei der A/D-Wandlung die eingelesenen Bitwerte umgewandelt lieber in Millivolt [mV] angezeigt bekommen
möchte, dann muss man dazu die Referenzspannung = 5030 ebenfalls als Millivolt-Wert einpflegen! Wenn die Ergebniswerte darüber hinaus ganzzahlig
in Millivolt [mV], also ohne Nachkommastellen, angezeigt werden
sollen, dann muss man die Variable U_int als vom Typ
„int“, d.h. für engl. „integer“
(= ganzzahlig) deklarieren (siehe rote Kästen im nachfolgenden Bild): (Bild
vergrößern: auf Bild klicken! Webverzeichnis | sketch_prog_09_02.ino) Wer außerdem eine noch höhere Rechengenauigkeit bei den im
obenstehenden Bild angezeigten Millivolt-Werten haben möchte, der muss zu diesem Zweck die Variable U_int
wieder in die Variable U_float
vom Typ „float“, d.h. Fließkommazahl umbenennen und deklarieren. Auf diese Weise bekäme man zwar noch zwei
weitere Nachkommastellen als Millivolt angezeigt, was aber nicht zur Folge hat, dass sich
auch die Auflösung „4,9 mV /
Bit“ (= Empfindlichkeit) des A/D-Wandlers entsprechend verbessert! - Als nächstes befassen wir uns mit dem „Sketch“-Programm
sketch_prog_09_03.ino, das eine am Port „Pin A0“
anliegende analoge Spannung UPin_A0 aus
dem Bereich UPin_A0 > 0 V und UPin_A0 <= 5,0 V vom Anschluss „Pin A0“
gegen Masse „Pin GND“ („┴“)
einliest, mittels des A/D-Wandlers
in einen Bitwert [ 0, …, 1023 ]
umwandelt und nach entsprechender Berechnung und Umformung als Dezimalwert mit zwei Nachkommastellen im Arduino-Konsolefenster wie folgt anzeigt: (Bild
vergrößern: auf Bild klicken! Webverzeichnis | sketch_prog_09_03.ino) Der Knackpunkt
bei dem Programm „sketch_prog_09_03.ino“ (Bild
vergrößern: auf Bild klicken! Webverzeichnis | sketch_prog_09_03.ino) bzw. der Anzeige
im Konsolefenster ist der, dass
man es den angezeigten Ziffern(!) nicht ansieht,
ob es sich bei diesen ausschließlich um ·
einzelne Ziffern
vom Typ „char“ (= einzelne Zeichen, Buchstaben, Ziffern), ·
einen Textstring vom Typ „String“
(= alphanumerische Zeichenkette) oder ·
eine Dezimalzahl vom Typ „float“
(= Fließkommazahl mit der sich rechnen lässt) handelt. Okay, wenn man sich den Quellkode des Programms anschaut, der auf den ersten Blick ziemlich
komplex aussieht, dann weiß man, dass es sich bei der angezeigten Ziffernfolge(!) um die Spannung UPin_A0 am Eingang des Ports „Pin A0“ des A/D-Wandlers handelt, wobei sich bei
der Anzeige um eine zusammengesetzte
handelt! Und zwar ·
aus dem ganzzahligen Wert
vor dem Dezimalkomma ·
plus Dezimalkomma-Zeichen(!) ·
plus drei Nachkommastellen nach dem Dezimalkomma, sodass
sich mit der anzeigten Ziffernfolge(!) nicht rechnen
lässt (siehe obenstehendes Bild)! - Um das vorgenannte Programm „sketch_prog_09_03.ino“ besser zu verstehen,
bröseln wir dieses entsprechend auf, 1.
führen die Referenzspannung
U_Ref = 5.03 ein, 2.
weisen den eingelesenen Analogwert „batteryPin_A0“ der „integer“-Variablen
„U_A0_val“ zu, 3.
berechnen den Millivoltwert, der in der „integer“-Variablen
„U_A0_mV“ abgespeichert wird
und 4.
wandeln die Millivolt-Spannung in den ganzzahligen
Wert der „integer“-Variablen
„U_A0_V_int“ (Bild
vergrößern: auf Bild klicken! Webverzeichnis | sketch_prog_09_04.ino) Wie man sich anhand des nachfolgenden Screenshots
überzeugen kann, wird die am Port „Pin A0“ gemessene Eingangsspanung U_A0_mV = 2052 mV ordnungsgemäß in die dezimale
Ziffernfolge(!) 2,052 V umgewandelt: (Zum Vergrößern bitte auf
das Bild klicken!) Mit dem erweiterten Programm „sketch_prog_09_05.ino“
ist es jetzt möglich, den Textstring der Variablen „U_A0_V_str“ in die „char“-Variable „U_A0_V_char[6]“ umzuwandeln! Dabei wird dann auch das vormalige Dezimalkomma durch einen Dezimalpunkt ersetzt, damit
sich später mit dem „Character“-Array „U_A0_V_char[6]“ auch rechnen
lässt: (Bild
vergrößern: auf Bild klicken! Webverzeichnis | sketch_prog_09_05.ino) Wie man im nachfolgenden Screenshot des Programms „sketch_prog_09_05.ino“
sieht, ist die Umwandlung des Textstrings der Variablen „U_A0_V_str“ in die „char“-Variable „U_A0_V_char[6]“ recht einfach, muss
man den Textstring nur zeichenweise
auslesen und dem „Character“-Array ebenso zeichenweise zuweisen: (Bild
vergrößern: auf Bild klicken! Webverzeichnis | sketch_prog_09_06.ino) Was jetzt noch fehlt, ist die Umwandlung des Textstrings der Variablen „U_A0_V_str“ in die Fließkommazahl der Variablen „U_A0_V_float“ (siehe Programm „sketch_prog_09_07.ino“):
(Bild
vergrößern: auf Bild klicken! Webverzeichnis | sketch_prog_09_07.ino) Ob dabei das „Character“-Array in einen Fließkommawert umgewandelt werden muss, werden
wir dann sehen. LF, CR, EOL und EOF beim „Character“-Array Nachfolgend geht es darum, das bisherige Berechnungsprogramm „sketch_prog_03_09.ino“
aus dem Versuch 1 dahingehend zu erweitern, sodass sich mit diesem
nicht nur Spannungen, sondern auch Ströme messen lassen. Um Ströme
messen zu können, braucht man ein Strommessgerät,
umgangssprachlich auch Amperemeter genannt, das zu diesem Zweck in den
Stromkreis
geschaltet werden muss, sodass man diesen an der zu messenden Stelle auftrennen
und das Messgerät
dort in Reihe zum Verbraucher (= Lastwiderstand RLast)
anschließen muss. Bevor die sogenannten Digitalmultimeter
die analogen Multimeter (= Vielfachmessgeräte z.B. für Spannungs-, Strom-,
Widerstands- und Kapazitätsmessungen) wegen ihres günstigen Preis-/Leistungsverhältnisses
und der komfortablen Messwertanzeige
mittels LCD-Display
ablösten, gab es zu Spannungs- und Strommessungen nur die analogen Drehspulmessgeräte.
>> Drehspulmessgeräte
können bis herab zum Messbereichsendwert von etwa 10 µA gefertigt werden[2]. Für höhere Ströme bis etwa 100 mA wird die Drehspule aus dickerem Draht mit
weniger Windungen gefertigt - der Spannungsabfall ist dann entsprechend
geringer. Für noch größere Ströme wird ein Shunt
eingesetzt - ein parallel zum Messwerk geschalteter Messwiderstand, der
einen Teil des Stromes um das Messwerk
herum leitet (Stromteiler). Dabei
ist zum Messwerk außerdem ein Vorwiderstand erforderlich, damit die
Temperaturabhängigkeit des Widerstands der Kupferspule die Stromteilung nur
gering beeinflusst, zu Einzelheiten siehe unter Strommessgerät. Typische Anordnungen
zur Strommessung mit Shunt sind auf einen Spannungsabfall von 60 mV bei Messbereichsendwert ausgelegt und sind in dieser Hinsicht
vielen digitalen Strommessgeräten überlegen, welche meist einen Spannungsabfall von 200 mV besitzen. << (Wikipedia)
>> Zur Strommessung muss
der zu messende Strom durch das Messgerät fließen. Es wird daher zum
Verbraucher in Reihe geschaltet. Dazu muss es
ständig eingebaut sein. Zum Ein- oder Ausbau des Strommessgerätes muss der
Stromkreis abgeschaltet und aufgetrennt werden: Die Messung erfordert einen
Eingriff in die zu untersuchende Schaltung und in dieser Zeit eine
Unterbrechung des Stromflusses. Allenfalls kann ein „Bypass“ gelegt werden,
um den Strom um die aufzutrennende Stelle herumzuleiten. Es gibt mehrere Möglichkeiten,
um diese Auftrennung des Stromkreises zu vermeiden: 1.
Wenn ein bekannter ohmscher Widerstand R im Stromkreis liegt, kann man mit
einem Spannungsmessgerät die Spannung U über dem Widerstand R messen
und den Strom I gemäß I = U / R
ausrechnen. 2.
Wenn eine einzelne stromführende Leitung
(kein Kabel mit Hin- und Rückleiter) zugänglich ist, verwendet man ein
Messgerät, welches das vom Stromfluss verursachte magnetische
Feld erfasst (Zangenstrommesser, Rogowskispule). 3.
Zur Messung von Gleichstrom (z.B. in Messumformern
mit Einheitssignal) lässt man diesen ständig
durch eine Diode fließen. Zu Prüfzwecken kann ein Strommesser parallel zur
Diode angeklemmt werden. Wenn die Klemmenspannung des Strommessers unter etwa
200 mV (d.h. sicher unterhalb der Durchlassspannung der Silizium-Diode)
bleibt, fließt der Strom ausschließlich durch das Messgerät. <<
(Quelle: Wikipedia)
Da wir beim Versuch 9 „Zwei in Reih und Glied“
über zwei in Reihe
geschaltete Glühlampen 18 als ohmscher Verbraucher
und Lastwiderstände
RLast 1 und RLast 2
verfügen, bietet es sich an, dass man die zweite Glühlampe 18
als Messwiderstand RLast 2 = RMess
einsetzt bzw. verwendet, da sich dieser mittels der Nenn-Betriebsdaten der Glühlampe 18
von UNenn = 3,2 V
und INenn = 0,2 A
bequem berechnen lässt: RMess = UMess / IMess =
UNenn / INenn = 3,2 V / 0,2 A = 16 Ω (Zum
Vergrößern bitte auf das Bild klicken!) Dass die Glühlampe 18
mit RMess = 16 Ω als Messwiderstand
natürlich viel zu groß ist, ist unbestritten, bietet aber den Vorteil, dass
wir den Stromkreis nicht
extra auftrennen müssen, um ein Strommessgerät einzufügen. Außerdem kennen wir das analoge
Multimeter in Form des Spannungs- und
Strom-Messgerätes Messgerät 56
noch gar nicht, um es jetzt schon zu verwenden. Darüber hinaus sind wir ja
gerade dabei mit dem „Arduino UNO“ unser eigenes Spannungs- und
Strom-Messgerät
selbst zu programmieren! Da die beiden im
obenstehenden Bild zu sehenden 1,5 Volt
Batterien
vom „Mignon AA“ im Batteriefach 19 inzwischen
energiemäßig ziemlich aufgebraucht sind und die Batteriespannung bei jedem weiteren Gebrauch und jeder
weiteren Belastung durch die beiden in Reihe
geschaltete Glühlampen 18 „in die Knie geht“, d.h. absinkt,
lassen sich mit diesen keine exakte Messungen mehr nebst Auswertung
und Berechnung durchführen! Aber das ist kein Problem, da wir die interne
Stromversorgung des „Arduino UNO“
anzapfen können! Aber nur dann, wenn wir diesen über das mitgelieferte USB-Kabel mit „Typ B“-Stecker mit Energie bei einer
Spannung von 4,75 V bis 5,25 V
(= 5 V Nennwert) und einer Stromstärke von bis zu 500 mA (USB
2.0 High-Powered-Port)
versorgen! Ist dies der Fall, dann lassen sich über die Ports „3.3 V“
und „5 V“ der internen Spannungsversorgung des „Arduino UNO“ Stromstärken von bis zu 400 mA realisieren: (Zum
Vergrößern bitte auf das Bild klicken!) Diesbezüglich stellt sich
gleich die Frage, wo wir mit der Berechnung
und der Programmierung des Lastwiderstandes RLast der
Glühlampe 18
anfangen sollen bzw. können! Mit den beiden A/D-Wandlern lassen sich am Port „Pin A0“ sowohl die Gesamtspannung UGesamt = UPin 5V = 4,99 V
als auch am Port „Pin A1“
die Teilspannung UMess = 2,33 V
messen: (Bild
vergrößern: auf Bild klicken! Webverzeichnis | sketch_prog_09_09.ino) Gemäß dem Ohmschen Gesetz R = U þ / I verbleiben jetzt aber
immer noch zwei Unbekannte,
sodass wir entweder den Messwiderstand
RMess
oder den (Quer-) Strom I
durch den Spannungsteiler ULast + UMess
kennen müssen, um den Lastwiderstand
RLast = 15,09 Ω
berechnen zu können. Wenn man unterstellt, dass
die beiden Glühlampen 18 aus der gleichen
Produktion und der gleichen Charge stammen und demzufolge nahezu zu 100 %
identisch sind und die Nenn-Betriebsdaten
mit UNenn = 3,2 V
und INenn = 0,2 A
zutreffend sind, dann lässt sich die Stromstärke
I
durch den Spannungsteiler recht
einfach wie folgt berechnen: RNenn = UNenn / I → I = UNenn / RNenn = 3,2 V / 16 Ω = 0,2 A → I = UMess / RMess = 2,33 V / 13,17 Ω = 0,1769 A ≈ 177 mA RGesamt = RLast + RMess =
UGesamt / RGesamt → I =
4,99 V / ( 13,17 Ω + 15,09 Ω
) = 4,99 V / ( 28,26 Ω ) =
0,1766 A ≈ 177 mA In der Praxis verhält es
sich natürlich so, dass man einen viel kleineren (Präzisions-) Messwiderstand
von z.B. RMess = 1 Ω mit einer Toleranz von 1 bis 1,5 %
verwendet. So verfügt z.B. ein gutes Drehspulmessgerät über einen Messbereichsendwertvon
50 µA
bei einer Messgenauigkeit von 1,5 %.
Wegen der hohen Messempfindlichkeit entsprechen dabei die 50 µA einer
Messspannung von 50 mV, sodass der Innenwiderstand
Ri =
50 mV / 50 µA = 1 * 10-3 V / 10-6 A =
1 * 103 Ω = 1 kΩ
pro 50 mV Spannung
beträgt → 1 kΩ/50 mV = 2 kΩ/100 mV = 2
kΩ/0,1 V = 20 kΩ/1 V = 20 kΩ/V beträgt
→ hohe Messempfindlichkeit
aufgrund des hohen Innenwiderstandes
Ri = 20 kΩ/V
bzw. des niedrigen Eigenverbrauchs von nur 50 µA. Zum Vergleich der Innenwiderstand Ri = 3,3 kΩ/V eines
Drehspulmessgerätes mit eher
mittelmäßiger Empfindlichkeit bei gleichzeitig zu hohem Eigenverbrauch (siehe
Wikipedia):
(Zum
Vergrößern bitte auf das Bild klicken!) Probe: IMess = UMess / RMess = 50 mV / 20 kΩ = 50 * 10-3 V / 20 * 103
Ω = 2,5 * 10-3 V / 103 Ω = 2,5 * 10-6 A = 2,5 µA pro 50 mV = 2,5 µA / 50 mV = 2,5 µA / 0,050 V = 50 µA/1 V → sehr
geringer Eigenverbrauch von 50 µA pro 1 Volt |
|
|
[ Easy Elektro Start ] [ Seitenanfang ] [ zurück ] |
|