Kostenloser Elektrotechnik VIDEO-Kurs


Grundlagen der Elektrotechnik, Gleichstromnetze und Berechnungsverfahren
Wechselstrom- und Drehstromnetze, elektrische Maschinen und Regelungstechnik
Digitaltechnik, Mikrocontrollertechnik und C-Programmierung


Programmierung eines Kaffeeautomaten – Teil 2

Wie versprochen möchte ich diese Folge mit einer möglichen Lösung der Programmieraufgabe für die Zähleinrichtung beginnen.

Wie so häufig, gibt es viele Wege, die nach Rom führen.

Meine Lösung ist also nicht die einzige und sehr wahrscheinlich auch nicht die beste und schönste Lösung, die man sich vorstellen kann.



Meine Lösung sieht prinzipiell folgendermaßen aus.

In einer Integer-Variablen “Betrag” wird der bereits in den Kaffeeautomaten eingeworfene Geldbetrag gespeichert.

Mit jeder neuen Münze wird also die Variable Betrag entsprechend hochgezählt.

Um zu entscheiden, welchen Geldbetrag zur Variablen Betrag addiert werden soll, muss der Münzschacht über P1 ausgelesen werden.

Abhängig davon, welchen Bit in P1 gesetzt ist, also welche Münze eingeworfen wurde, wird der zugehörige Geldbetrag addiert.

Am Ende der switch-case Abfrage wird das Programm mit getchar() angehalten, damit eine neue Münze eingeworfen bzw. ein neues Bit in P1 gesetzt werden kann.

Und nun viel Spaß mit dem Video.

Here we are …



Für den Fall dass Du den Code einmal ausprobieren möchtest, aber nicht alles abtippen willst, kopiere ich das C-Programm einmal hierher:

P1=0;
printf(“Los gehts..”);

while(1){

switch (P1)
{
case 1:
printf(“Betrag: %d Cent”, Betrag+=1);
P1=0;
break;

case 2:
printf(“Betrag: %d Cent”, Betrag+=2);
P1=0;
break;

case 4:
printf(“Betrag: %d Cent”, Betrag+=5);
P1=0;
break;

case 8:
printf(“Betrag: %d Cent”, Betrag+=10);
P1=0;
break;

case 16:
printf(“Betrag: %d Cent”, Betrag+=20);
P1=0;
break;

case 32:
printf(“Betrag: %d Cent”, Betrag+=50);
P1=0;
break;

case 64:
printf(“Betrag: %d Cent”, Betrag+=100);
P1=0;
break;

case 128:
printf(“Betrag: %d Cent”, Betrag+=200);
P1=0;
break;

}
printf(“\n”);
getchar();  // damit das Programm hier wartet

Dies soll nur eine mögliche Lösung sein. Es gibt sicher noch elegantere Lösungen, die beispielsweise ohne das getchar() auskommen, damit dieses lästige Wechseln des Eingabefensters wegfällt.

So könnte man z.B. eine Warteschleife

while(P1==0);

einbauen und somit darauf warten, ob überhaupt eine Münze eingeworfen wurde.

Kaffeeausgabe

Im zweiten Teil der Aufgabe soll natürlich auch die Kaffeeausgabe überwacht werden.

Unser Kaffeeautomat bietet 3 Getränke

  • Kaffee 30 Ct
  • Espresso 40 Ct
  • Cappuchino 50 Ct

Die Wahl des Getränks soll über die Buchstaben “k” für Kaffee, “e” für Espresso und “c” für Cappuchino über die Tastatur erfolgen.

Bei Wahl des entsprechenden Getränks muss der Betrag natürlich wieder vom Guthaben abgezogen werden.

Ergänze also Dein Programm um diese Funktionalität.

Bis zum nächsten Mal!

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

Elektrotechnik muss nicht kompliziert sein.
Deshalb gibt es VIDEO-Tutorials.

Hat Dir der Artikel geholfen? - Dann hilf dem Artikel ;-)

Programmierung eines Kaffeeautomaten – Teil 2:
1 Star2 Stars3 Stars4 Stars5 Stars
4,00 von 5 Punkten, basieren auf 4 abgegebenen Stimmen.
Stimme jetzt ab ! (auf die Sternchen klicken)
Loading ... Loading ...


Fragen und Antworten zu diesem Artikel und zu anderen Themen findest Du im ET-Tutorials Forum

Ähnliche Artikel

Folgende Artikel aus der gleichen Kategorie könnten Dich ebenfalls interessieren:

Programmierung der Getränkeausgabe In der vergangenen Woche haben wir eine mögliche Lösung für eine Zähleinrichtung der Geldeingabe für...

Programmierung eines Kaffeeautomaten In den vergangenen Folgen haben wir uns um die absoluten Grundlagen der Programmiersprache „C“ gekü...

Bitweise Manipulation Der Kaffeeautomat funktioniert ja schon im Prinzip. Aber zumindest beim Geldeinwurf gibt es noch ein...

Geschachtelte for-Schleife Im letzten Artikel hast Du die Schleifen-Programmierung mit „for“ kennengelernt. Die Aufgabe für heu...

Kaffeeautomat-Funktion für die Münzauswertung Nach einem Ausflug in das Reich der Funktionen, geht es nun zurück zur Programmierung des Kaffeeauto...