Dokumentation - ZGK · Das Tastaturprint von Saeco hat Doppel- bzw. Dreifachbelegungen, die schwer...

52
Kaffeemaschine Dokumentation Frank Lattner Seite: 1 / 52 Datum: März 2005 Dokumentation Technikerarbeit 2005 Auftraggeber: ZGK Ersteller: Frank Lattner Erstellt: März 2005 Kaffeemaschine

Transcript of Dokumentation - ZGK · Das Tastaturprint von Saeco hat Doppel- bzw. Dreifachbelegungen, die schwer...

Kaffeemaschine Dokumentation

Frank Lattner Seite: 1 / 52 Datum: März 2005

Dokumentation Technikerarbeit 2005

Auftraggeber: ZGK Ersteller: Frank Lattner Erstellt: März 2005

Kaffeemaschine

Kaffeemaschine Dokumentation

Frank Lattner Seite: 2 / 52 Datum: März 2005

Inhaltsverzeichnis

1. Einleitung Seite

1.1. Projektentstehung 3 1.2. Überlegungen 3

2. Das Projekt

2.1. Aufbau 4 2.2. Übersicht der Hauptplatine 5 2.3. Übersicht der Bedientableau – Platine 6

3. Detaillierte Beschreibung

3.1. der Bedientableau – Platine 7 3.2. der Hauptplatine 9

4. Informationen zur Hardware

4.1. Portbelegungen des Mikrocontrollers 80C535 16 4.2. Bauteilelisten der Platinen 17 4.3. Blockschaltbild mit Beschreibung 18

5. Schaltpläne

5.1. Schaltplanübersicht mit Kennzeichnung der 20 einzelnen Bereiche

5.2. Schaltplan der Hauptplatine (Steuerungsteil) 21 5.3. Schaltplan der Hauptplatine (Leistungssteil) 22 5.4. Schaltplan der Bedientableau – Platine 23

6. Layout

6.1. Layout der Hauptplatine 24 6.2. Layout der Bedientableau – Platine 24 6.3. Oberseite der Hauptplatine mit Klemmenbezeichnung 25 6.4. Oberseite der Bedientableau – Platine 25

7. Informationen zur Software

7.1. Struktogramme 26 7.2. Displaymeldungen auf einen Blick 41 7.3. Struktur des gesamten Programms 42

8. Informationen zur Funktion der Kaffeemaschine

8.1. Ablaufplan der Kaffeemaschinensteuerung 43 8.2. Beschreibung des Maschinenablaufs 43 8.3. sonstige Bedienungshinweise 45

9. Anhang

9.1. Zeitplan 48 9.2. Informationsquellen 49 9.3. Eidesstattliche Erklärung 50 9.4. Stand der Technikerarbeit und mögliche Erweiterungen 51 9.5. Fazit über das Projekt Kaffeemaschine 52 9.6. Glossar

Kaffeemaschine Dokumentation

Frank Lattner Seite: 3 / 52 Datum: März 2005

1.1 Projekt-Entstehung Bereits zu Beginn des ersten Techniker-Schuljahres wurde uns mitgeteilt, dass wir uns möglichst früh Gedanken über ein geeignetes Projekt für die Techniker - Arbeit machen sollten. Da ich ein eigenständiges Projekt erstellen wollte, welches man später auch praktisch verwenden kann, entschied ich mich ziemlich schnell für das Projekt „Kaffeemaschine“. Als Kaffeetrinker konnte ich somit aus meiner Technikerarbeit ein nützliches Haushaltsgerät für mich erstellen. Damit das Projekt vom Umfang nicht zu klein oder zu groß ausfiel, musste ein Pflichtenheft erstellt werden, bei dem die Umsetzung des Projekts detailliert beschrieben und somit der Umfang der Technikerarbeit ersichtlich wurde. Nach der Freigabe durch Herrn Sperling stand dem Projekt von der „offiziellen Seite“ nichts mehr im Wege. 1.2 Überlegungen Die Grundüberlegung war, eine Kaffeemaschine (Saeco Magic de Luxe) mit einer selbst entworfenen Platine und einem zugehörigen C - Programm in Betrieb zu setzen. Über eine zweite Platine sollte die Bedienung der Kaffeemaschine erfolgen. Da ich die Hardware der Maschine übernahm, musste ich mir Gedanken über die Ansteuerung und Überwachung der untenstehenden Bauteile machen. Es mussten folgende Bauteile der bereits vorhandenen Kaffeemaschine angesteuert, beziehungsweise überwacht werden: Ansteuerung:

- Durchlauferhitzer - Mahlwerk - Pumpe - Magnetschalter - Brüheinheit - LCD - Display - Füllstandsanzeige

Überwachung:

- Wassermengensensor - Wassertanksensor - Temperatursensor (Durchlauferhitzer) - Drehschalter - Brüheinheit - Schalter - Tresterbehälter - Schalter - Endschalter der Brüheinheit - Dosierer - Tasten: große Tasse, mittlere Tasse, kleine Tasse - Tasten: Pulver und Dampf

Kaffeemaschine Dokumentation

Frank Lattner Seite: 4 / 52 Datum: März 2005

Da ich ursprünglich das Original Bedientableau von Saeco benutzen wollte, kamen mir gleich haufenweise Probleme entgegen. Das Tastaturprint von Saeco hat Doppel- bzw. Dreifachbelegungen, die schwer nachzuvollziehen waren. Außerdem wäre die Ansteuerung zu aufwändig und zu kompliziert geworden, so dass ich mich in Absprache mit Herrn Sperling auf eine eigene Bedienplatine einigte. Diese sollte über I2C angesteuert werden, was das ganze erheblich vereinfachte, aber nicht weniger komfortabel machte. Mit der I2C Lösung konnte ich einige Pins am Mikrocontroller einsparen, welche ich für die Füllstandsanzeige und das LCD - Display vorgesehen hatte. 2.1 Aufbau Die Elektronik wurde auf zwei Platinen aufgeteilt: Auf der Hauptplatine, die das Herz der Kaffeemaschine bildet, befindet sich der Mikrocontroller (SAB 80C535 Siemens). Dieser übernimmt sämtliche Ansteuerungs- und Überwachungsaufgaben der Kaffeemaschine. Der Mikrocontroller ist auf einer separaten Platine, die ich von Herrn Sperling bekommen und ohne Veränderungen auf meine Hauptplatine passend, montiert habe. Des weiteren befindet sich auf der Hauptplatine die Elektronik für die Ansteuerung des Durchlauferhitzers, der Pumpe, des Mahlwerks, des Magnetschalters und der Brüheinheit, sowie die Elektronik für die Überwachung des Wassermengensensors, des Temperatursensors, des Wassertanksensors, des Drehschalters, des Tresterbehälter - Schalters, des Brüheinheit - Schalters, des Dosier - Schalters und der Endschalter der Brüheinheit. Die detaillierten Beschreibungen zu den genannten Ansteuerungen und Überwachungen werden in Punkt 3.2 „Detaillierte Beschreibung der Hauptplatine“ erläutert. Auf der Bedientableau - Platine befinden sich die Ansteuerungen des LCD - Displays, der LED - Füllstandsanzeige und der Störungs - LED. Die Ansteuerung des LCD - Displays erfolgt durch einen I2C - Baustein PCF8574. Die Ansteuerung der sieben Füllstand - LED´s und der einen Störungs - LED erfolgt durch einen zweiten I2C-Baustein PCF8574. Außerdem befindet sich auf der Bedientableau - Platine die Elektronik für die Überwachung der Tasten: große Tasse, mittlere Tasse, kleine Tasse, Pulver und Dampf. Die detaillierten Beschreibungen zu den genannten Ansteuerungen und Überwachungen werden in Punkt 3.1 „Detaillierte Beschreibung der Bedientableau - Platine“ erläutert.

Kaffeemaschine Dokumentation

Frank Lattner Seite: 5 / 52 Datum: März 2005

2.2 Übersicht der Hauptplatine

Kaffeemaschine Dokumentation

Frank Lattner Seite: 6 / 52 Datum: März 2005

2.3 Übersicht der Bedientableau - Platine

Kaffeemaschine Dokumentation

Frank Lattner Seite: 7 / 52 Datum: März 2005

3.1 Detaillierte Beschreibung der Bedientableau - Platine Die Bedientableau - Platine ist über eine zehnadrige Leitung mit der Hauptplatine verbunden. Dabei sind: PIN 1 und 2 für den I2C - Bus, PIN 3, 4 und 10 für die positive, negative Betriebsspannung und Masse und PIN 5, 6, 7, 8 und 9 für die fünf Bedientasten zuständig. Im Schaltplan ist die Erkennung der einzelnen Pins auch durch die Farben der jeweiligen Kabel möglich. Beschreibung der Füllstands- und Störungsanzeige: Die Füllstandsanzeige wird über die sieben LED´s auf der linken Seite realisiert, die nacheinander angehen in Abhängigkeit von der Durchflussmenge des Wassermengensensors. Die achte LED (rot) ist die Störungs - LED. Diese beginnt zu blinken, wenn bei der Kontrolle des Wasserstands, des Tresterbehälters oder der Brüheinheit eine Störung aufgetreten ist. Im LCD - Display erscheint dann der dazugehörige Störungstext. Da der PCF8574 Low - Aktiv 25mA schalten kann, ist diese Ansteuerung mit Low - Current - Dioden (2mA) die einfachste Variante. Um keine unnötige Treiberschaltung zu entwerfen, habe ich mich also entschieden, den PCF8574 Low - Aktiv anzusteuern, d.h. jede LED wird über einen Vorwiderstand mit 1,5k an 5V gelegt. Berechnung von RV: Geg.: Betriebsspannung 5V (angenommen) LED-Daten 2V / 2mA (Datenblatt LED)

URV= 5V - 2V = 3V RV= 3V / 2mA = 1,5k

Hardwareseitig hat dieser PCF - Baustein die Adresse 42h zugeteilt bekommen, da A0 auf High und A1 und A2 auf Low gelegt sind. In Bild 1 ist ein Auszug aus dem Datenblatt des PCF8574 zu sehen, mit dem die Adressierung ersichtlich ist.

Bild 1 (Auszug aus dem Datenblatt des PCF8574 zur Adressierung)

Der PCF8574 ist beim Einschalten an seinen Ausgängen High - Aktiv (FFh), deshalb sind alle LED´s ausgeschaltet. Für die Simulation der Füllstands- bzw. Störungsanzeige wird dann ein Pin nach dem anderen auf Low geschaltet.

Kaffeemaschine Dokumentation

Frank Lattner Seite: 8 / 52 Datum: März 2005

Beschreibung des LCD-Displays: Das LCD - Display wird ebenso über einen PCF8574 angesteuert, dem hardwareseitig die Adresse 40h zugeteilt wurde, da A0, A1 und A2 auf Low gelegt sind. Durch die unterschiedliche Adressierung der beiden PCF - Bausteine ist somit eine problemlose Ansteuerung gewährleistet. Die Ansteuerung des Displays erfolgt vom PCF - Baustein aus im 4Bit-Modus. Dazu wurden P4 bis P7 am PCF8574 mit D4 bis D7 am Display verbunden. P0 des PCF - Bausteins liefert das Enable - Signal, P1 ist für den Lese- / Schreibzugriff zuständig und P2 verwaltet das Befehls- / Datenregister. (siehe Bild 2)

Bild 2 (Beschaltung des PCF8574 und des LCD-Displays)

Das LCD - Display BATRON BT21605 (2 x 16 Zeichen) braucht für die Kontraststeuerung eine duale Betriebsspannung (+5V / -5V siehe Bild 3). Der Kontrast des Displays kann über ein Potentiometer (10k) eingestellt werden.

Bild 3 (Auszug aus dem Datenblatt des LCD Display)

Tritt nun eine Störung auf, beginnt die Störungs - LED zu blinken und im Display erscheint der dazugehörige Störungstext.

Kaffeemaschine Dokumentation

Frank Lattner Seite: 9 / 52 Datum: März 2005

Beschreibung der Bedientasten: Für die Bedienung der Kaffeemaschine sind fünf Bedientasten vorgesehen, die auf LOW abgefragt werden. Da der Port 1 des Mikrocontrollers 80C535 interne Pull - up Widerstände enthält, ist die Abfrage auf Low die einfachste Variante, um einen Tastendruck festzustellen. Ich habe auf der Bedientableau - Platine für die fünf Bedientasten jeweils auch einen Pull - up Widerstand mit 150k eingesetzt, welche aber nur zur Sicherheit dienen, also nicht unbedingt benötigt werden. Mit den 3 Tassentasten (große Tasse, mittlere Tasse und kleine Tasse) werden jeweils unterschiedliche Wassermengen zugeführt. Die Taste Pulver ermöglicht, dass gemahlenes Kaffeepulver in den Pulverschacht eingefüllt werden kann. Um dann den fertigen Kaffee zu bekommen, steht nun wieder die Möglichkeit zur Verfügung, durch Betätigen der Tassentasten unterschiedliche Wassermengen zuzuführen. 3.2 Detaillierte Beschreibungen der Hauptplatine Beschreibung der Betriebsspannungsschaltung Für die Betriebsspannung des Mikrocontrollers, des Bedientableaus, des Motortreibers IC 8 und der Optokoppler - Schaltungen sind Trafo 1, Gleichrichter 1 und 2, Festspannungsregler IC 2 (MC7805) und IC 7 (KA7905) sowie die zugehörigen Kondensatoren zuständig. (siehe Bild 4)

Bild 4 (positive und negative Betriebsspannung) Wie bereits in Punkt 3.1 beschrieben, musste das LCD - Display für die Kontraststeuerung mit (+5V / -5V) beschaltet werden. Der Operationsverstärker µA741 brauchte ebenso eine positive und negative Betriebspannung, die aber vor den beiden Festspannungsreglern abgegriffen wurde.

Kaffeemaschine Dokumentation

Frank Lattner Seite: 10 / 52 Datum: März 2005

Wegen dieser positiven und negativen Betriebsspannungen, habe ich einen Trafo mit 2 Sekundärwicklungen verwendet. Die 2 Sekundärwicklungen wurden jeweils mit einem Gleichrichter und der dazugehörigen Festspannungsreglerschaltung, die ich dem Datenblatt entnahm, beschaltet. Der Gleichrichter für die positive Betriebspannung musste allerdings am –Pin mit dem Gleichrichter der negativen Betriebsspannung am +Pin verbunden werden. Die Brücke dieser beiden Pins ist die gemeinsame Masse. Beschreibung der OP-Schaltung für den Temperatursensor: Mit der Idee, den Original Temperatursensor KTY 10-6 zu nutzen, den Saeco für ihre Temperaturmessungen verwendet, musste ich mir über die Beschaltung für den Mikrocontroller Gedanken machen. Dazu habe ich auf einer Lochrasterplatine einen Brückenspannungsverstärker aufgebaut, den ich zuvor berechnet und mit P - Spice simuliert habe. Für die Differenzverstärkerschaltung habe ich den Operationsverstärker µA 741 ausgewählt, da wir ihn im Unterricht bereits ausführlich besprochen hatten. Um den Temperatursensor nicht zu stark zu belasten (max. 5mA), habe ich die Differenzverstärkerschaltung mit relativ hohen Widerständen eingesetzt. Der Offset-Abgleich für den µA 741 kann mittels eines Potentiometers (R30 / 10k) vorgenommen werden. Damit der Analog-Eingang (P6.0) des Mikrocontrollers bei Spannungen (über 5,1V und unter -0,7V) nicht zu stark belastet wird, ist noch eine Z-Diode (ZD5,1) zum Schutz eingebaut. (siehe Bild 5)

Bild 5 (Brückenspannungsverstärkerschaltung für den Temperatursensor)

Die Berechnung der Schaltung ist auf der CD ersichtlich.

Kaffeemaschine Dokumentation

Frank Lattner Seite: 11 / 52 Datum: März 2005

Der Widerstand des Temperatursensors beträgt bei 20°C ca. 1900 Ohm und bei einer Dampftemperatur von ca. 110°C beträgt der Widerstand ca. 3800 Ohm. Der Temperatursensor arbeitet in diesem Bereich annähernd linear, so dass hier auf Korrekturwerte im C-Programm verzichtet werden konnte. Der Aussteuerbereich des Operationsverstärkers liegt somit im Idealfall bei 0V bis 5V, was bei der 8Bit Analog-/ Digitalwandlung in 255 Schritte, also in ca. 20mV-Bereiche, unterteilt werden kann. Beschreibung der Brüheinheit - Ansteuerung: Mein Ziel war hier eine elektronische Lösung für die Ansteuerung des Motors der Brüheinheit zu finden. Bei Saecomaschinen wird die Tassenwärmerheizung als Vorwiderstand für den Brüheinheitmotor benutzt. Da ich aber eine Maschine ohne Tassenwärmer erstellen wollte, musste ich nun eine geeignete Möglichkeit suchen, den Motor auf eine andere Art anzusteuern. Durch einen Tipp meines Nachbarn kam ich zu dem Entschluss, hier ein Motortreiber IC einzusetzen. Um den Strömen und den Spannungen gerecht zu werden, habe ich mich für den Motortreiber L298 entschieden, der im Internet auf der Seite http://www.strippenstrolch.de/elektronikbasteln/L298/L298-gleichstrom.html praxisnah beschrieben wurde. Die restlichen Daten sowie die Ansteuerschaltung entnahm ich dann dem Datenblatt. (siehe Bild 6)

Bild 6 (Ansteuerbeispiel eines bidirektionalen DC Motors mittels L298)

Um die Motorspannung von ca. 35V Gleichspannung zu erzeugen, habe ich einen separaten Trafo (Tr2) ebenfalls mit zwei Sekundärwicklungen, Gleichrichter 3 und 4 sowie die dazugehörigen Kondensatoren eingesetzt. Auch hier ist der Gleichrichter 3 am –Pin mit dem Gleichrichter 4 am +Pin verbunden, um eine höhere Spannung zu erzeugen. Die Masse wird allerdings am –Pin des Gleichrichters 4 entnommen.

Kaffeemaschine Dokumentation

Frank Lattner Seite: 12 / 52 Datum: März 2005

Die Ansteuerung des Motortreibers kann direkt vom Mikrocontroller ohne zusätzliche Treiber vorgenommen werden, da der Motortreiber L298 einen typischen Eingangsstrom von 30µA benötigt (TTL Kompatibel). Die jeweilige Drehrichtung des Motors wird vom Mikrocontroller über Pin 5.4 (Motor_Richtung_bruehen) und Pin 5.5 (Motor_Richtung_Grundst) vorgenommen. Pin 5.4 am Mikrocontroller ist mit Pin 10 (IN3) des Motortreiber IC´s L298 und Pin 5.5 am Mikrocontroller ist mit Pin 12 (IN4) des Motortreiber IC´s L298 verbunden. Einen Auszug der Beschaltung des Motortreiber IC´s L298 wird in Bild 7 gezeigt.

Bild 7 (Beschaltung des Motortreiber IC´s L298) Die beiden Endschalter der Brüheinheit werden vom Mikrocontroller beim Drehen des Brüheinheitmotors abgefragt. Soll der Brüheinheitmotor beispielsweise in die Brühstellung fahren, wird „Endschalter_Bruehstellung = P4.6“ abgefragt. Soll der Brüheinheitmotor wieder in die Grundstellung fahren, wird „Endschalter_Grundstellung = P4.5“ abgefragt. Beschreibung der Schalterüberwachungen: Im Mikrocontroller 80C535 ist der Port 4 mit internen Pull - up Widerständen bestückt, die den Port auf High halten. Der Drehschalter für Wasser und Dampf wird mit 0V angesteuert. Wird nun am Drehschalter gedreht, schließt der Schaltkontakt und P4.3 wird auf 0V gezogen. Die gleiche Beschaltung gilt für den Wassertanksensor, den Brüheinheit - Schalter, den Tresterbehälter - Schalter und den Dosierer. Im C-Programm werden also alle Schalter auf Low abgefragt, was den Schaltungsaufwand erheblich vereinfacht. Belegung des Mikrocontrollers an P4: Dosierer = P4.0 Tresterbehälter - Schalter = P4.1 Brüheinheit - Schalter = P4.2 Drehschalter = P4.3 Wassertanksensor = P4.4 Endschalter_Grundstellung = P4.5 Endschalter_Bruehstellung = P4.6

Kaffeemaschine Dokumentation

Frank Lattner Seite: 13 / 52 Datum: März 2005

Beschreibung der Optokoppler - Schaltung: Auch hier war mein Ziel wieder eine elektronische Lösung zu finden, um die Leistungsbauteile (Durchlauferhitzer, Magnetschalter, Pumpe und Mahlwerk) anzusteuern. Da hier der Leistungsbereich vom Steuerbereich galvanisch getrennt werden musste, kam für mich nur eine Optokoppleransteuerung in Frage. (siehe Bild 8) Die jeweiligen Ansteuerschaltungen wurden mit dem Optokoppler K3020P mit Triac Treiberausgang realisiert. Der Vorwiderstand für die Optokoppler-LED beträgt 470 Ohm. Berechnung von RV: Geg.: Betriebsspannung 5V (angenommen) Optokoppler (LED-Daten) 1,15V / 8mA (Datenblatt MOC3020) Transistor (BC548B) UCEsat ca. 0,15V (Datenblatt BC548B) URV = 5V-1,15V-0,15V = 3,7V RV = 3,7V / 8mA = 462,5 Ohm gewählt (470 Ohm) Der Basisvorwiderstand RB für den Transistor BC548B beträgt 47k. Berechnung von RVB: Geg.: Schaltspannung 5V (angenommen) Schaltstrom 80µA (Datenblatt 80C535) Transistor (BC548B) UBE ca. 0,7V (Datenblatt BC548B) URV = 5V-0,7V = 4,3V RVB = 4,3V / 80µA = 53,75k Ich habe hier einen 47K Widerstand gewählt, da die Schaltspannung der Ausgänge des Mikrocontrollers eher < 5V ist.

Bild 8 (Optokoppler - Schaltung mit Triac Treiberausgang)

Kaffeemaschine Dokumentation

Frank Lattner Seite: 14 / 52 Datum: März 2005

Durch das Ansteuern der Basis über den Mikrocontroller, wird der Transistor leitend, und die LED im Optokoppler beginnt zu leuchten. Optokoppler schaltet durch Über die Transistoren T5, T6, T7 und T8 werden die jeweils zugehörigen Optokoppler eingeschaltet. Steuern der Transistoren mit dem Mikrokontroller:

- Pin 5.3 des Mikrocontrollers schaltet T8 und somit das Mahlwerk. - Pin 5.2 des Mikrocontrollers schaltet T7 und somit den Magnetschalter. - Pin 5.1 des Mikrocontrollers schaltet T6 und somit die Pumpe. - Pin 5.0 des Mikrocontrollers schaltet T5 und somit den Durchlauferhitzer.

Beschreibung der Triac - Schaltung: Hier habe ich die elektronische Lösung zur Ansteuerung der Leistungskomponenten vollendet. Die nötigen Informationen zur Ansteuerung des Triacs besorgte ich mir im Internet auf der Seite http://www.elektronik-kompendium.de und bei meinem Nachbarn, der mir einen Auszug aus einem Schaltplan eines Staubsaugers kopierte. (siehe Bild 9)

Bild 9 (Auszug aus einem Schaltplan für Staubsauger)

Diese Schaltung habe ich ohne Veränderungen übernommen und in Verbindung mit der Optokoppler - Schaltung auf einer Lochrasterplatine aufgebaut und getestet. Wichtig bei der Auswahl der Triacs war die Beachtung der Schaltleistungen. Da der Durchlauferhitzer mit seinen 1090W/230V der höchste Verbraucher war, habe ich die Triacs (BT138) ausgewählt, die Ströme bis 12A schalten können. Die Funktionstests dieser Schaltung habe ich dann mit dem Lab 537 gemacht. Im Ganzen brauchte ich diese Schaltung viermal. Davon dreimal in dieser Form und einmal mit der Erweiterung eines Gleichrichters, eines Anlaufwiderstands und zwei Funkentstördrosseln für den Mahlwerkmotor (siehe Bild 10). Die Funkentstördrosseln dienen zum Filtern von hochfrequenten Spannungen, die beim Starten und Drehen des Mahlwerkmotors entstehen können und schützen somit die Steuerschaltungen.

Kaffeemaschine Dokumentation

Frank Lattner Seite: 15 / 52 Datum: März 2005

Der Anlaufwiderstand dient dazu, dass die Spannung erst aufgebaut wird, damit der Motor dann die volle Kraft hat um die Kaffeebohnen zu mahlen. Den Anlaufwiderstand habe ich von der Saeco - Platine übernommen.

Bild 10 (Triac - Schaltung mit Optokoppleransteuerung) Beschreibung der Funktionsweise des Wassermengensensors In dem Durchflussmengenmesser von Saeco sitzt ein Hallsensor (HAL506). Dieser wird an PIN1 mit +5V und an PIN2 mit 0V versorgt. Der Open Drain Ausgang PIN3 wird über einen 4,7k Widerstand mit +5V verbunden, damit beim Schalten des Hallsensors keine Schwankungen entstehen, oder der Sensor eventuell eine Spannung liefert, die den Mikrocontroller veranlassen könnte, zu zählen. (siehe Bild 11) Strömt nun Wasser durch den Durchflussmengenmesser, setzt sich die Turbine, welche mit einem Magneten bestückt ist, in Bewegung. Wenn der Magnet der Turbine direkt über dem Hallsensor ist, wird der Ausgang PIN3 auf 0V gelegt. Bei einer großen Tassenfüllmenge geschieht dies ca. 500 Mal. Dadurch wird eine Abfrage der Durchflussmenge ermöglicht und somit kann individuell eine Tassenfüllmenge bestimmt werden.

Bild 11 (Pinbelegungsplan und Testschaltung aus dem Datenblatt)

Kaffeemaschine Dokumentation

Frank Lattner Seite: 16 / 52 Datum: März 2005

4.1 Portbelegungen des Mikrocontrollers 80C535

Beschreibung Port Bedientasten (Eingänge)

Dampf Pulver Kaffee_klein Kaffee_mittel Kaffee_gross

P1^0 P1^1 P1^2 P1^3 P1^4

I2C Bus (Bidirektional) DATEN TAKT

P1^5 P1^6

Durchflussmengenmessung (Eingang) Wassermengensensor

P3^2

Überwachungsschalter (Eingänge) Dosierschalter Tresterbehaelter_Schalter Brueheinheit_Schalter Drehschalter Wasserstandsensor Endschalter_Grundstellung Endschalter_Bruehstellung

P4^0 P4^1 P4^2 P4^3 P4^4 P4^5 P4^6

Ansteuerungen (Ausgänge)

Durchlauferhitzer Pumpe Magnetspule_Dosierer Mahlwerk Motor_Richtung_bruehen Motor_Richtung_Grundst

P5^0 P5^1 P5^2 P5^3 P5^4 P5^5

Analog-Digital Wandlung (Eingang) Temperatursensor P6^0

Kaffeemaschine Dokumentation

Frank Lattner Seite: 17 / 52 Datum: März 2005

4.2 Bauteilelisten der Platinen

Anzahl Bauteil Bestellnummer Lieferant Preis/Stück Preis gesamt3 Taster DT 6 bl Reichelt 0,45 € 1,35 € 1 Taster DT 6 gn Reichelt 0,45 € 0,45 € 1 Taster DT 6 rt Reichelt 0,45 € 0,45 € 5 Widerstand 1/4W 150K Reichelt 0,03 € 0,15 € 1 Platinen-Steckverbinder PS25/10G WS Reichelt 1,25 € 1,25 € 1 Kontaktbuchse SPL 20 Reichelt 0,26 € 0,26 € 1 Stiftleiste STIFTL.36G Reichelt 0,17 € 0,17 € 8 Widerstand 1/4W 1,5K Reichelt 0,03 € 0,24 € 1 Potentiometer PT15-L10K Reichelt 0,21 € 0,21 € 2 PCF8574P PCF 8574 P Reichelt 2,40 € 4,80 € 6 LED LED 5mm 2MA gn Reichelt 0,09 € 0,54 € 2 LED LED 5mm 2MA rt Reichelt 0,09 € 0,18 € 1 LCD Display 55-120 128 Pollin 6,95 € 6,95 €

17,00 €

Anzahl Bauteil Bestellnummer Lieferant Preis/Stück Preis gesamt1 Festspannungsregler µA 78S05 Reichelt 0,43 € 0,43 € 1 Festspannungsregler µA 7905 Reichelt 0,21 € 0,21 € 1 Motortreiber IC L298 Reichelt 4,40 € 4,40 € 2 Gleichrichter B250C1500RUND Reichelt 0,14 € 0,28 € 3 Gleichrichter GBU 4J 55-150 065 Pollin 0,25 € 0,75 € 1 Transformator El48/16,8 209 Reichelt 4,90 € 4,90 € 1 Transformator El48/16,8 212 Reichelt 4,90 € 4,90 € 4 Sicherungshalter PL112100 Reichelt 0,31 € 1,24 € 2 Sicherungen träge 0,5A Reichelt 0,07 € 0,14 € 2 Sicherungen träge 0,63A Reichelt 0,07 € 0,14 € 4 Kondensator MKS-4-630 100n Reichelt 0,30 € 1,20 € 2 Kondensator MKS4 / 100 45 52 70-33 Conrad 0,22 € 0,44 € 1 Kondensator 63V/1000µF 47 26 62-33 Conrad 1,02 € 1,02 € 1 Kondensator 63V/470µF rad 470/63 Reichelt 0,12 € 0,12 € 3 Widerstand 1/4W 4,7K Reichelt 0,03 € 0,09 € 1 Widerstand 1/4W 1,2K Reichelt 0,03 € 0,03 € 5 Widerstand 1/4W 470 Reichelt 0,03 € 0,15 € 6 Widerstand 1/4W 47K Reichelt 0,03 € 0,18 € 2 Widerstand 1/4W 470K Reichelt 0,03 € 0,06 € 1 Potentiometer PT15-L10K Reichelt 0,21 € 0,21 € 1 Z - Diode ZD5,1 Reichelt 0,06 € 0,06 € 1 Operationsverstärker µA741 DIP Reichelt 0,21 € 0,21 € 4 Fast-Recovery-Dioden RGP30M HBS 0,30 € 1,20 € 4 Optokoppler MOC 3020 Reichelt 0,42 € 1,68 € 4 Transistor BC548B BC 548B Reichelt 0,04 € 0,16 € 2 Funkentstördrossel MESC 15µ Reichelt 0,45 € 0,90 € 4 Widerstand 470 / 0,6W HBS 0,10 € 0,40 € 4 Widerstand 330 / 0,6W HBS 0,10 € 0,40 € 4 Widerstand 100 / 0,6W HBS 0,10 € 0,40 € 4 Triac BT 138/600 Reichelt 0,72 € 2,88 € 1 Platinen-Steckverbinder PS25/10G WS Reichelt 1,25 € 1,25 € 1 Widerstand 9W axial 3,9 Reichelt 0,29 € 0,29 € 1 Widerstand 5W axial 1,5 Reichelt 0,39 € 0,39 €

31,11 €

48,11 € Gesamtkosten beider Platinen

Bauteileliste der Hauptplatine

Bauteileliste der Bedientableau-Platine

Gesamtkosten der Bedientableau-Platine

Gesamtkosten der Hauptplatine

Kaffeemaschine Dokumentation

Frank Lattner Seite: 18 / 52 Datum: März 2005

4.3 Blockschaltbild mit Beschreibung

Kaffeemaschine Dokumentation

Frank Lattner Seite: 19 / 52 Datum: März 2005

Die rot umrandeten Bereiche stellen jeweils den Inhalt einer Platine dar. Aufgeteilt ist das Blockschaltbild in Hauptplatine, Bedientableau – Platine, Mikrocontroller – Platine und die Komponenten (nicht umrandet), welche ich ansteuere bzw. überwache. Die von mir erstellten Platinen sind die Hauptplatine und die Bedientableau – Platine. Von Herrn Sperling habe ich die Mikrocontroller – Platine mit dem Mikrocontroller Siemens 80C535 erhalten. Diese wurde auf die Hauptplatine angepasst und montiert. Es sind alle Pins des Mikrocontrollers, welche für die Schaltung benötigt wurden benannt. Die Pins der I2C – Ansteuerung, sowie die Pins der 5 Bedientasten wurden zusammengefasst. Pin 6.0 ist für die Temperaturmessung als Analogeingang initialisiert worden. Mit dem Blockschaltbild soll die Zusammenschaltung des Gesamtprojekts ersichtlich werden. Wie bereits beschrieben, werden sämtliche Taster, Schalter und Sensoren, die vom Mikrocontroller überwacht werden, auf Low- abgefragt. Deswegen habe ich bei der Zeichnung die Masseverbindungen mit eingezeichnet. Anhand des Blockschaltbildes wird auf die schnelle ersichtlich, welche Komponenten angesteuert bzw. überwacht werden müssen. Auch ist erkennbar, dass alle Komponenten, welche nicht in einem roten Bereich enthalten sind (außer Mikrocontroller – Platine) Hardwareteile sind, welche ich aus einer anderen Maschine verwendet habe. Die Ansteuerungen der Leistungskomponenten sind bis auf die Mahlwerksansteuerung identisch. Dort kamen noch ein Gleichrichter, zwei Funkentstördrosseln und ein Anlaufwiderstand hinzu. Signalrichtungen der einzelnen Ansteuerungen und Überwachungen sind mit der jeweiligen Pfeilrichtung erkennbar. So kann festgestellt werden, welche Komponenten überwacht und welche angesteuert werden.

Kaffeemaschine Dokumentation

Frank Lattner Seite: 20 / 52 Datum: März 2005

5.1 Schaltplanübersicht mit Kennzeichnung der einzelnen Bereiche

28.0

3.05

88,0

0%M

aßst

ab:

Proj

ekt:

31.0

3.05

letz

te Ä

nder

ung:

Dat

um:

Nam

e:

76

54

32

1

EDCBA

76

54

32

1

EDCBA

Kaffeemaschine Dokumentation

Frank Lattner Seite: 21 / 52 Datum: März 2005

5.2 Schaltplan der Hauptplatine (Steuerungsteil)

29.0

3.05

88,0

0%M

aßst

ab:

Proj

ekt:

29.0

3.05

letz

te Ä

nder

ung:

Dat

um:

Nam

e:

76

54

32

1

EDCBA

76

54

32

1

EDCBA

Kaffeemaschine Dokumentation

Frank Lattner Seite: 22 / 52 Datum: März 2005

5.3 Schaltplan der Hauptplatine (Leistungsteil)

30.0

3.05

88,0

0%M

aßst

ab:

Proj

ekt:

30.0

3.05

letz

te Ä

nder

ung:

Dat

um:

Nam

e:

76

54

32

1

EDCBA

76

54

32

1

EDCBA

Kaffeemaschine Dokumentation

Frank Lattner Seite: 23 / 52 Datum: März 2005

5.4 Schaltplan der Bedientableau-Platine

29.0

3.05

88,0

0%M

aßst

ab:

Proj

ekt:

30.0

3.05

letz

te Ä

nder

ung:

Dat

um:

Nam

e:

76

54

32

1

EDCBA

76

54

32

1

EDCBA

Kaffeemaschine Dokumentation

Frank Lattner Seite: 24 / 52 Datum: März 2005

6.1 Layout der Hauptplatine

6.2 Layout der Bedientableau-Platine

Kaffeemaschine Dokumentation

Frank Lattner Seite: 25 / 52 Datum: März 2005

6.3 Oberseite der Hauptplatine mit Klemmenbezeichnung

6.4 Oberseite der Bedientableau-Platine

Kaffeemaschine Dokumentation

Frank Lattner Seite: 26 / 52 Datum: März 2005

7.1 Struktogramme Hauptprogramm: Kaffeemaschine Zu Beginn wird Port 5 des Mikrocontrollers ausgeschaltet, da beim Anlegen der Betriebsspannung Port 5 in den High - Zustand geht, wegen den internen Pull - up Widerständen. Danach wird kontrolliert ob die Brüheinheit in Grundstellung ist und ob eine Störung ansteht. Wenn dies alles ohne Störungen geschehen ist, wird die Maschine aufgeheizt und nach dem erreichen der Temperatur erscheint im Display: „Kaffeemaschine Betriebsbereit“ Das Hauptprogramm dient zur Verzweigung in die verschiedenen Unterprogramme. Hier kann entschieden werden, ob in die Funktion_Kaffee_gross(), Funktion_Kaffee_mittel(), Funktion_Kaffee_klein(), Funktion_Dampf(), Funktion_Pulver und Funktion_Wasser eingesprungen wird. Hauptprogramm "Kaffeemaschine"

P5 ausschaltenAufruf der Funktion "cursor_off" / Cursor ausschaltenAufruf der Funktion "Referenzfahrt" / Prüfen, ob Brüheinheit in Grundstellung ist

Endlosablauf des Programms

Aufruf der Funktion "Kontrolle" / Prüfen, ob Tresterbehälter, Wasser und Brüheinheit vorhanden sindAufruf der Funktion "Heizen" / Temperaturregelung für Durchlauferhitzer (Rückgabewert "erstesmal = 1")

Wenn Taste "grosse Tasse" betätigt wird

Aufruf der Funktion "Funktion_Kaffee_gross"Merker_Variable "anzeige" setzen

Wenn Taste "mittlere Tasse" betätigt wird

Aufruf der Funktion "Funktion_Kaffee_mittel"Merker_Variable "anzeige" setzen

Wenn Taste "kleine Tasse" betätigt wird

Aufruf der Funktion "Funktion_Kaffee_klein"Merker_Variable "anzeige" setzen

Wenn Taste "Dampf" betätigt wird

Aufruf der Funktion "Funktion_Dampf"Merker_Variable "anzeige" setzen

Wenn Taste "Pulver" betätigt wird

Aufruf der Funktion "Funktion_Pulver"Merker_Variable "anzeige" setzen

Wenn der Drehschalter betätigt wird

Aufruf der Funktion "Funktion_Wasser"Merker_Variable "anzeige" setzen

Wenn die Merker_Variable "anzeige" gesetzt wurde

Aufruf der Funktion "init_display" / Display neu initialisierenAusgabe auf Display: "Kaffeemaschine"Cursor auf Zeile 1, Spalte 0Ausgabe auf Display: "Betriebsbereit"Merker_Variable "anzeige" rücksetzen

Kaffeemaschine Dokumentation

Frank Lattner Seite: 27 / 52 Datum: März 2005

Funktion: Referenzfahrt Die Funktion Referenzfahrt wird immer nur beim Start des Hauptprogramms ausgeführt. Hier wird die Brüheinheit in Grundstellung gefahren, damit sie entnommen werden kann, um sie zu reinigen, oder damit sie bereit ist, wenn Kaffee gemahlen bzw. Pulver eingefüllt wurde. Bei der Grundstellungsfahrt fährt die Brüheinheit solange in Richtung Grundstellung, bis der Endschalter für die Grundstellung erreicht wurde. Dies ist erforderlich, damit das Sieb in der Brüheinheit ganz nach unten fährt um das Pulver aufzufangen. Danach fährt die Brüheinheit wieder vom Grundstellungsendschalter, damit sie nicht mehr klemmt. So kann sie zur Reinigung leicht entnommen und nach der Reinigung wieder leicht eingesetzt werden. Das Sieb bleibt dabei aber in der unteren Stellung. Funktion_Referenzfahrt()

Deklaration der Zeitvariable y für Brüheinheitmotor

Solange die Grundstellung nicht erreicht ist

Motor Richtung Grundstellung an

Motor Richtung Grundstellung aus

Initialisierung der Zeitvariablen "y" mit 0 / Verzögerungszeit (Pause für Brüheinheitmotor)

Solange die Zeitvariable "y" < 40000 istZeitvariable "y" inkrementieren

Motor Richtung Brühstellung an / da Brüheinheit sonst klemmt

Initialisierung der Zeitvariablen "y" mit 0 / Verzögerungszeit, damit Brüheinheit entnehmbar ist

Solange die Zeitvariable "y" < 32000 istZeitvariable "y" inkrementieren

Initialisierung der Zeitvariablen "y" mit 0 / Verzögerungszeit, damit Brüheinheit entnehmbar ist

Solange die Zeitvariable "y" < 32000 ist Zeitvariable "y" inkrementieren

Initialisierung der Zeitvariablen "y" mit 0 / Verzögerungszeit, damit Brüheinheit entnehmbar ist

Solange die Zeitvariable "y" < 32000 istZeitvariable "y" inkrementieren

Motor Richtung Brühstellung aus

Kaffeemaschine Dokumentation

Frank Lattner Seite: 28 / 52 Datum: März 2005

Funktion: Kontrolle In dieser Funktion wird kontrolliert, ob der Tresterbehälter vorhanden ist, ob die Brüheinheit vorhanden ist und ob genügend Wasser im Wassertank ist. Tritt eine Störung bei den Kontrollen auf, beginnt die Störungs - LED zu blinken und der zur Störung dazugehörige Text wird im Display angezeigt. Durch das Setzen des Merkers „schreiben“, wird ein andauerndes Überschreiben des Displays verhindert. Ist die Störung wieder behoben, erscheint im Display erneut „Maschine Betriebsbereit“ und es wird wieder ins Hauptprogramm gesprungen.

Kontrollfunktion für Wasserstand, Brüheinheit und Tresterbehälter

Deklaration der Variable "blink" für die Blinkfrequenz der Störungs-LEDDeklaration der Variable "schreiben" damit das Display nur 1x beschrieben wird

Solange der Tresterbehälter fehlt

then elseWenn der Tresterbehälter fehlt und die Variable "schreiben" rückgesetzt ist

Durchlauferhitzer ausschaltenVariable "schreiben" setzen (für Display)Display neu initialisierenAusgabe auf Display: "Behälter"Cursor auf Zeile 1, Spalte 0Ausgabe auf Display: "fehlt"

Adresse an PCF-Baustein senden & Störungs-LED anschalten

Variable "blink" mit 0 initialisieren / Zeitschleife für Störungs-LED einschalten

Solange Variable "blink" < 32000Variable "blink" inkrementieren

Adresse an PCF-Baustein senden & Störungs-LED ausschalten

Variable "blink" mit 0 initialisieren / Zeitschleife für Störungs-LED ausschalten

Solange Variable "blink" < 32000Variable "blink" inkrementieren

then elseWenn der Tresterbehälter wieder vorhanden ist

Display neu initialisierenAusgabe auf Display: "Kaffeemaschine"Cursor auf Zeile 1, Spalte 0Ausgabe auf Display: "Betriebsbereit"

Variable "schreiben" rücksetzen (für Display)

Solange die Brüheinheit fehlt

then elseWenn Brüheinheit fehlt und die Variable "schreiben" rückgesetzt ist

Durchlauferhitzer ausschaltenVariable "schreiben" setzen (für Display)Display neu initialisierenAusgabe auf Display: "Brüheinheit"Cursor auf Zeile 1, Spalte 0Ausgabe auf Display: "fehlt"

Adresse an PCF-Baustein senden & Störungs-LED anschalten

Variable "blink" mit 0 initialisieren / Zeitschleife für Störungs-LED einschalten

Solange Variable "blink" < 32000Variable "blink" inkrementieren

Adresse an PCF-Baustein senden & Störungs-LED ausschalten

Variable "blink" mit 0 initialisieren / Zeitschleife für Störungs-LED ausschalten

Solange Variable "blink" < 32000Variable "blink" inkrementieren

then elseWenn Brüheinheit wieder vorhanden ist

Display neu initialisierenAusgabe auf Display: "Kaffeemaschine"Cursor auf Zeile 1, Spalte 0Ausgabe auf Display: "Betriebsbereit"

Variable "schreiben" rücksetzen (für Display)

Solange der Wasserstand zu niedrig ist

then elseWenn Wasser fehlt und die Variable "schreiben" rückgesetzt ist

Durchlauferhitzer ausschaltenVariable "schreiben" setzen (für Display)Display neu initialisierenAusgabe auf Display: "Bitte Wasser"Cursor auf Zeile 1, Spalte 0Ausgabe auf Display: "auffüllen"

Adresse an PCF-Baustein senden & Störungs-LED anschalten

Variable "blink" mit 0 initialisieren / Zeitschleife für Störungs-LED einschalten

Solange Variable "blink" < 32000Variable "blink" inkrementieren

Adresse an PCF-Baustein senden & Störungs-LED ausschalten

Variable "blink" mit 0 initialisieren / Zeitschleife für Störungs-LED ausschalten

Solange Variable "blink" < 32000Variable "blink" inkrementieren

then elseWenn Wasserstand wieder OK

Display neu initialisierenAusgabe auf Display: "Kaffeemaschine"Cursor auf Zeile 1, Spalte 0Ausgabe auf Display: "Betriebsbereit"

Kaffeemaschine Dokumentation

Frank Lattner Seite: 29 / 52 Datum: März 2005

Funktion: anainit Hier wird Pin 6.0 des Mikrocontrollers für die Analog - Digital Wandlung initialisiert. Bei der Initialisierung wird Pin 6.0 auf kontinuierliche Wandlung eingestellt. Danach kann die Wandlung starten. Die Funktion anainit wird aus der Funktion Heizen aufgerufen. Funktion anainit() / Initialisierung der Analog-Digital Wandlung

Kanal 6.0 auswählen / kontinuierlich wandelnWandlung starten

Funktion Heizen Die Regulierung des Durchlauferhitzers übernimmt die Funktion Heizen. Wird nach dem Programmstart das erste Mal in diese Funktion gesprungen, ist die Variable „erstesmal“ mit 0 initialisiert. Erst wenn der Durchlauferhitzer das erste Mal die Mindesttemperatur erreicht hat, kann man die Kaffeemaschine bedienen. Nach dem Erreichen der Mindesttemperatur wird die Variable „erstesmal“ auf 1 gesetzt. Von nun an geht das Programm nicht mehr in die Aufwärmphase und wartet bis die Mindesttemperatur erreicht ist, sondern regelt den Durchlauferhitzer nebenher. Ist die Temperatur über dem Mindestwert, wird der Durchlauferhitzer ausgeschaltet. Fällt die Temperatur unter den Mindestwert, wird der Durchlauferhitzer wieder eingeschaltet. Funktion_Heizen / Regelt die Temperatur des Durchlauerhtzers

Deklaration der Variable "schreiben" für Display beschreiben (nur 1x)Aufruf der Funktion "anainit" / Initialisierung der Analog-Digital Wandlung

warten bis Temperatur zum erstenmal erreicht wurde

Variable "erstesmal" setzen für Temperatur zum ersten Mal erreicht

Solange der Sollwert noch nicht erreicht ist

Aufruf der Funktion "anainit" / Initialisierung der Analog-Digital WandlungDurchlauferhitzer an

then elseVariable "schreiben" für Display beschreiben abfragen

Variable "schreiben" für Display beschreiben setzenAufruf der Funktion "init_display" / Display neu initialisierenAusgabe auf Display: "Aufheizen..."

Aufruf der Funktion "init_display" / Display neu initialisierenAusgabe auf Display: "Kaffeemaschine"Cursor auf Zeile 1, Spalte 0Ausgabe auf Display: "Betriebsbereit"

then elseSolange die Temperatur grösser als der Mindestwert ist

Durchlauferhitzer aus

then elseSolange die Temperatur kleiner als der Mindestwert ist

Durchlauferhitzer an

Kaffeemaschine Dokumentation

Frank Lattner Seite: 30 / 52 Datum: März 2005

Funktion: Mahlen_Magnetschalter In diese Funktion wird gesprungen, wenn die Taste „große Tasse, mittlere Tasse oder kleine Tasse“ betätigt wurde. Das Mahlwerk wird dann solange angeschaltet, bis der Dosiererschalter belegt ist. Sollte nicht innerhalb einer gewissen Zeit (ca. 10 Sekunden) der Dosierschalter belegt sein, wird das Mahlwerk ausgeschaltet, und im Display erschein die Aufforderung “Bitte Bohnen nachfüllen“. Sind dann Kaffeebohnen nachgefüllt worden, kann eine der drei Tasten für Kaffee betätigt werden und das Mahlwerk wird wieder solange angeschaltet, bis der Dosiererschalter belegt ist. Danach wird das Mahlwerk abgeschaltet und der Magnetschalter zieht dreimal an um das gemahlene Kaffeepulver in die Brüheinheit zu kippen. Funktion "Mahlen_Magnetschalter" / Aktiv, wenn Kaffee gross, mittel oder klein gewählt wurde

Deklaration der Variablen "zeitueberschritten" für Zeitüberschreitung Mahlwerk Deklaration der Zeitvariablen "zeitkontrolle" für MahlwerküberwachungDeklaration der Zählervariable "anziehen" für MagnetschalterDeklaration der Zeitvariable "halten" für MagnetschalterDeklaration der Variable "schreiben" für Display beschreiben (nur 1x)

Solange die Kaffeepulvermenge nicht erreicht wurde oder Variable "zeitueberschritten" für Zeitüberschreitung Mahlwerk gestezt ist

Variable "zeitueberschritten" für Zeitüberschreitung Mahlwerk rücksetzenZeitvariable "zeitkontrolle" für Mahlwerk inkrementierenMahlwerk an

then elseWenn die Variable "schreiben" rückgesetzt ist

Aufruf der Funktion "init_display" / Display neu initialisierenAusgabe auf Display: "Kaffee wird" Cursor auf Zeile 1, Spalte 0 Ausgabe auf Display: "gemahlen"Variable "schreiben" für Display setzen

then elseWenn die Zeit für die Mahlung überschritten ist / (zeitkontrolle >= 200000)

Variable "zeitueberschritten" für Zeitüberschreitung Mahlwerk setzenMahlwerk ausAufruf der Funktion "init_display" / Display neu initialisierenAusgabe auf Display: "Bitte Bohnen" Cursor auf Zeile 1, Spalte 0 Ausgabe auf Display: "nachfuellen"Zeitvariable "zeitkontrolle" für Mahlwerk rücksetzen

Solange keine der Tasten "grosse Tasse", "mittlere Tasse" oder "kleine Tasse erneut betätigt wurde

wird gewartet

Variable "schreiben" für Display rücksetzen

Mahlwerk aus

Solange der Magnetschalter nicht 3x betätigt wurde

Magnetschalter an

Variable "halten" mit 0 initialisieren / Zeitschleife für Magnetschalter an

Solange Variable "halten" < 33000 istVariable "halten" inkrementieren

Magnetschalter aus

Variable "halten" mit 0 initialisieren / Zeitschleife für Magnetschalter aus

Solange Variable "halten" < 33000 istVariable "halten" inkrementieren

Kaffeemaschine Dokumentation

Frank Lattner Seite: 31 / 52 Datum: März 2005

Funktion: Brüheinheit Brühstellung Die Funktion Brueheinheit_Bruehstellung() wird von den sechs Tassenprogrammen aufgerufen. Sobald eine Tasse Kaffee zubereitet werden soll, wird von den jeweiligen Funktionen, die für die Kaffeezubereitung zuständig sind, in diese Funktion gesprungen. Hier wird die Brüheinheit in die geforderte Brühstellung gefahren, in dem der Brüheinheitmotor in Richtung Brühstellung angeschaltet wird. Der Motor wird bei erreichen des Brühstellungsendschalter abgeschaltet. Danach springt das Programm wieder in den Programmabschnitt, der zuvor abgearbeitet wurde, zurück.

Funktion Brueheinheit_Bruehstellung() / Funktion Brueheinheit_Bruehstellung / Aktiv, wenn Kaffee zubereitet werden soll

Solange die Brühstellung nicht erreicht ist

Motor Richtung Brühstellung an

Schleifenaussprung, wenn Endschalter Brühstellung erreichtMotor Richtung Brühstellung aus

Funktion: Brüheinheit Grundstellung Die Funktion Brueheinheit_Grundstellung() wird von den sechs Tassenprogrammen aufgerufen. Sobald die Zubereitung einer Tasse Kaffee beendet ist, wird von den jeweiligen Funktionen, die für die Kaffeezubereitung zuständig sind, in diese Funktion gesprungen. Hier wird die Brüheinheit in die geforderte Grundstellung gefahren, in dem der Brüheinheitmotor in Richtung Grundstellung angeschaltet wird. Der Motor wird bei erreichen des Grundstellungsendschalter abgeschaltet. Dann wird kurz gewartet und danach wird der Motor für eine kurze Zeit wieder in Richtung Brühstellung gefahren, damit die Brüheinheit mechanisch locker sitzt um sie zur Reinigung entnehmen zu können. Danach springt das Programm wieder in den Programmabschnitt, der zuvor abgearbeitet wurde, zurück.

Funktion Brueheinheit_Grundstellung() / Funktion Brueheinheit_Grundstellung / Aktiv, wenn Kaffee zubereitet wurde

Deklaration der Zeitvariable y für BrüheinheitmotorDeklaration der Zeitvariable z für Displayanzeige

Solange Grundstellung nicht erreicht ist

Motor Richtung Grundstellung an

Motor Richtung Grundstellung aus

Zeitvariable "y" mit 0 initialisieren

Solange die Zeitvariable "y" < 40000 / Verzögerungszeit (Pause für Motor)Zeitvariable "y" inkrementieren

Motor Richtung Brühstellung an / Muss gemacht werden da sonst die Brüheinheit klemmt

Zeitvariable "y" mit 0 initialisieren

Solange die Zeitvariable "y" < 32000 / Verzögerungszeit, damit Brüheinheit entnehmbar istZeitvariable "y" inkrementieren

Zeitvariable "y" mit 0 initialisieren

Solange die Zeitvariable "y" < 32000 / Verzögerungszeit, damit Brüheinheit entnehmbar istZeitvariable "y" inkrementieren

Zeitvariable "y" mit 0 initialisieren

Solange die Zeitvariable "y" < 32000 / Verzögerungszeit, damit Brüheinheit entnehmbar istZeitvariable "y" inkrementieren

Motor Richtung Brühstellung ausAufruf der Funktion init_display() / Display neu initialisierenAusgabe auf Display: "Bitte Tasse" Cursor auf Zeile 1, Spalte 0 Ausgabe auf Display: "entnehmen"

Zeitvariable "z" mit 0 initialisieren

Solange die Zeitvariable "z" < 40000 / Verzögerungszeit für DisplayanzeigeZeitvariable "z" inkrementieren

Kaffeemaschine Dokumentation

Frank Lattner Seite: 32 / 52 Datum: März 2005

Funktion: Kaffee groß Bei Betätigen der Taste „große Tasse“, wird in diese Funktion gesprungen. Bevor der Kaffee zubereitet werden kann, müssen die Kaffeebohnen gemahlen und die Brüheinheit in Brühstellung gebracht werden. Danach wird der Durchlauferhitzer eingeschaltet, damit das nachströmende Wasser erwärmt wird. Die Pumpe wird dann solange eingeschaltet, bis die Durchflussmenge der großen Tasse erreicht ist. Wurde die Durchflussmenge erreicht, werden die Pumpe und der Durchlauferhitzer ausgeschaltet, und die Brüheinheit fährt nach einer kurzen Wartezeit wieder in die Grundstellung. Funktion Kaffee_gross / Aktiv, wenn Taste "grosse Tasse" betätigt wurde

Deklaration der Zeitvariablen "abtropfen" für Abtropfzeit nach der ZubereitungDeklaration der Variablen "durchflussmenge" für Wassermengenanzeige

Aufruf der Funktion "Mahlen_Magnetschalter" / Kaffee mahlen & Magnetschalter 3x betätigen Aufruf der Funktion "init_display" / Display neu initialisieren Ausgabe auf Display: "grosse Tasse" Cursor auf Zeile 1, Spalte 0 Ausgabe auf Display: "wird zubereitet" Aufruf der Funktion "Brueheinheit_Bruehstellung" / Brüheinheit soll in Brühstellung

Durchlauferhitzer einschalten Pumpe einschalten

Solange Durchflussmenge nicht erreicht ist (durchflussmenge <= 500)

then elseWenn Wassermengensensor eine negative Flanke erzeugt

Variable "durchflussmenge" inkrementieren

then elseWenn die Variable "durchflussmenge" zwischen 0 und 75 ist

Adresse für Füllstand an PCF senden & LED 1 an

then elseWenn die Variable "durchflussmenge" zwischen 75 und 150 ist

Adresse für Füllstand an PCF senden & LED 1-2 an

then elseWenn die Variable "durchflussmenge" zwischen 150 und 220 ist

Adresse für Füllstand an PCF senden & LED 1-3 an

then elseWenn die Variable "durchflussmenge" zwischen 220 und 290 ist

Adresse für Füllstand an PCF senden & LED 1-4 an

then elseWenn die Variable "durchflussmenge" zwischen 290 und 360 ist

Adresse für Füllstand an PCF senden & LED 1-5 an

then elseWenn die Variable "durchflussmenge" zwischen 360 und 430 ist

Adresse für Füllstand an PCF senden & LED 1-6 an

then elseWenn die Variable "durchflussmenge" grösser 430 ist

Adresse für Füllstand an PCF senden & Alle-LED´s an

Solange der Wassermengensensor 0V liefert

warten bis der Wassermengensensor wieder positive Flanke erzeugt

Pumpe ausschaltenDurchlauferhitzer ausschalten

Variable "abtropfen" mit 0 initialisieren (Verzögerungszeit nach Zubereitung)

Solange Variable "abtropfen" < 40000 istVariable "abtropfen" inkrementieren

Aufruf der Funktion "Brueheinheit_Grundstellung (Brüheinheit soll in Grundstellung)Adresse für Füllstand an PCF senden & Alle LED´s aus

Kaffeemaschine Dokumentation

Frank Lattner Seite: 33 / 52 Datum: März 2005

Funktion: Kaffee mittel Bei Betätigen der Taste „mittlere Tasse“, wird in diese Funktion gesprungen. Bevor der Kaffee zubereitet werden kann, müssen die Kaffeebohnen gemahlen und die Brüheinheit in Brühstellung gebracht werden. Danach wird der Durchlauferhitzer eingeschaltet, damit das nachströmende Wasser erwärmt wird. Die Pumpe wird dann solange eingeschaltet, bis die Durchflussmenge der mittleren Tasse erreicht ist. Wurde die Durchflussmenge erreicht, werden die Pumpe und der Durchlauferhitzer ausgeschaltet, und die Brüheinheit fährt nach einer kurzen Wartezeit wieder in die Grundstellung. Funktion Kaffee_mittel / Aktiv, wenn Taste "mittlere Tasse" betätigt wurde

Deklaration der Zeitvariablen "abtropfen" für Abtropfzeit nach der ZubereitungDeklaration der Variablen "durchflussmenge" für Wassermengenanzeige

Aufruf der Funktion "Mahlen_Magnetschalter" / Kaffee mahlen & Magnetschalter 3x betätigen

Aufruf der Fuktion "init_display" / Display neu initialisieren Ausgabe auf Display: "mittlere Tasse" Cursor auf Zeile 1, Spalte 0 Ausgabe auf Display: "wird zubereitet" Aufrug der Funktion "Brueheinheit_Bruehstellung" / Brüheinheit soll in Brühstellung

Durchlauferhitzer einschalten Pumpe einschalten

Solange Durchflussmenge nicht erreicht ist (durchflussmenge <= 350)

then elseWenn Wassermengensensor eine negative Flanke erzeugt

Variable "durchflussmenge" inkrementieren

then elseWenn die Variable "durchflussmenge" zwischen 0 und 50 ist

Adresse für Füllstand an PCF senden & LED 1 an

then elseWenn die Variable "durchflussmenge" zwischen 50 und 100 ist

Adresse für Füllstand an PCF senden & LED 1-2 an

then elseWenn die Variable "durchflussmenge" zwischen 100 und 150 ist

Adresse für Füllstand an PCF senden & LED 1-3 an

then elseWenn die Variable "durchflussmenge" zwischen 150 und 200 ist

Adresse für Füllstand an PCF senden & LED 1-4 an

then elseWenn die Variable "durchflussmenge" zwischen 200 und 250 ist

Adresse für Füllstand an PCF senden & LED 1-5 an

then elseWenn die Variable "durchflussmenge" zwischen 250 und 300 ist

Adresse für Füllstand an PCF senden & LED 1-6 an

then elseWenn die Variable "durchflussmenge" grösser 300 ist

Adresse für Füllstand an PCF senden & Alle-LED´s an

Solange der Wassermengensensor 0V liefert

warten bis der Wassermengensensor wieder positive Flanke erzeugt

Pumpe ausschaltenDurchlauferhitzer ausschalten

Variable "abtropfen" mit 0 initialisieren (Verzögerungszeit nach Zubereitung)

Solange Variable "abtropfen" < 40000 istVariable "abtropfen" inkrementieren

Aufruf der Funktion Brueheinheit_Grundstellung / Brüheinheit soll in GrundstellungAdresse für Füllstand an PCF senden & Alle LED´s aus

Kaffeemaschine Dokumentation

Frank Lattner Seite: 34 / 52 Datum: März 2005

Funktion: Kaffee klein Bei Betätigen der Taste „kleine Tasse“, wird in diese Funktion gesprungen. Bevor der Kaffee zubereitet werden kann, müssen die Kaffeebohnen gemahlen und die Brüheinheit in Brühstellung gebracht werden. Danach wird der Durchlauferhitzer eingeschaltet, damit das nachströmende Wasser erwärmt wird. Die Pumpe wird dann solange eingeschaltet, bis die Durchflussmenge der kleinen Tasse erreicht ist. Wurde die Durchflussmenge erreicht, werden die Pumpe und der Durchlauferhitzer ausgeschaltet, und die Brüheinheit fährt nach einer kurzen Wartezeit wieder in die Grundstellung. Funktion Kaffee_klein / Aktiv, wenn Taste "kleine Tasse" betätigt wurde

Deklaration der Zeitvariablen "abtropfen" für Abtropfzeit nach der ZubereitungDeklaration der Variablen "durchflussmenge" für Wassermengenanzeige

Aufruf der Funktion "Mahlen_Magnetschalter" / Kaffee mahlen & Magnetschalter 3x betätigen Aufruf der Funktion "init_display" / Display neu initialisieren Ausgabe auf Display: "kleine Tasse" Cursor auf Zeile 1, Spalte 0 Ausgabe auf Display: "wird zubereitet" Aufruf der Funktion "Brueheinheit_Bruehstellung" / Brüheinheit soll in Brühstellung

Durchlauferhitzer einschalten Pumpe einschalten

Solange Durchflussmenge nicht erreicht ist (durchflussmenge <= 200)

then elseWenn Wassermengensensor eine negative Flanke erzeugt

Variable "durchflussmenge" inkrementieren

then elseWenn die Variable "durchflussmenge" zwischen 0 und 25 ist

Adresse für Füllstand an PCF senden & LED 1 an

then elseWenn die Variable "durchflussmenge" zwischen 25 und 50 ist

Adresse für Füllstand an PCF senden & LED 1-2 an

then elseWenn die Variable "durchflussmenge" zwischen 50 und 80 ist

Adresse für Füllstand an PCF senden & LED 1-3 an

then elseWenn die Variable "durchflussmenge" zwischen 80 und 110 ist

Adresse für Füllstand an PCF senden & LED 1-4 an

then elseWenn die Variable "durchflussmenge" zwischen 110 und 140 ist

Adresse für Füllstand an PCF senden & LED 1-5 an

then elseWenn die Variable "durchflussmenge" zwischen 140 und 170 ist

Adresse für Füllstand an PCF senden & LED 1-6 an

then elseWenn die Variable "durchflussmenge" gösser 170 ist

Adresse für Füllstand an PCF senden & Alle-LED´s an

Solange der Wassermengensensor 0V liefert

warten bis der Wassermengensensor wieder positive Flanke erzeugt

Pumpe ausschaltenDurchlauferhitzer ausschalten

Variable "abtropfen" mit 0 initialisieren (Verzögerungszeit nach Zubereitung)

Solange Variable "abtropfen" < 40000 istVariable "abtropfen" inkrementieren

Aufruf der Funktion "Brueheinheit_Grundstellung / Brüheinheit soll in GrundstellungAdresse für Füllstand an PCF senden & Alle LED´s aus

Kaffeemaschine Dokumentation

Frank Lattner Seite: 35 / 52 Datum: März 2005

Funktion: Pulver Bei Betätigen der Taste „Pulver“, wird in die Funktion Pulver gesprungen. Dort wird man aufgefordert, Kaffeepulver in den Pulverschacht einzufüllen. Nun gibt es auch hier die Möglichkeiten, eine große, mittlere oder kleine Tasse Kaffee zu zubereiten. Als vierte Möglichkeit kann man ein zweites Mal die Pulvertaste betätigen, so dass das Programm wieder zurück ins Hauptprogramm springt. Damit das Programm nicht auf das Prellen des Tasters reagiert, wurde eine Verzögerungszeit programmiert. Achtung: Zu beachten ist hier allerdings, dass man die Pulvertaste nur zum zweiten Mal betätigen sollte, wenn noch kein Pulver in den Pulverschacht eingefüllt wurde. Wenn im nächsten Schritt ein Kaffee gewählt wird bei dem das Mahlwerk einsetzt, ist die Kaffeepulvermenge zu groß und die Brüheinheit könnte blockieren. Funktion Pulver / Aktiv, wenn Taste "Pulver" betätigt

Deklaration der Variablen "aussprung" für SchleifenaussprungDeklaration der Variablen "warten" für Verzögerung(Prellen) der Pulvertaste

Aufruf der Funktion "init_display" / Display neu initialisieren Ausgabe auf Display: "Pulver" Cursor auf Zeile 1, Spalte 0 Ausgabe auf Display: "einfuellen"

Variable "warten" mit 0 initialisieren / Zeitschleife für Pulvertaste (wegen Prellen der Pulvertaste)

Solange Variable "warten" < 32000Variable "warten" inkrementieren

Solange Schleifenaussprungvariable "aussprung" = 0 ist und Taste "Pulver" nicht zum 2ten mal betätigt wurde, wird gewartet

then elseWenn Taste "grosse Tasse" gewählt wird und Schleifenaussprung nicht aktiv ist

Aufruf der Funktion "Funktion_Pulverkaffee_gross"Setzen der Schleifenaussprungvariablen "aussprung"

then elseWenn Taste "mittlere Tasse" gewählt wird und Schleifenaussprung nicht aktiv ist

Aufruf der Funktion "Funktion_Pulverkaffee_mittel"Setzen der Schleifenaussprungvariablen "aussprung"

then elseWenn Taste "kleine Tasse" gewählt wird und Schleifenaussprung nicht aktiv ist

Aufruf der Funktion "Funktion_Pulverkaffee_klein"Setzen der Schleifenaussprungvariablen "aussprung"

then elseWenn Pulver Taste erneut betätigt wird

Setzen der Schleifenaussprungvariablen "aussprung"

Variable "warten" mit 0 initialisieren / Zeitschleife für Pulvertaste (wegen Prellen der Pulvertaste)

Solange Variable "warten" < 32000Variable "warten" inkrementieren

Kaffeemaschine Dokumentation

Frank Lattner Seite: 36 / 52 Datum: März 2005

Funktion: Pulverkaffee groß Bei Betätigen der Taste „Pulver“, wird in die Funktion Pulver gesprungen. Hier gibt es die Option, eine große, mittlere oder kleine Tasse Kaffee mit Kaffeepulver zu zubereiten. Fällt die Auswahl auf eine große Tasse Kaffee, so springt das Programm in die Funktion Pulverkaffee_gross. Bevor der Kaffee zubereitet werden kann, muss die Brüheinheit in Brühstellung gebracht werden. Danach wird der Durchlauferhitzer eingeschaltet, damit das nachströmende Wasser erwärmt wird. Die Pumpe wird dann solange eingeschaltet, bis die Durchflussmenge der großen Tasse erreicht ist. Wurde die Durchflussmenge erreicht, werden die Pumpe und der Durchlauferhitzer ausgeschaltet, und die Brüheinheit fährt nach einer kurzen Wartezeit wieder in die Grundstellung. Funktion_Pulverkaffee_gross / Aktiv, wenn Taste "Pulver" und Taste "gosse Tasse" betätigt wurde

Deklaration der Zeitvariablen "abtropfen" für Abtropfzeit nach der ZubereitungDeklaration der Variablen "durchflussmenge" für Wassermengenanzeige

Aufruf der Funktion "init_display" / Display neu initialisierenAusgabe auf Display: "grosse Tasse" Cursor auf Zeile 1, Spalte 0 Ausgabe auf Display: "wird zubereitet"Aufruf der Funktion "Brueheinheit_Bruehstellung" / Brüheinheit soll in Brühstellung

Durchlauferhitzer einschalten Pumpe einschalten

Solange Durchflussmenge nicht erreicht ist (durchflussmenge <= 500)

then elseWenn Wassermengensensor eine negative Flanke erzeugt

Variable "durchflussmenge" inkrementieren

then elseWenn die Variable "durchflussmenge zwischen 0 und 75 ist

Adresse für Füllstand an PCF senden & LED 1 an

then elseWenn die Variable "durchflussmenge" zwischen 75 und 150 ist

Adresse für Füllstand an PCF senden & LED 1-2 an

then elseWenn die Variable "durchflussmenge" zwischen 150 und 220 ist

Adresse für Füllstand an PCF senden & LED 1-3 an

then elseWenn die Variable "durchflussmenge" zwischen 220 und 290 ist

Adresse für Füllstand an PCF senden & LED 1-4 an

then elseWenn die Variable "durchflussmenge" zwischen 290 und 360 ist

Adresse für Füllstand an PCF senden & LED 1-5 an

then elseWenn die Variable "durchflussmenge" zwischen 360 und 430 ist

Adresse für Füllstand an PCF senden & LED 1-6 an

then elseWenn die Variable "durchflussmenge" grösser 430 ist

Adresse für Füllstand an PCF senden & Alle-LED´s an

Solange der Wassermengensensor 0V liefert

warten bis der Wassermengensensor wieder positive Flanke erzeugt

Pumpe ausschaltenDurchlauferhitzer ausschalten

Variable "abtropfen" mit 0 initialisieren (Verzögerungszeit nach Zubereitung)

Solange Variable "abtropfen" < 40000) istVariable "abtropfen" inkrementieren

Aufruf der Funktion "Brueheinheit_Grundstellung" / Brüheinheit soll in GrundstellungAdresse für Füllstand an PCF senden & Alle LED´s aus

Kaffeemaschine Dokumentation

Frank Lattner Seite: 37 / 52 Datum: März 2005

Funktion: Pulverkaffee mittel Bei Betätigen der Taste „Pulver“, wird in die Funktion Pulver gesprungen. Hier gibt es die Option, eine große, mittlere oder kleine Tasse Kaffee mit Kaffeepulver zu zubereiten. Fällt die Auswahl auf eine mittlere Tasse Kaffee, so springt das Programm in die Funktion Pulverkaffee_mittel. Bevor der Kaffee zubereitet werden kann, muss die Brüheinheit in Brühstellung gebracht werden. Danach wird der Durchlauferhitzer eingeschaltet, damit das nachströmende Wasser erwärmt wird. Die Pumpe wird dann solange eingeschaltet, bis die Durchflussmenge der mittleren Tasse erreicht ist. Wurde die Durchflussmenge erreicht, werden die Pumpe und der Durchlauferhitzer ausgeschaltet, und die Brüheinheit fährt nach einer kurzen Wartezeit wieder in die Grundstellung. Funktion_Pulverkaffee_mittel / Aktiv, wenn Taste "Pulver" und Taste "mittlere Tasse" betätigt wurde

Deklaration der Zeitvariablen "abtropfen" für Abtropfzeit nach der ZubereitungDeklaration der Variablen "durchflussmenge" für Wassermengenanzeige

Aufruf der Funktion "init_display" / Display neu initialisierenAusgabe auf Display: "mittlere Tasse" Cursor auf Zeile 1, Spalte 0 Ausgabe auf Display: "wird zubereitet"Aufruf der Funktion "Brueheinheit_Bruehstellung" / Brüheinheit soll in Brühstellung

Durchlauferhitzer einschalten Pumpe einschalten

Solange Durchflussmenge nicht erreicht ist

then elseWenn Wassermengensensor eine negative Flanke erzeugt

Variable "durchflussmenge" inkrementieren

then elseWenn die Variable "durchflussmenge" zwischen 0 und 50 ist

Adresse für Füllstand an PCF senden & LED 1 an

then elseWenn die Variable "durchflussmenge" zwischen 50 und 100 ist

Adresse für Füllstand an PCF senden & LED 1-2 an

then elseWenn die Variable "durchflussmenge" zwischen 100 und 150 ist

Adresse für Füllstand an PCF senden & LED 1-3 an

then elseWenn die Variable "durchflussmenge" zwischen 150 und 200 ist

Adresse für Füllstand an PCF senden & LED 1-4 an

then elseWenn die Variable "durchflussmenge" zwischen 200 und 250 ist

Adresse für Füllstand an PCF senden & LED 1-5 an

then elseWenn die Variable "durchflussmenge" zwischen 250 und 300 ist

Adresse für Füllstand an PCF senden & LED 1-6 an

then elseWenn die Variable "durchflussmenge" grösser 300 ist

Adresse für Füllstand an PCF senden & Alle-LED´s an

Solange der Wassermengensensor 0V liefert

warten bis der Wassermengensensor wieder positive Flanke erzeugt

Pumpe ausschaltenDurchlauferhitzer ausschalten

Variable "abtropfen" mit 0 initialisieren (Verzögerungszeit nach Zubereitung)

Solange Variable "abtropfen" < 40000Variable "abtropfen" inkrementieren

Aufruf der Fuktion "Brueheinheit_Grundstellung" / Brüheinheit soll in GrundstellungAdresse für Füllstand an PCF senden & Alle LED´s aus

Kaffeemaschine Dokumentation

Frank Lattner Seite: 38 / 52 Datum: März 2005

Funktion: Kaffeepulver klein Bei Betätigen der Taste „Pulver“, wird in die Funktion Pulver gesprungen. Hier gibt es die Option, eine große, mittlere oder kleine Tasse Kaffee mit Kaffeepulver zu zubereiten. Fällt die Auswahl auf eine kleine Tasse Kaffee, so springt das Programm in die Funktion Pulverkaffee_klein. Bevor der Kaffee zubereitet werden kann, muss die Brüheinheit in Brühstellung gebracht werden. Danach wird der Durchlauferhitzer eingeschaltet, damit das nachströmende Wasser erwärmt wird. Die Pumpe wird dann solange eingeschaltet, bis die Durchflussmenge der kleinen Tasse erreicht ist. Wurde die Durchflussmenge erreicht, werden die Pumpe und der Durchlauferhitzer ausgeschaltet, und die Brüheinheit fährt nach einer kurzen Wartezeit wieder in die Grundstellung. Funktion_Pulverkaffee_klein / Aktiv, wenn Taste "Pulver" und Taste "kleine Tasse" betätigt wurde

Deklaration der Zeitvariablen "abtropfen" für Abtropfzeit nach der ZubereitungDeklaration der Variablen "durchflussmenge" für Wassermengenanzeige

Aufruf der Funktion "init_display" / Display neu initialisierenAusgabe auf Display: "kleine Tasse" Cursor auf Zeile 1, Spalte 0 Ausgabe auf Display: "wird zubereitet"Aufruf der Funktion "Brueheinheit_Bruehstellung" / Brüheinheit soll in Brühstellung

Durchlauferhitzer einschalten Pumpe einschalten

Solange Durchflussmenge nicht erreicht ist

then elseWenn Wassermengensensor eine negative Flanke erzeugt

Variable "durchflussmenge" inkrementieren

then elseWenn die Variable "durchflussmenge" zwischen 0 und 25 ist

Adresse für Füllstand an PCF senden & LED 1 an

then elseWenn die Variable "durchflussmenge" zwischen 25 und 50 ist

Adresse für Füllstand an PCF senden & LED 1-2 an

then elseWenn die Variable "durchflussmenge" zwischen 50 und 80 ist

Adresse für Füllstand an PCF senden & LED 1-3 an

then elseWenn die Variable "durchflussmenge" zwischen 80 und 110 ist

Adresse für Füllstand an PCF senden & LED 1-4 an

then elseWenn die Variable "durchflussmenge" zwischen 110 und 140 ist

Adresse für Füllstand an PCF senden & LED 1-5 an

then elseWenn die Variable "durchflussmenge" zwischen 140 und 170 ist

Adresse für Füllstand an PCF senden & LED 1-6 an

then elseWenn die Variable "durchflussmenge" gösser 170 ist

Adresse für Füllstand an PCF senden & Alle-LED´s an

Solange der Wassermengensensor 0V liefert

warten bis der Wassermengensensor wieder positive Flanke erzeugt

Pumpe ausschaltenDurchlauferhitzer ausschalten

Variable "abtropfen" mit 0 initialisieren (Verzögerungszeit nach Zubereitung)

Solange Variable "abtropfen" < 40000 istVariable "abtropfen" inkrementieren

Aufruf der Funktion "Brueheinheit_Grundstellung" / Brüheinheit soll in GrundstellungAdresse für Füllstand an PCF senden & Alle LED´s aus

Kaffeemaschine Dokumentation

Frank Lattner Seite: 39 / 52 Datum: März 2005

Funktion: anainit2 Hier wird Pin 6.0 des Mikrocontrollers für die Analog - Digital Wandlung initialisiert. Bei der Initialisierung wird Pin 6.0 auf kontinuierliche Wandlung eingestellt. Danach kann die Wandlung starten. Die Funktion anainit2 wird aus der Funktion Dampf aufgerufen. Funktion anainit2() / Initialisierung der Analog-Digital Wandlung

Kanal 6.0 auswählen / kontinuierlich wandelnWandlung starten

Funktion: Dampf Bei Betätigen der Dampftaste wird in die Funktion Dampf gesprungen. Dort heizt der Durchlauferhitzer auf, bis er die Dampftemperatur erreicht hat. Danach kann durch betätigen des Drehschalters der produzierte Dampf ausgegeben werden. Durch das erneute betätigen der Dampftaste kommt man nach einer Abkühlphase des Durchlauferhitzers wieder ins Hauptprogramm. Das Abkühlen des Durchlauferhitzers kann beschleunigt werden, in dem man den Drehschalter betätigt und somit kaltes Wasser nachfördert. Achtung: Durch das Aufheizen des Durchlauferhitzers wird die Wassermenge im Durchlauferhitzer dampfförmig. Nach dem Ausströmen des Dampfes ist im dem Wasserkreislauf kein Wasser mehr vorhanden. Durch das drehen des Drehschalters fließt wieder Wasser in das Kreislaufsystem und es wird entlüftet. Funktion_Dampf / Aktiv, wenn Taste "Dampf" betätigt wurde

Deklaration der Variable "schreiben" für Display beschreiben (nur 1x)Aufruf der Funktion "anainit2" / Initialisierung der Analog-Digital Wandlung

Solange der Sollwert für Dampf noch nicht erreicht ist

Aufruf der Funktion "anainit2" / Initialisierung der Analog-Digital Wandlung Durchlauferhitzer an

then elseAbfragen, ob das Display schon beschrieben wurde --> Variable "schreiben" == 1?

Variable "schreiben" für Display beschreiben setzenAufruf der Funktion "init_display" / Display neu initialisierenAusgabe auf Display: "Dampf aufheizen"

Durchlauferhitzer ausAufruf der Funktion "init_display" / Display neu initialisierenAusgabe auf Display: "Dampftemperatur"Cursor auf Zeile 1, Spalte 0Ausgabe auf Display: "erreicht"Variable "schreiben" für Display beschreiben rücksetzen

Solange die Taste "Dampf" nicht erneut betätigt wird

then elseWenn Drehschalter betätigt ist

Durchlauferhitzer an Durchlauferhitzer aus

Solange der Temperatursollwert für Kaffee überschritten ist

Durchlauferhitzer ausAufruf der Funktion "anainit2" / Initialisierung der Analog-Digital Wandlung

then elseAbfragen, ob das Display schon beschrieben wurde --> Variable "schreiben" == 1

Variable "schreiben" für Display beschreiben setzenAufruf der Funktion "init_display" / Display neu initialisierenAusgabe auf Display: "Abkuehlen aktiv"

then elseWenn Drehschalter betätigt ist (wird für ein beschleunigtes abkühlen benutzt)

Pumpe an Pumpe aus

Kaffeemaschine Dokumentation

Frank Lattner Seite: 40 / 52 Datum: März 2005

Funktion: Wasser Bei Betätigen des Drehschalters (nach links) wird in die Funktion Wasser gesprungen. Solange der Drehschalter dann betätigt ist, werden der Durchlauferhitzer und die Pumpe eingeschaltet. Im Display erscheint der Text „Wasser gewählt“. Wird der Drehschalter wieder zurück gedreht (nach rechts), werden der Durchlauferhitzer und die Pumpe ausgeschaltet, und das Programm geht zurück in Hauptprogramm. Funktion Wasser / Aktiv, wenn Drehschalter betätigt wurde

Deklaration der Variable "schreiben" für Display beschreiben (nur 1x)

Solange der Drehschalter an ist

Durchlauferhitzer anPumpe an

then elseVariable "schreiben" für Display beschreiben abfragen

Variable "schreiben" für Display beschreiben setzenAufruf der Funktion "init_display" / Display neu initialisierenAusgabe auf Display: "Wasser gewählt"

Durchlauferhitzer ausPumpe aus

LcdtreiberPCF.a51 Diese Datei wurde mir von Herrn Sperling zur Verfügung gestellt. Sie ist eine Assemblerdatei, die C-kompatibel ist, also aus einem C-Programm aufgerufen werden kann. Ich habe die Datei auf die nötigsten Funktionen gekürzt um nicht unnötig Programmspeicher zu belegen. Die Funktion „init_display()“ initialisiert das LCD Display, damit es beschrieben werden kann. Mit der Funktion „_moveto()“ kann der Cursor auf eine bestimmte Spalte und Zeile bewegt werden. Die Funktion „cursor_off()“ dient zum ausschalten des Cursors. In der Funktion „_printchar()“ wird die Ausgabe eines Characters an der aktuellen Cursorposition zur Verfügung gestellt. Somit sind in dieser Datei alle wichtigen Funktionen enthalten um ein LCD-Display über I2C anzusteuern. PCF8574Treiber.a51 Auch diese Datei wurde mir von Herrn Sperling zur Verfügung gestellt. Sie ist eine Assemblerdatei, die C-kompatibel ist, also aus einem C-Programm aufgerufen werden kann. Ich habe die Datei auf die nötigsten Funktionen gekürzt um nicht unnötig Programmspeicher zu belegen. Die Funktion „_wr8574“ gibt einen character-Wert auf dem Port des PCF8574 aus Als Übergaberegister dient R7 für den Ausgabewert und R5 für die Bausteinadresse. Somit sind in dieser Datei alle wichtigen Funktionen enthalten um die Füllstandanzeige über I2C anzusteuern.

Kaffeemaschine Dokumentation

Frank Lattner Seite: 41 / 52 Datum: März 2005

7.2 Displaymeldungen auf einen Blick Melddungen Funktion Art der Meldung Kaffeemaschine Betriebsbereit

Kaffeemaschine.c Meldetext

Kaffeemaschine Betriebsbereit

Kontrolle.c Meldetext

Bitte Wasser auffuellen

Kontrolle.c Störungstext

Tresterbehaelter fehlt

Kontrolle.c Störungstext

Bruehgruppe fehlt

Kontrolle.c Störungstext

Aufheizen... Heizen.c Meldetext Kaffeemaschine Betriebsbereit

Heizen.c Meldetext

Pulver einfuellen

Funktion_Pulver.c Meldetext

Wasser gewaehlt Funktion_Wasser.c Meldetext Dampf aufheizen Funktion_Dampf.c Meldetext Dampftemperatur erreicht

Funktion_Dampf.c Meldetext

Abkuehlen aktiv Funktion_Dampf.c Meldetext grosse Tasse wird zubereitet

Funktion_Kaffee_gross.c Meldetext

mittlere Tasse wird zubereitet

Funktion_Kaffee_mittel.c Meldetext

kleine Tasse wird zubereitet

Funktion_Kaffee_klein.c Meldetext

grosse Tasse wird zubereitet

Funktion_Pulverkaffee_gross.c Meldetext

mittlere Tasse wird zubereitet

Funktion_Pulverkaffee_mittel.c Meldetext

kleine Tasse wird zubereitet

Funktion_Pulverkaffee_klein.c Meldetext

Bitte Bohnen nachfuellen

Mahlen_Magnetschalter.c Meldetext

Kaffee wird gemahlen

Mahlen_Magnetschalter.c Meldetext

Bitte Tasse entnehmen

Brueheinheit_Grundstellung.c Meldetext

Kaffeemaschine Dokumentation

Frank Lattner Seite: 42 / 52 Datum: März 2005

7.3 Struktur des gesamten Programms Das Programm besteht aus C- und Assembler-Quellcode. Das Hauptprogramm „Kaffeemaschine.c“ dient zum aufrufen und ausführen der verschiedenen Unterprogramme. Ich habe die einzelnen Funktionen in gewisse Bereiche aufgeteilt, damit man eine leichtere Übersicht hat. Entwickelt wurde das Programm mit der Software “Keil µVision2“ und getestet mit den von mir erstellten Platinen, und der 80C535 Platine, welche ich von Herrn Sperling bekommen habe.

Kaffeemaschine Dokumentation

Frank Lattner Seite: 43 / 52 Datum: März 2005

8.1 Ablaufplan der Kaffeemaschinensteuerung

Durchlauferhitzer und Pumpe aus

Wenn Zeitlimit überschritten

wurde

Mahlwerk an, bis Kaffeepulvermenge

innerhalb des Zeitlimits erreicht

wurde

Hauptprogramm

Pulver Dampf Wasser

Wenn Pulvertaste

erneut betätigt wird

zurück ins Hauptprogramm

Kontrollfunktion: (Tresterbehälter-, Brüheinheit- und Wasser vorhanden)

Auswahl: (grosse-, mittlere- oder kleine Tasse / Wasser / Pulver / Dampf)

grosse, mittlere oder kleine Tasse

Brüheinheit in Brühstellung

Wenn Drehschalter betätigt, Durchlauferhitzer und Pumpe an

Brüheinheit in Grundstellung

Magnetschalter 3x betätigenDurchlauferhitzer

und Pumpe an, bis Durchflussmenge

erreicht wurde

Port 5 ausschalten und Referenzfahrt der Brüheinheit

Durchlauferhitzer und Pumpe aus

Brüheinheit in Grundstellung

Durchlauferhitzer auf Dampftemperatur erhöhen

Wenn Drehschalter betätigt wird,

Durchlauferhitzer an

Wenn Dampftaste erneut betätigt wird

Durchlauferhitzer abkühlen

grosse, mittlere oder kleine Tasse

Brüheinheit in Brühstellung

Durchlauferhitzer und Pumpe an, bis Durchflussmenge erreicht wurde

8.2 Beschreibung des Maschinenablaufs Alle Programmschritte werden mit Meldetexten im Display begleitet, so dass die Bedienung der Kaffeemaschine erleichtert wird. Nach dem Einschalten der Kaffeemaschine startet das Programm. Zuerst wird Port 5 ausgeschaltet und die Brüheinheit wird nach einer Referenzfahrt in Grundstellung gebracht. Danach wird die Kontrollfunktion aufgerufen. Hier wird kontrolliert, ob der Tresterbehälter vorhanden ist, ob die Brüheinheit vorhanden ist und ob genügend Wasser im Wassertank ist. Tritt eine Störung bei den Kontrollen auf, beginnt die Störungs-LED zu blinken und der zur Störung dazugehörige Text wird im Display angezeigt. Die Maschine kann bei einer anliegenden Störung nicht betrieben werden. Ist die Kontrollfunktion abgearbeitet, wird die Funktion Heizen aufgerufen, die die Temperaturregelung des Durchlauferhitzers übernimmt. Beim ersten Aufruf der Funktion Heizen, wird solange in dieser Funktion gewartet, bis der Durchlauferhitzer zum ersten Mal den Mindesttemperaturwert erreicht hat. Danach ist die Maschine betriebsbereit. Nun kann gewählt werden, ob ein Kaffee (groß, mittel oder klein) zubereitet werden soll, ob Kaffee (groß, mittel oder klein) mit Pulver zubereitet werden soll, ob heißes Wasser zubereitet werden soll oder ob Dampf zubereitet werden soll.

Kaffeemaschine Dokumentation

Frank Lattner Seite: 44 / 52 Datum: März 2005

Fällt die Wahl auf Kaffee (groß, mittel oder klein), so ist der Ablauf immer derselbe. Die einzige Änderung liegt in der unterschiedlichen Durchflussmenge des Wassers. Wird nun also ein Kaffee gewählt, werden die Kaffeebohnen gemahlen. Falls keine Kaffeebohnen mehr im Behälter sind, schaltet das Mahlwerk nach einer gewissen Zeit ab und im Display erscheint ein Meldetext. Sind dann Kaffeebohnen nachgefüllt worden, muss eine der drei Tasten für Kaffeezubereitung betätigt werden (die ursprünglich gewählte Durchflussmenge wird dadurch nicht beeinflusst). Danach schaltet das Mahlwerk wieder ein, bis die Kaffeepulvermenge erreicht ist. Nach Erreichen der Kaffeepulvermenge wird der Magnetschalter dreimal betätigt, um das Kaffeepulver in die Brüheinheit zu kippen. Dann wird die Brüheinheit in Brühstellung gebracht und der Durchlauferhitzer und die Pumpe eingeschaltet. Die Durchflussmenge kann über die Füllstandsanzeige beobachtet werden. Sind alle Füllstands - LED´s an, ist die Kaffeezubereitung beendet. Der Durchlauferhitzer und die Pumpe werden ausgeschaltet und die Brüheinheit fährt wieder in Grundstellung. zurück ins Hauptprogramm Fällt die Wahl auf Pulverkaffee (groß, mittel oder klein), so ist auch hier der Ablauf immer derselbe. Die einzige Änderung liegt wieder in der unterschiedlichen Durchflussmenge des Wassers. Bei Betätigen der Taste „Pulver“, wird in die Funktion Pulver gesprungen. Dort wird man aufgefordert, Kaffeepulver in den Pulverschacht einzufüllen. Nun gibt es auch hier die Möglichkeiten, eine große, mittlere oder kleine Tasse Kaffee zu zubereiten. Als vierte Möglichkeit kann man ein zweites Mal die Pulvertaste betätigen, sodass wieder zurück ins Hauptprogramm gesprungen wird. Achtung: Zu beachten ist hier allerdings, dass man die Pulvertaste nur zum zweiten Mal betätigen sollte, wenn noch kein Pulver in den Pulverschacht eingefüllt wurde. Wenn im nächsten Schritt ein Kaffee gewählt wird bei dem das Mahlwerk einsetzt, ist die Kaffeepulvermenge zu groß und die Brüheinheit könnte blockieren. Wird nun ein Kaffee (groß, mittel oder klein) gewählt, so springt das Programm in die zugehörige Funktion. Danach wird die Brüheinheit in Brühstellung gebracht und der Durchlauferhitzer und die Pumpe eingeschaltet. Die Durchflussmenge kann über die Füllstandsanzeige beobachtet werden. Sind alle Füllstands - LED´s an, ist die Kaffeezubereitung beendet. Der Durchlauferhitzer und die Pumpe werden ausgeschaltet und die Brüheinheit fährt wieder in Grundstellung.

zurück ins Hauptprogramm Fällt die Wahl auf Dampf, wird in die Dampf Funktion gesprungen. Dort heizt der Durchlauferhitzer auf, bis er die Dampftemperatur erreicht hat. Jetzt kann durch betätigen des Drehschalters der produzierte Dampf ausgegeben werden. Durch das erneute betätigen der Dampftaste kommt man nach einer Abkühlphase des Durchlauferhitzers wieder ins Hauptprogramm. Das Abkühlen des Durchlauferhitzers kann beschleunigt werden, in dem man den Drehschalter betätigt und somit kaltes Wasser nachfördert. zurück ins Hauptprogramm

Kaffeemaschine Dokumentation

Frank Lattner Seite: 45 / 52 Datum: März 2005

Fällt die Wahl auf Wasser, wird bei betätigen des Drehschalters (nach links) wird in die Funktion Wasser gesprungen. Solange der Drehschalter dann betätigt ist, werden der Durchlauferhitzer und die Pumpe eingeschaltet. Im Display erscheint der Text „Wasser gewählt“. Wird der Drehschalter wieder zurück gedreht (nach rechts), werden der Durchlauferhitzer und die Pumpe ausgeschaltet, und das Programm geht zurück in Hauptprogramm. zurück ins Hauptprogramm 8.3 sonstige Bedienungshinweise Die Bilder und Informationen der folgenden Bedienungs- und Reinigungshinweise sind aus dem Internet: http://www.saeco.de Das Einstellen des Mahlgrades

Das Einstellen der zu mahlenden Kaffeemenge

Hinweis zum Einfüllen des Pulverkaffees Das Pulver darf nur mit dem mitgelieferten Messlöffel eingefüllt werden.

Kaffeemaschine Dokumentation

Frank Lattner Seite: 46 / 52 Datum: März 2005

Hinweis zur Heißwasserentnahme

Hinweise zur Entkalkung Die Kaffeemaschine sollte mindestens alle 3 Monate entkalkt werden.

Diesen Vorgang alle 10 Minuten wiederholen bis der Tank fast leer ist. Danach muss der Tank und die Maschine mit frischem Wasser gespült werden.

Entkalkung beendet.

Kaffeemaschine Dokumentation

Frank Lattner Seite: 47 / 52 Datum: März 2005

Hinweise zur Reinigung der Behälter Die Abtropfschale und der Kaffeesatzbehälter sollten ca. alle 30 Tassen gereinigt werden.

Hinweise zur Reinigung der Brüheinheit Die Brüheinheit sollte immer beim Entkalken gereinigt werden, also mindestens alle 3 Monate.

Kaffeemaschine Dokumentation

Frank Lattner Seite: 48 / 52 Datum: März 2005

9.1 Zeitplan

Zeitplan

Juli

04

Aug

ust 0

4

Sep

tem

ber 0

4

Okt

ober

04

Nov

embe

r 04

Dez

embe

r 04

Janu

ar 0

5

Febr

uar 0

5

Mär

z 05

Informationssammlung Erstellung des Pflichtenhefts Änderung des Pflichtenhefts Aufbauen der ersten Testschaltungen Testen der einzelnen Komponenten Layoutentwicklung des Bedienfeldes Testen des Bedienfeldes Layoutentwicklung der Hauptplatine Schreiben des Programms Testen der Hauptplatine Erstellen des Gehäuses Testen und optimieren des Programms Schreiben der Dokumentation Die meiste Zeit habe ich in die Entwicklung der Elektronik (Ansteuerung der einzelnen Komponenten), in das Erstellen der Software und in das Schreiben der Dokumentation investiert. Durch das Ausprobieren, Ändern und Testen der Schaltungen auf der Lochrasterplatine, konnte ich mir allerdings viel Zeit ersparen für die Entwicklung der Layouts. Auch bei der Erstellung der Software konnte ich viele Testprogramme die ich zuvor erstellt hatte, in leicht veränderter Form verwenden. Trotzdem sprengte ich ohne Probleme den Zeitrahmen von 160 Stunden. Die gesamte geschätzte Arbeitszeit ohne den Bau des Gehäuses beträgt ca. 400 Stunden.

Kaffeemaschine Dokumentation

Frank Lattner Seite: 49 / 52 Datum: März 2005

9.2 Informationsquellen Informationen über das Motortreiber IC L298 Nachbar: Helmut Käfer (Radio und Fernsehtechniker) und http://www.strippenstrolch.de/elektronikbasteln/L298/L298-gleichstrom.html Informationen über Triacschaltungen Nachbar: Helmut Käfer (Radio und Fernsehtechniker) und http://www.elektronik-kompendium.de/ Informationen über Bauteile allgemein (Datenblätter) http://reichelt.de/ http://www.conrad.de http://www.pollin.de http://www.elektronik-kompendium.de/ Informationen über Bedienungs- und Reinigungshinweise für Kaffeemaschinen http://www.saeco.de Sonstige Informationsquellen Das Müller/Walz Buch Der Keil C51-Compiler /M. Baldischweiler Schulunterlagen der Technikerschule Verwendete Datenblätter 80c515ds.pdf Mikrocontroller 153400-da-01-en-bt_138.pdf Triac 153627-da-01-en-Temperatur-Sensor_KTY10-6.pdf Temperatursensor 155020-da-01-en-bc548b.pdf Transistor 185647-da-01-en-k_3020_p_mcp_3020.pdf Optokoppler æA741_STM.pdf Operationsverstärker æA7905_æA7908_æA7912_æA7915.pdf Festspannungsregler HallSwitch_hal5xx_1ds.pdf Durchflussmengenmesser L298_STM.pdf Motortreiber IC PCF8574_PHI.pdf PCF8574P IC uA7805$_uA7806_uA7808_uA7809pdf Festspannungsregler BT_21605.pdf LCD Display LED5MM2MAGE_LED5MM2MAGN.pdf LED´s

Kaffeemaschine Dokumentation

Frank Lattner Seite: 50 / 52 Datum: März 2005

9.3 Eidesstattliche Erklärung Hiermit versichere ich, Frank Lattner, dass die Technikerarbeit „Kaffeemaschine“ von mir selbstständig und ohne unerlaubte Hilfe geplant, entwickelt und gefertigt worden ist. Alle Quellen sind in der Dokumentation unter Punkt 9.2 sowie an den entsprechenden Stellen der Dokumentation genannt. Eigeltingen, den………..………. Unterschrift………….…………….. (Frank Lattner) 9.4 Stand der Technikerarbeit und mögliche Erweiterungen Im März 2005 ist das Projekt „Kaffeemaschine“ nach 9 Monaten beendet worden. Die Kaffeemaschine ist vollkommen funktionstüchtig und ist gemäß dem Pflichtenheft ohne Abweichungen erstellt worden.

sie kann drei verschiedene Tassenmengen Kaffee produzieren es kann gewählt werden, ob der Kaffee gemahlen werden soll oder ob man

Kaffeepulver einfüllt es kann Heißwasser angefordert werden über den Drehregler die Durchflussmenge wird über eine LED-Füllstandsanzeige angezeigt bei Störungen blinkt eine Störungs-LED und im Display wird der Störungstext

angezeigt sämtliche Bedienungsschritte werden am Display mit Meldetexten angezeigt auch die optionale Erweiterung „Dampferzeugung“ ist funktionstüchtig

Mögliche Erweiterungen wären zum Beispiel ein Programmiermodus. Hier könnte man die Durchflussmenge speichern, indem man die Taste große Tasse, mittlere Tasse oder kleine Tasse gedrückt hält. Des Weiteren würde sich eine Standbyfunktion für dieses Projekt anbieten. Man könnte während dieser Zeit z.B. die Uhrzeit auf dem Display anzeigen. Durch Anbringen eines zweiten Durchlauferhitzers könnte man dauernd Dampf erzeugen. Somit würden die Aufheiz- und Abkühlzeiten wegfallen. Diesem Projekt sind eigentlich kaum Grenzen gesetzt, so dass bestimmt etwas für eine Technikerarbeit in einem nachfolgenden Jahrgang dabei wäre.

Kaffeemaschine Dokumentation

Frank Lattner Seite: 51 / 52 Datum: März 2005

9.5 Fazit über das Projekt Kaffeemaschine Nach über 9 Monaten Technikerarbeit steht nun nur noch die Präsentation bevor. In der Zeit der Projekterstellung habe ich in analogen wie auch in digitalen Bereichen große Fortschritte gemacht. Sogar das Programmieren fing an mir Spaß zu machen. Da ich bis vor einem Jahr noch ziemliche C - und Assembler - Programmierprobleme hatte, freut es mich umso mehr eine funktionstüchtige Kaffeemaschine erstellt zu haben. Das Projekt war mir im Nachhinein eigentlich etwas zu groß, jedoch braucht man den Nervenkitzel wohl ab und zu. Es kann ja auch sehr spannend, wenn man nicht weiß, ob die Zeit ausreicht oder ob man die Fähigkeiten zu so einem Projekt hat. Diese Erfahrung war für mich sehr wichtig, da ich nun weiß zu was ich fähig bin, besonders unter Zeitdruck zu bewältigen. Von den Sommerferien 2004 bis zu den Weihnachtsferien 2004 kam ich nur schleppend voran. Überall tauchten Schwierigkeiten auf. Egal was ich auch angefangen hatte, es klemmte immer wieder an irgendwelchen Kleinigkeiten, die ich vor mir her schob. In den Weihnachtsferien merkte ich dann, dass jetzt allerhöchste Zeit war. Noch drei Monate Zeit, und keine funktionierende Kaffeemaschine in Sicht. In den Ferien kam ich dann soweit, dass alles einzeln angesteuert werden konnte. Die restlichen drei Monate verbrachte ich dann damit, die Hardware parallel mit der Software fertig zu entwickeln und zu testen. Da die Zeit jetzt ziemlich knapp war, baute ich dann so manche Nachtschicht ein. Es war schon erstaunlich, was man alles bewältigt bringt, wenn alles ruhig ist und man sich nur auf die Technikerarbeit konzentriert. Je näher der Abgabetermin kam, desto weniger Schlaf brauchte ich. Zum Schluss ging es dann auch fast ohne Schlaf. Die Technikerarbeit hat mir aber auch sehr viel Spaß gemacht, da ich nicht nur etwas für das Projekt, sondern auch für die Schule und somit für mich gelernt habe. Einige Kenntnisse musste ich mir selbst aneignen, was für die Zukunft aber auch kein Fehler war. Außerdem war es lehrreich für künftige Projekte und Arbeiten, welche man mit dieser Erfahrung vielleicht anders einschätzt.

Kaffeemaschine Dokumentation

Frank Lattner Seite: 52 / 52 Datum: März 2005

9.6 Glossar LED Leuchtdiode PCF8574 I2C Baustein 8I/O I2C Bussystem 80C535 Mikrocontroller Lab 537 Experimentierboard LCD – Display Flüssigkristallanzeige Danksagung An dieser Stelle möchte ich mich bei allen bedanken, die mich bei der Realisierung dieses Projekts in irgendeiner Weise unterstützt haben. Besonders bedanken möchte ich mich bei meinem Kollegen Manfred Martin, der mir das Gehäuse erstellt hat. Herrn Sperling und Herrn Groß für die technischen Beratungen, die Mikrocontrollerplatine 80C535 und sonstige Unterstützungen. Herrn Karrer für die Materialversorgung Herrn Käfer (Nachbar) für wertvolle Tipps CD Komponenten Sämtliche Programme, Datenblätter, Bilder, Blockschaltbilder und P – Spice – Tests sind auf der CD „Das große 1x1 des Kaffeekochens“ enthalten. Mit auf der CD ist ein Musikordner mit italienischen Klassikern, den man sich nach Wahl beim Kaffee trinken zum Entspannen anhören kann. Diese CD ist nicht im Handel erhältlich. Mit freundlichen Grüssen Ihr Kaffee Latte