Messwerte erfassen Multi-MCU

Aus Technische Beeinflussbarkeit der Geschmacksache Kaffee
Zur Navigation springen Zur Suche springen

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.