Messwerte erfassen Multi-MCU: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
= 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 mmuss für den Messbereich 5000 mV konfiguriert werden. | 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 mmuss für den Messbereich 5000 mV konfiguriert werden. | ||
Als Messwerte werden die Spannungsmesswerte aller ADC-Messkanäle an die MATLAB®-GUI übermittelt. | |||
Die Umrechnungskurven für die Temperatursensoren liegen jetzt für eine Auflösung von 0,1 mV vor. Dies ergibt einen Vektor mit 50001 Elementen. Zur Bestimmung des richtigen Index muss in der MATLAB®-GUI der übermittelte Spannungswert mit 10 Multipliziert und über ceil() oder round() auf einen ganzahligen Wert gebracht werden. | Die Umrechnungskurven für die Temperatursensoren liegen jetzt für eine Auflösung von 0,1 mV vor. Dies ergibt einen Vektor mit 50001 Elementen. Zur Bestimmung des richtigen Index muss in der MATLAB®-GUI der übermittelte Spannungswert mit 10 Multipliziert und über ceil() oder round() auf einen ganzahligen Wert gebracht werden. |
Version vom 16. Juni 2023, 13:00 Uhr
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 mmuss für den Messbereich 5000 mV konfiguriert werden.
Als Messwerte werden die Spannungsmesswerte aller ADC-Messkanäle an die MATLAB®-GUI übermittelt.
Die Umrechnungskurven für die Temperatursensoren liegen jetzt für eine Auflösung von 0,1 mV vor. Dies ergibt einen Vektor mit 50001 Elementen. Zur Bestimmung des richtigen Index muss in der MATLAB®-GUI der übermittelte Spannungswert mit 10 Multipliziert und über ceil() oder round() auf einen ganzahligen Wert gebracht werden.
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.