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