Messwerte erfassen Multi-MCU: Unterschied zwischen den Versionen

Aus Technische Beeinflussbarkeit der Geschmacksache Kaffee
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
= Armin Rohnen, 13.08.2023 =
= Armin Rohnen, 13.08.2023 =
Die Erfassung der Messwerte erfolgt in den Funktionen "mwp_verarbeitung" und "bas_verarbeitung".
=== Basis - Platine ===
=== Messwert - Platine ===


= Armin Rohnen, 16.06.2023 =
= Armin Rohnen, 16.06.2023 =

Version vom 13. August 2023, 12:14 Uhr

Armin Rohnen, 13.08.2023

Die Erfassung der Messwerte erfolgt in den Funktionen "mwp_verarbeitung" und "bas_verarbeitung".

Basis - Platine

Messwert - Platine

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.