Programmierung eines Kaffeeautomaten


In den vergangenen Folgen haben wir uns um die absoluten Grundlagen der Programmiersprache „C“ gekümmert und uns an das Arbeiten mit Compiler, Linker und Emulator gewöhnt.

Programmieren lernt man aber nur durch Programmieren.

Es ist also höchste Zeit für ein kleines Projekt, um das bisher Erlernte zu üben, die Themen zu vertiefen und auch neue Dinge an einem konkreten Beispiel kennenzulernen.

Die Anwendung der Programmierung an einem konkreten Projekt macht zudem mehr Spaß.

Ich habe mir das so vorgestellt.

Als Beispielprojekt würde ich gern die Zähleinrichtung eines Kaffeeautomaten programmieren.

Der Kaffeeautomat

Der Kaffeeautomat besteht aus einem Münzeinwurf, in dem Euro- und Cent-Münzen eingeworfen werden können. Das eingeworfene Geld wird von einer Hardware erkannt und je nach dem welcher Münzwert erkannt wird ein Port-Bit gesetzt.

Wir verwenden den Port 1 und nutzen folgende Zuordnung.

Portbelegung

 

 

 

Wird also ein 2 Ct-Stück eingeworfen, wird das Bit Nr. 1 (von rechts mit 0 beginnend) auf „1“ gesetzt. Der Einwurf eines 2 Euro-Stücks setzt das höchstwertige Bit, also Bit Nr. 7.

Das Geld muss gezählt werden

Unsere Programm für die Zähleinrichtung soll das eingeworfene Geld zählen.
Dies kann man machen, indem man den aktuellen Betrag in einer Variablen speichert und bei Einwurf eines weiteren Geldstücks den Betrag entsprechend erhöht.

Das Geld wird also eingeworfen. Nachdem die ENTER-Taste betätigt worden ist, soll das Geld dem Guthaben gutgeschrieben werden. Hinweis: Bitte vor dem Druck auf die ENTER-Taste in das Fenster für die serielle Schnittstelle wechseln, damit der Simulator die Eingabe interpretieren kann.

Das aktuelle Guthaben soll ausgegeben werden.

Jetzt bist Du an der Reihe

Jetzt geht es für Dich darum, die Zähleinrichtung zu programmieren. Eine mögliche Lösung werde ich in der nächsten Folge vorstellen, bevor es dann weiter um die Getränkeausgabe geht.

Dieser Artikel ist Teil des Mikrocontroller-Kurses auf ET-Tutorials.de.
[ >> Hier geht es zurück zur Übersichtsseite des Mikrocontroller-Kurses .]