Maschinensimulator

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

Armin Rohnen, 29.10.2025 - Funktionstest MCP4151 (digitaler Widerstand)

Über den Programmcode

   def set_poti(ch, value): 
if not 0 <= ch < len(cs):
raise ValueError('Ungültiger Kanal (0–7)')
if not 0 <= value <= 255:
raise ValueError('Wert muss zwischen 0 und 255 liegen')

cs[ch].value(0)
spi.write(bytearray([CMD_WRITE << 4, value]))
cs[ch].value(1)

spi = SPI(0, baudrate=400000, sck=Pin(2), mosi=Pin(3), miso=Pin(4))
cs = [Pin(pin, Pin.OUT, value=1) for pin in (5, 6, 7, 8, 9, 10, 11, 12)]

werden die Widerstandswerte für die einzelnen simulierten Sensoren eingestellt. Konkret führt die Anweisung

   set_poti(ch, value)

zur Verstellung des Widerstandswertes im MCP4151. Darin ist ch die Kanalnummer (0 bis 7) und value der Digitalwet ( 0 bis 255).

Für die Kanäle 0 bis 3 wird über den Widerstandswert jeweils ein NTC simuliert. Die Abhängigkeit ist jedoch nicht linear.

Wertetabelle für den simulierten NTC-Widerstand
Digitalwert Widerstand in Ohm
0 96
50 1550
100 3740
150 5490
200 7240
255 9180

Der Zusammenhang zwischen Digitalwert und simulierte Temperatur muss noch ermittelt werden.

Für die Kanäle 4 bis 7 wird der MCP4151 als Spannungsteiler mit einer Speisespannung von 5 V eingesetzt. Dies simuliert einen analogen Sensorwert in einem Spannungsbereich von 0 bis 5 V. Allerdings darf der Spannungsendwert 5 V nicht angesteuert werden, dies würde u. U. zu einem Kurzschluss führen. Der Nutzbare digitale Wertebereich liegt hier zwischen 50 und 250. Damit bleibt auf jeder Seite des Spannungsteilers immer ein Restwiderstand, welcher den Stromfluss hinreichend begrenzt.
Aufgrund des nichtlinearen Widerstandsverlaufs ergibt sich ein ebenso nichtlinearer Spannungsverlauf.

Wertetabelle für den simulierten Sensorwert (Spannung)
Digitalwert Spannung in mV
50 406
100 3740
100 3740
150 2102
200 1122
255 144

Der Zusammenhang zwischen Digitalwert und dem zu simulierenden Sensorwert muss noch ermittelt werden.

Armin Rohnen, 29.10.2025 - Schaltungsaufbau

Der Schaltplan für den Maschinensimulator ist soweit erstellt. Inhaltlich fehlt die Transistorfolgeschaltung für die Simulation des Flowmetersignals.
Aktuell wird die Funktionalität des MCP4151-103E/P getestet. Dabei stellt sich heraus, dass sich der Widerstandswert nicht linear zum Einstellwert verhällt. Im Weiteren wurde festgestellt, dass auf dem Breadboard das erforderliche Durchschleifen der SPI-Schnittstelle nicht funktioniert. Damit ist bereits für die schnelle Übergangslösung eine gelötete Platine erforderlich.

Armin Rohnen, 19.10.2025 - Konzept des Maschinensimulators

Für die Steuerungselektronik besteht die Siebträger Espressomaschine aus Messwerten. Dies sind in der aktuellen Form

  • 4 NTC Temperatursensoren mit 10 kOhm
  • 2 Druckmesswerte im Spannungsbereich 0,5 bis 4,5 V
  • Leitwert und Temperatur des zufließenden Wassers im Spannungsbereich 0 bis 5 V
  • Flowmeter mit 39,9 Impulsen je ccm
  • 4 Füllstandssensoren über Kurzschlussdetektion

Angedacht ist eine Hardware herzustellen, welche diese Messwerte simuliert.

Bei dem Bauelement MCP4151-103E/P handelt es sich um ein digitales 10 kOhm Potentiometer welches als Spannungsteiler eingesetzt werden kann und über SPI programmiert wird. Dieses Bauelement soll dazu dienen den Wiederstandswert der NTCs zu simmulieren und als Spannungsteiler die Druckmesswerte, Leitwert und Wassereingangstemperatur zu generieren.

Der Kurzschluss für die Füllstandssensoren soll über das Bauelement DG 411 DJZ und das Flowmeter über eine Transistorschaltung erzeugt werden.

Als Steuerung ist eine Raspberry Pi Pico MCU vorgesenen die u.U. mit einer übergeordneten MATLAB-GUI bedient werden kann. Für die Widerstandsabhängigen Sensorsimulationen wird eine SPI-Schnittstelle und insgesamt 8 PINs für CS benötigt. Die Kurzschlusserzeugung der Füllstandssensoren erfordert 4 PINs digital I/O und das Flowmetersignal einen PIN mit PWM-Signal.

Es ist zu überlegen, ob der Simulator mit in den Kommunikations-Ring des Systems eingebunden wird.

Der Maschinensimulator wird zunächst auf einem Breadboard realisiert um nach erfolgreichem Test die Schaltung in ein Platinenlayout zu überführen.