Spion-Basic Programmbeispiele


Hier sollen einige praktische Anwendungen der Programmierung in Spion-Basic vorgestellt werden. Sie sollen als Anregungen für eigene Programme verstanden werden. Oft kann man von den vorgegebenen Beispielen ausgehen und mit geringen Anpassungen spezielle Aufgaben lösen. Die Beispiele stammen aus dem Buch "Messen, Steuern und Regeln mit dem PC in Haus und Garten".

Langzeittimer

Der Spion kann mit einem geeigneten Programm leicht als Timer eingesetzt werden. Das Programm Timer1.sbd generiert eine Wartezeit von 5 Minuten zum Beispiel für den Einsatz beim Eierkochen. Das Programm schaltet die LED auf Dauerleuchten, so dass man jederzeit einen Überblick hat, ob die Uhr noch läuft. Nach 5 Minuten wird ein dreifacher Signalton erzeugt und die LED abgeschaltet.

Der Pause-Befehl des Umweltspions verwendet ein Zeitintervall von 1/16 Sekunde. Mit Pause 16 erhält man daher eine Sekunde. Eine Wiederholschleife mit 60 Durchläufen erzeugt eine Wartezeit von einer Minute.


Ein 5-Minuten-Timer

Das Programm verwendet zwei Schleifen, die ineinander geschachtelt sind. Die innere Schleife mit der Zählvariablen C erzeugt eine Wartezeit von einer Minute, die D-Schleife wird fünf mal durchlaufen, um insgesamt fünf Minuten zu warten. Nach genau fünf Minuten schaltet sich die LED aus, und ein dreifacher Signalton ertönt. Dann geht der Spion in seinen Grundzustand, was man am Sekundenblinken der LED erkennt. Nach weiteren zwei Minuten schaltet sich das Gerät ganz ab. Es genügt ein Druck auf Reset, um den Zeitgeber erneut zu starten.

In dieser Form eignet sich die Anwendung z.B. als Zeitgeber für die korrekte Zeitspanne für das Zähneputzen der Kinder. Die Eltern haben eine akustische Kontrolle: Erst ertönt das dreifache Piepsen, dann hört das Putzen auf. Die übliche Ausrede "Das waren doch schon fünf Minuten" funktioniert nicht mehr. Man muss nur achtgeben, dass die Kinder den Spion nicht umprogrammieren.

Oft möchte man einen Vorgang automatsich schalten. Z.B. könnte man einen Akku genau zwei Sunden lang laden. Der Spion kann die Funktion der Schaltuhr übernehmen. Geschaltet wird der digitale Ausgang. Hier muss eine entsprechende Zusatzschaltung mit einem Leistungstransistor oder einem Relais angeschlossen sein.

Eine 2-Stunden-Schaltuhr

Grenzwertüberwachung

Ein Spion-Programm kann beliebige Messwerte mit vorgegebenen Grenzwerten vergleichen. Dazu existieren die bedingten Sprungbefehle "If A < B Goto " und "If A > B Goto". Man führt eine Messung durch und weist damit A den aktuellen Messwert zu. B erhält einen konstanten Wert. Mit den entsprechenden Fallabfragen verzweigt man dann zu Teilen des Programms, in denen entsprechende Aktionen erfolgen, also z.B. ein Signalton erzeugt wird oder ein Ausgang gesetzt wird.

Die Sprungbefehle verweisen oft auf Zeilen, die weiter unten im Programm stehen. Dann steht man vor dem Problem, dass das genaue Sprungziel noch nicht bekannt ist. Es empfiehlt sich, zuerst ein beliebiges Ziel "...GOTO 1" anzugeben und das Programm weiter zu schreiben. Erst am Ende werden die Sprungzeilen noch einmal geändert.

Grenzwertabfrage

Dieses Programm überwacht die Helligkeit. Wird ein Wert von 32 unterschritten, dann schaltet die LED auf Dauerleuchten. Über einem Helligkeitswert von 32 wird die LED ausgeschaltet. Natürlich können hier leicht andere Grenzwerte oder auch andere Sensoren eingefügt werden.

Das Programm Laerm.sbd zeigt einen Grenzwertmelder für Lärmpegel. Der erste Zugriff auf den Lärmsensor führt zu keinem brauchbaren Ergebnis, weil der Verstärker erst eingeschaltet wird. Deshalb verwendet das Programm zwei Messungen mit einer Wartezeit. Das zweite Messergebnis wird mit einem Grenzwert von 25 verglichen. Hier muss beachtet werden, dass die Anzeige im Menü Direkt für Lärmmessungen verdreifacht wird, weil vom Lärmsensor insgesamt nur Werte bis etwa 80 geliefert werden. Der Grenzwert von 25 entspricht daher einer Direktmessung von 75.

Grenzwertmelder für Lärmpegel

Das Programm meldet einen überschrittenen Grenzwert durch dreimaliges Blinken und drei Signaltöne. Nach der ersten Überschreitung ist die LED aus, solange keine weitere Lärmspitze mehr registriert wird. Man hat daher einen Hinweis, ob seit dem Start des Programms eine Überschreitung vorgekommen ist. Allerdings besteht hier die Gefahr, dass man irrtümlich meinen könnte, der Spion sei ausgeschaltet. Wenn er dann vergessen wird, ist irgendwann der Akku leer. Nach Möglichkeit sollten eigene Programme immer mit einer Zeitbegrenzung programmiert werden, nach der sich der Spion selbst ausschaltet.

Alarmanlage

Man kann leicht Programme mit mehreren Sensoren schreiben. Eine typische Aufgabe ist eine einfache Alarmanlage. Das genaue Programm richtet sich nach der jeweiligen Situation. Hier soll eine Schublade in einem Schreibtisch oder ein Tresor überwacht werden. Dabei spielen Licht und Geräusche eine Rolle.

Der Besitzer startet das Programm und legt es z.B. in die Schublade. In einer ersten Schleife wird die Helligkeit gemessen. Erst wenn es dunkel wird, wenn also die Schublade geschlossen ist, wird die Anlage aktiv. Dann wird laufend der Geräuschpegel gemessen. Wenn sich jemand am Schreibtisch zu schaffen macht, wird dies an einer Grenzwertüberschreitung erkannt. Interessant ist aber, ob die Schublade tatsächlich geöffnet wird. Dies wird in einer dritten Schleife wieder durch Lichtmessungen geklärt. Sobald ein festgelegter Helligkeitswert überschritten wird, schaltet sich der Spion aus. Der Unbefugte merkt also nicht einmal, dass sein Tun registriert wurde.

Eine Alarmanlage

Der Besitzer sollte die Schublade im Dunkeln öffnen. Wenn dann der Spion noch blinkt, kann er sicher sein, dass niemand sie in der Zwischenzeit geöffnet hat. Ist er aber ausgeschaltet, ist dies ein Beweis für einen neugierigen Besucher.

Lichtschranke

Mit dem Spion kann man eine sehr einfache Lichtschranke aufbauen. Man verwendet dabei das normale Umgebungslicht. Ein plötzlich auftretender Schatten soll einen Signalton und ein Ausgangssignal auslösen. Dagegen soll eine langsame Lichtänderung keinen Alarm auslösen. Das Programm soll in der Lage sein, sich selbst an wechselnde Lichtverhältnisse anzupassen. Notwendig ist dazu ein variabler Vergleichswert. Eine erste Messung erfasst die momentanen Lichtverhältnisse. Durch Subtraktionen wird daraus ein etwas kleinerer Vergleichswert gewonnen und B zugewiesen. Nach einer definierten Wartezeit wird die Helligkeit erneut gemessen. Wenn sie nun unter dem Vergleichswert liegt, wird der Alarm ausgelöst. Das Programm reagiert nur dann, wenn im Abstand von 1/16 s eine Verkleinerung von mehr als 20 auftritt. Dies entspricht dem typischen Fall eines Schattenwurfs auf das Gerät.

Die Empfindlichkeit und die erlaubte Geschwindigkeit der Lichtänderung kann experimentell angepasst werden. Dabei spielt es eine Rolle, ob Kunstlicht oder Sonnenlicht verwendet wird. Kunstlicht enthält oft schon ein gewisses Flackern, das einen Alarm auslöst, wenn die Vergleichsgrenze zu eng festgelegt wird. Mit natürlichem Licht dagegen kann man eine größere Empfindlichkeit einstellen, so dass auch schon dann ein Alarm ausgelöst wird, wenn das Gerät nicht direkt von einem Schatten getroffen wird.

Eine intelligente Lichtschranke

Das Programm eignet sich für den Diebstahlschutz und ähnliche Bereiche. Man kann z.B. seinen PC vor unbefugtem Gebrauch schützen. Sobald jemand dem Arbeitsplatz zu nahe kommt, gibt es einen Alarm.

Impulszähler

Zählen ist eine relativ stupide Tätigkeit, die man besser einem Gerät überlässt als einem Menschen. Das Programm nach Listing 2.10 soll exakt 10 Impulse abzählen und dann einen Signalton abgeben. Man könnte auf diese Weise z.B. eine Anzahl von Personen zählen. Als Eingabeelement kommt entweder ein manuell betätigter Kontakt am digitalen Eingang in Frage oder ein automatischer Trittkontakt.

Das Zählprogramm besteht aus zwei Schleifen für die zwei Zustände An und Aus des Eingangs. Jedem Zustand ist eine Schleife zugeordnet, die erst verlassen wird, wenn der Zustand sich ändert. Auf diese Weise werden jeweils vollständige Impulse erfasst. In jeder Schleife befindet sich außerdem ein Pause-Befehl zur Entprellung des Kontakts. Die maximale Frequenz wird damit auf 8 Impulse pro Sekunde begrenzt.

Eine äußere Schleife überwacht die Anzahl der erkannten Impulse. Nach genau zehn Impulsen erfolgt die Alarm-Ausgabe. In der vorliegenden Form kann man bis 255 zählen. Nimmt man eine weitere, geschachtelte Zählschleife mit der Variablen C hinzu, können bis zu ca. 65000 Impulse gezählt werden. Damit lassen sich z.B. automatische Wickelmaschinen überwachen. Mit geringen Änderungen könnte man programmieren, dass alle 100 Impulse ein Signalton ausgegeben wird und nach insgesamt 5000 Impulsen ein dreifacher Signalton und ein automatisches Schaltsignal. Ohne großen Aufwand kann so eine kleine Maschinensteuerung gebaut werden.

Zählen von Eingangsimpulsen am digitalen Eingang

Das Zählprogramm kann mit geringer Änderung für einen analogen Eingang ausgelegt werden. In den Zeilen 3 und 7 muss dazu der entsprechende Eingang angegeben werden. Die Zeilen 2 und 6 müssen passende Grenzwerte erhalten. Meist lässt man zwischen den Grenzwerten eine gewisse Lücke (Hysterese), um ein sicheres und eindeutiges Schaltverhalten zu erzeugen. Das Programm verhält sich dann wie sein elektronisches Vorbild, der Schmitt-Trigger.

Impulszähler mit Licht-Eingang