headerimage
ROWE Technik-Blog

Analoge Werte in einen anderen Wertebereich umrechnen

10.12.2022

Wer Programme für SPS oder Microcontroller schreibt, wird häufig bei der Erfassung, Verarbeitung und Ausgabe von Analogwerten mit verschiedenen Wertebereichen konfrontiert. Sensoren (z. B. Temperatur, Luftfeuchte, Lichtstärke) und Stellglieder (z. B. Stellwinkel eines Servomotors, Drehzahl eines Lüfters/Gebläses) haben ihren Arbeitsbereich (z. B. -20 bis 60 Grad Celsius, 0 bis 2000 U/Min.).

Zur Übertragung an die Steuereinheit wird der Arbeitsbereich in einen Spannungs- oder Strombereich umgesetzt. Im professionellen Bereich der „Speicherprogrammierbaren Steuerungen“ (SPS) wird meist die technisch aufwendigere Variante 4 bis 20 mA DC verwendet. Das vermeidet Verfälschungen durch Spannungsfall auf der Verbindungsleitung bei größeren Entfernungen. Zudem ermöglicht der untere Grenzwert von 4 mA DC die Erkennung defekter Messkreise. Bei kleinen Microcontrollen, wie dem Arduino Uno oder Mega 2560, kommt meist 0 bis 5 V DC oder 0 bis 3,3 V DC zur Anwendung.

Im Programm erfolgt die Weiterverarbeitung innerhalb des Abbildungsbereichs des Analogdigitalumsetzers (ADU) bzw. Digitalanalogumsetzers (DAU), z. B. 0 bis 255, 0 und 1023 oder 0 bis 4095 Digits. Der tatsächlich nutzbare Arbeitsbereich des Sensors bzw. des Stellgliedes kann auch geringer als der gesamte digitale Abbildungsbereich sein.

Monitor-/Displayanzeigen und Sollwerteingaben werden hingegeben meist wieder im Arbeitsbereich des Sensors bzw. des Stellgliedes vorgenommen. Das setzt eine Umrechnung in die verschiedenen Bereiche voraus.

Beispiel:

Sensor für Luftfeuchtigkeit: 0 bis 100 % relative Luftfeuchtigkeit

Analoger Eingang des Arduino Mega 2560:

  • Referenzspannung 5 V DC
  • 10 Bit Auflösung (0 bis 1023 Digits)

 

Luftfeuchtigkeit

Messwert

Digitalisiert

Von

0 % rel.

0 V DC

0

Bis

100 % rel.

5 V DC

1023

Ein Wert von 35 % rel. Luftfeuchte ergibt eine Messspannung von 1,75 V DC, die wiederum digitalisiert einen Wert von 358 Digits ergibt.

 

Das Programm

Das kleine Pascal-Programm SKAL dient zur Umrechnung eines Wertes (Rohwert) von einem 1. Wertebereich in einen Zielwert (Endwert) eines 2. Wertebereichs. Die Umrechnung erfolgt mittels linearer Gleichung.

ska1 = Anfangswert Skalierung 1

ske1 = Endwert Skalierung 1

ska2 = Anfangswert Skalierung 2

ske2 = Endwert Skalierung 2

skf1 = Faktor Skalierung 1

skk1 = Konstante Skalierung 1

rohwert = Wert im Skalenbereich 1

endwert = Wert im Skalenbereich 2

y = a * x + b


Faktor:
a = (y2 – y1) / (x2 – x1)

skf1 = (ske2 – ska2) / (ske1 – ska1)

Konstante: b = y1 – a * x1 

skk1 = ska2 – skf * ska1  (ein Wertepaar eingesetzt)

 

endwert = skf1 * rohwert + skk1


Bedienung

Zu Beginn werden die beiden Wertebereiche 1 und 2 vorgeben. Dann kann der Rohwert des Wertebereichs 1 eingegeben werden, der vom Programm unmittelbar in den Endwert des Wertebereichs 2 umgerechnet wird. Zur Eingabe des jeweiligen Wertes ist der invers dargestellte Buchstabe, z. B.  „A“ für den Anfangswert des Wertebereichs 1, zu drücken. Unzulässige/unplausible Eingaben werden mit einem Beep-Ton gemeldet und ignoriert. Links werden die Zahlenwerte zusätzlich in Exponentialschreibweise dargestellt, d. h. der vorangestellten Mantisse folgt die Zehnerpotenz getrennt durch ein „E“.

Hinweis:

  • Ein Komma muss statt „,“ als Punkt „.“ eingegeben werden

 

Download

 

Kommentare: 0

Keine Kommentare vorhanden!

Neuen Kommentar verfassen:

Bitte füllen Sie mit * markierte Felder korrekt aus. JavaScript und Cookies müssen aktiviert sein.
Name: (Pflichtfeld)*
email: (Pflichtfeld, wird nicht veröffentlicht)*
Homepage:
Bild hochladen:
jpg - jpeg - gif - png   (max. 10 MByte)
Ihr Kommentar: *
(Das Bild wird erst beim speichern links oben eingefügt)
 
Bitte tragen Sie den Spamschutz Code ein:*
Captcha
Powered by CMSimpleBlog