Mit einem einfachen Getränkeautomat hatten wir schon zu tun. Auch die Aufgabe dieser Schaltung gestaltet sich
einfach und kann schnell definiert werden. Mit einem Knopfdruck soll ein Trinkbecher, Weinglas oder Ähnliches mit einem Getränk
gefüllt werden. Die Schaltung benötigt eine Methode, um die Menge der Flüssigkeit festlegen zu können. In diesem Fall wird das
Problem mit einem Potentiometer gelöst. Je nach Größe des Trinkbechers und Getränkeart kann die Dauer der Ausgabe beliebig eingestellt
werden. Damit es bei falscher Bedienung nicht zu unnötigem Überlauf kommen kann, soll das Vorhandensein des Trinkbechers mit einem
Sensor überwacht werden. Die Rolle übernimmt ein Lasersensor. Es kann an dieser Stelle natürlich auch ein anderer Sensor verwendet
werden. Mit dem Sensor kann auch ein zufälliges und ungewolltes Betätigen der Starttaste unterbunden werden. Das Getränk soll nicht
ins Leere laufen.
Die Schaltung soll mit dem Mikrocontroller HT46F47E erstellt werden. Für den Ablauf der Getränkeausgabe wird demnach ein
Programm zuständig. Grundsätzlich hat das Programm mit nur zwei Eingängen (Lasersensor und Start-Taster) und einem Ausgang
(Ausgabe-Ventil) zu tun. Die Aufgabe ist also ziemlich überschaubar. Damit die Schaltung etwa Farbe bekommt, sollen vier bunte
Leuchtdioden den aktuellen Status der Getränkeausgabe visualisieren.
Versuchsanordnung
Der Mikrocontroller HT46F47E
Der Mikrocontroller HT46F47E (TPS Firmware) wird mit der Aufgabe keine Probleme haben. Es gilt lediglich zwei Eingänge und
einen Ausgang zu bedienen. Zwar werden alle vier Ausgänge verwendet, doch hier kommen lediglich Leuchtdioden, die den aktuellen
Status anzeigen, zum Einsatz. Die Leuchtdioden sollen etwas Farbe ins Spiel bringen und bei dem Publikum für mehr Aufmerksamkeit
sorgen.
Das kleine Magnetventil besteht aus Kunststoff und Metall. Im ausgeschalteten Zustand ist das Ventil geschlossen.
Die nominale Spannung beträgt 12 VDC. Die Anschlüsse sind für 6 mm breite Flachsteckhülsen geeignet. Das Ventil eignet sich für
Experimente mit Gas, Luft und Wasser.
Spannung: 12 VDC
Spule Widerstand: 40 Ohm
Stromaufnahme: 300 mA
Arbeitsdruck: 0 ~ 0.3 Mpa
Temperaturbereich: 0 – 80°C
Einlass: Außendurchmesser 6 mm, Innendurchmesser 2,2 mm
Auslass: Außendurchmesser 6 mm, Innendurchmesser 2 mm
Abmessungen
Lasersensor
Lasersensor.
Die Aufgabe des Lasersensors ist es zu erkennen, ob ein Glas oder Trinkbecher vorhanden ist. Er signalisiert das mit einem
digitalen Signal. Bei Erkennen eines Gegenstandes führt der Sensor ein LOW-Signal. Mit dem einem Spiegel wird der Laserstrahl abgelenkt.
Auf diese Weise kann der Erfassungsbereich des Lasersensors eingegrenzt werden.
Spannungsregler L78L05.
Für die Schaltung werden zwei Spannungen benötigt. Das Magnetventil arbeitet mit 12 V. Die restlichen Komponenten benötigen
5V. Diese Spannung wird mit dem Spannungsregler L78L05 erzeugt. Bei Anwendung eines 5V - Magnetventils wäre dieser Baustein
überflüssig und die Schaltung entsprechend einfacher.
Der Transistor BD241C ist ein NPN-Bipolartransistor mit hoher Verstärkung von STMicroelectronics. Er kann im
Audiobereich aber auch als Allzweck Transistor angewendet werden. Der entsprechende PNP-Typ ist der BD242C.
Typ: NPN
Bauform: TO-220
Kollektorstrom: Ic = 3A
Kollektor-Emitterspannung: Uco = 100V
Leistung max: Ptot = 40W
DC Stromverstärkung hFE: 25
Maximale Betriebstemperatur: + 150 C
Rückseite
Pinbelegung (B-Basis, C-Kollektor, E-Emitter)
Der Schaltplan
Schaltplan
Die Testschaltung
Testschaltung auf Steckbrett
Das Programm
Listing mit Kommentaren
-- Bereit --
000 (00h) 11 Grüne LED Ein, Automat bereit
001 (01h) C9 Trinkbecher vorhanden? Wenn ja, springe auf 003.
002 (02h) 90 Kein Trinkbecher. Springe zurück auf 000.
-- Trinkbecher --
003 (03h) 12 Blaue LED Ein, Automat kann gestartet werden.
004 (04h) C9 Trinkbecher immer noch da? Wenn ja, springe auf 06
005 (05h) 90 Kein Trinkbecher. Springe zurück auf 000.
-- Start --
006 (06h) C8 Taster S1 betätigt? Wenn ja, springe auf 008
007 (07h) 93 Sonst springe auf 003 und warte weiter.
-- Ausgabe --
008 (08h) 14 Ventil Ein, Ausgabe läuft
009 (09h) 4F Weise Akku den Wert 15 zu
010 (0Ah) 52 Weise der Variable C den Wert von A zu
011 (0Bh) AE Dekrementiere C. Solange nicht fertig springe auf die Adresse 014
012 (0Ch) 81 Dekrementieren abgeschlossen. Sprungbereich festlegen.
013 (0Dh) 92 Sprung weiter auf die Adresse 018
014 (0Eh) 28 Warte 500 ms (Frequenz abhängig)
015 (0Fh) C9 Trinkbecher immer noch da? Wenn ja springe auf 017
016 (10h) 90 Trinkbecher weg. Springe auf 000.
017 (11h) 9B Springe auf 011 und setze Dekrementieren fort.
-- Ausgabe beendet --
018 (12h) 18 Gelbe Leuchtdiode Ein
019 (13h) 81 Neuer Sprungbereich
020 (14h) C9 Trinkbecher immer noch da? Wenn ja springe auf 022
021 (15h) 97 Springe auf 023
022 (16h) 92 Springe auf 018
023 (17h) 80 Neuer Sprungbereich (0-15)
024 (18h) 90 Springe auf 000 und wiederhole alles.
11 C9 90 12 C9 90 C8 93 14 4F 52 AE 81 92 28 C9 90 9B 18 81 C9 97 92 80 90
Nach dem Programmstart wird die grüne Leuchtdiode (Ausgang A1 – PA4 – Pin 18) eingeschaltet und das Programm prüft
den zweiten Eingang (PA1 – Pin 3), ob in dem Ausgabebereich ein Trinkbecher vorhanden ist. Die grüne Leuchtdiode steht für
„Bereit“. Sie wird mit dem Befehl „11“ eingeschaltet. Alle anderen Ausgänge werden dabei ausgeschaltet. Das Vorhandensein des
Trinkbechers ist die Voraussetzung für weitere Funktionen der Schaltung. Diese Überprüfung findet während des gesamten Vorgangs
der Getränkeausgabe statt. Sobald das Programm erkennt, dass Trinkbecher entnommen wurde, spring es wieder in die erste Zeile.
Mit der blauen Leuchtdiode (Ausgang 2 – PA5 – Pin 17) wird signalisiert, dass ein Trinkbecher erkannt wurde. Jetzt (Zeile 006)
wartet das Programm, bis die Taste „Start“ betätigt wird. Dazu wird der erste Eingang des Mikrocontrollers (Eingang 1 – PA0 – Pin 4)
abgefragt.
Nachdem die Start-Taste betätigt wurde, spring das Programm auf die Adresse 008 und schaltet mit dem Befehl „14“ das Ventil ein.
Die Getränkeausgabe läuft. Gleichzeitig werden andere Ausgänge abgeschaltet, wodurch die blaue Leuchtdiode ausgeht. Parallel zu dem
Ventil ist die rote Leuchtdiode verschaltet und geht automatisch mit dem Ventil an.
Hier beginnt das schwierigste Teil des Programms. Nachdem der Variable C der Wert 15 zugewiesen wurde, beginnt das Dekrementieren
der Variable C. Hierfür springt das Programm auf die Adresse 011 und kehrt hier immer wieder zurück, bis der Wert der Variable C
genullt wurde. Zwischendurch macht das Programm in der Zeile 014 eine Verschnaufpause. Aus diesen Pausen und der Anzahl der Abläufe,
die nötig sind, um die Variable C auf null zu bringen, entsteht die gesamte Ausgabezeit. Diese Zeit kann mithilfe des Potentiometers
R4 eingestellt werden. Mit dem Potentiometer wird die Frequenz, mit der der Mikrocontroller arbeitet, bestimmt. Je höher die
Taktfrequenz, umso kürzer die Pausen. Auf diese Weise kann die Menge der Flüssigkeit nach Bedarf angepasst werden.
Das Programm, sobald das Dekrementieren abgeschlossen wurde, landet in der Zeile 018. Die gelbe Leuchtdiode, die für „Bitte
Getränk entnehmen“ steht, geht an. Sobald der Getränkebecher entnommen wurde, springt das Programm auf die Adresse 000 und der Ablauf
kann wiederholt werden.
Zu beachten ist, dass eine Unterbrechung der Ausgabe, wenn der Trinkbecher entnommen wird, unter Umständen zeitlich verzögert
erfolgt. Die maximale Verzögerungszeit ist gleich der einzelnen Pause, die im Programm in der Zeile 014 festgelegt
ist.