Messwerte erfassen Multi-MCU: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
Zeile 1: | Zeile 1: | ||
= Armin Rohnen, 13.08.2023 = | |||
= Armin Rohnen, 16.06.2023 = | = Armin Rohnen, 16.06.2023 = | ||
Zwischen der Messwerterfassung der STM32-Elektronik und der Multi-MCU-Elektronik gibt es wesentliche Unterschiede. In der STM32-Elektronik werden die NTC mit 3,3 V gespeist und am aktiven Tiefpassfilter nicht verstärkt. Bei der Multi-MCU-Elektronik wurde dies anders gelöst. Hier werden die NTCs über einen Präzisionsspannungsregler mit 4096 mV gespeist und die Tiefpassfilter verstärken das Messsignal im Faktor 2. Der verwendete 16Bit-ADC ist für den Messbereich 4096 mV konfiguriert. Das führt zu einem Klipping des oberen Spannungsbereichs, was jedoch keine Auswirkungen auf den nutzbaren Bereich der Messwerte hat. Bei den NTC-Temperatursensoren sind dies die niedrigen Temepraturen, bei den AVS-Römer bzw. SEEED Drucksendoren die hohen Druckbereiche, welche allesamt außerhalb des Nutzungsbereichs der Maschine liegen. | Zwischen der Messwerterfassung der STM32-Elektronik und der Multi-MCU-Elektronik gibt es wesentliche Unterschiede. In der STM32-Elektronik werden die NTC mit 3,3 V gespeist und am aktiven Tiefpassfilter nicht verstärkt. Bei der Multi-MCU-Elektronik wurde dies anders gelöst. Hier werden die NTCs über einen Präzisionsspannungsregler mit 4096 mV gespeist und die Tiefpassfilter verstärken das Messsignal im Faktor 2. Der verwendete 16Bit-ADC ist für den Messbereich 4096 mV konfiguriert. Das führt zu einem Klipping des oberen Spannungsbereichs, was jedoch keine Auswirkungen auf den nutzbaren Bereich der Messwerte hat. Bei den NTC-Temperatursensoren sind dies die niedrigen Temepraturen, bei den AVS-Römer bzw. SEEED Drucksendoren die hohen Druckbereiche, welche allesamt außerhalb des Nutzungsbereichs der Maschine liegen. |
Version vom 13. August 2023, 12:10 Uhr
Armin Rohnen, 13.08.2023
Armin Rohnen, 16.06.2023
Zwischen der Messwerterfassung der STM32-Elektronik und der Multi-MCU-Elektronik gibt es wesentliche Unterschiede. In der STM32-Elektronik werden die NTC mit 3,3 V gespeist und am aktiven Tiefpassfilter nicht verstärkt. Bei der Multi-MCU-Elektronik wurde dies anders gelöst. Hier werden die NTCs über einen Präzisionsspannungsregler mit 4096 mV gespeist und die Tiefpassfilter verstärken das Messsignal im Faktor 2. Der verwendete 16Bit-ADC ist für den Messbereich 4096 mV konfiguriert. Das führt zu einem Klipping des oberen Spannungsbereichs, was jedoch keine Auswirkungen auf den nutzbaren Bereich der Messwerte hat. Bei den NTC-Temperatursensoren sind dies die niedrigen Temepraturen, bei den AVS-Römer bzw. SEEED Drucksendoren die hohen Druckbereiche, welche allesamt außerhalb des Nutzungsbereichs der Maschine liegen.
Als Messwerte werden die Spannungsmesswerte in 1/10 mV Auflösung im Wertebereich 0 bis 40960 aller ADC-Messkanäle an die MATLAB®-GUI übermittelt.
Die Umrechnungskurven für die Temperatursensoren liegen für eine Auflösung von 0,1 mV vor. Dies ergibt einen Vektor mit 50001 Elementen. Damit ist der übermittelte !/10 mV Spannungswert der Index des Vektors mit der Übertragungskurve.
Datei:20230616 NTC-Berechnungen.zip
Armin Rohnen, 06.05.2023
Für die Neuprogrammierung der MATLAB®-GUI wurde in Verbindung mit der Multi-MCU-Messwertplatine eine simulierte Messdatenübermittlung erforderlich.
Benötigt wird das MicroPython-Skript:
def messwerte(timer): from random import randint # Die Messwerte der Espressomaschine werden als Zufallswerte generiert T_Boiler = randint(0, 50000)/1000 T_Eingang = randint(0, 50000)/1000 T_Mischer = randint(0, 50000)/1000 P_Boiler = randint(0, 50000)/1000 Leitwert = randint(0, 50000)/1000 Fuellstand = randint(0, 1) Durchfluss = randint(0, 500)/100 Pulse = int(Durchfluss * 39.9 * 0.1) T_Bruehgruppe = randint(1, 50000)/1000 P_Bruehgruppe = randint(1, 50000)/1000 #Messwerte an die GUI Übergeben inkl. des Identifiers M! print('M!',T_Boiler, T_Eingang, T_Mischer, P_Boiler, Leitwert, Fuellstand , Durchfluss, Pulse, T_Bruehgruppe, P_Bruehgruppe) #Messwerte übergeben
Darin werden über den Zufallszahlengenerator Messwerte simuliert und ausgegeben.
Durch die Aneisungen:
from machine import Timer from messwerte import messwerte messwert_timer = Timer(mode=Timer.PERIODIC, freq=1, callback=messwerte)
wird die simulierte Messdatenerfassung gestartet.
Über
messwert_timer.deinit()
wird diese wieder beendet.
Durch Ändern von freq = 1 auf einen anderen Wert wird die Übermittlungsrate in Übermittlungen je Sekunde eingestellt.
Armin Rohnen, 16.02.2023
Die für die STM32-Elektronik realisierte Messdatenerfassung der MATLAB®-GUI ist gleichwertig mit korrektem Zeitstempel für die Multi-MCU-Elektronik zu realisieren.