Anleitung
Technisches
Experimente




LBlocks: Programmieren ohne Tastatur

Experimente

(c) 2012-2013 Jörg Wolfram


1 Vorwort

Dieses Kapitel soll nach und nach Anleitungen zu verschiedenen Experimenten erhalten. Allerdings wird es einige Zeit brauchen, bis alle bereits realisierten Experimente auch dokumentiert worden sind. Anregungen nehme ich natürlich gerne entgegen. Das Gleiche gilt für Hinweise auf Fehler, die sich doch hier und da einschleichen können.

2 Licht an, Licht aus



2.1 Wir lassen eine Lampe blinken

Das einfachste aller Programme ist meistens ein "Hallo Welt", bei dem das Programm sich mit dem genannten Text meldet. Bei Steuerungen die keine Textausgabe besitzen lässt man meist einfach eine LED blinken. Das wollen wir auch hier machen und können dazu das Aufbaubeipiel aus der Einleitung benutzen:


Der Ablauf des Programmes ist folgender:
  1. LED einschalten
  2. etwas warten
  3. LED ausschalten
  4. etwas warten
  5. wieder bei 1. beginnen
Das Programm sieht schon etwas komplizierter aus, aber das ist nur auf den ersten Blick so.


Das oben dargestellte Programm ist aber nur eine Möglichkeit, wir können zum Beispiel die Verbindungen auch zum Teil weglassen und die Elemente weiter zusammenrücken:


Und es gibt noch eine weitere Möglichkeit. Im Kapitel bei der Auflistung der Elemente stand, dass untereinander angeordnete Elemente zyklisch ausgeführt werden, wenn es keine Möglichkeit gibt, den "Staffelstab" nach rechts weiterzugeben.


Jetzt könnte man als Aufgabe die Zeiten so verstellen, dass die Lampe immer nur kurz aufblitzt.

2.2 Geht es auch von Hand?

Jetzt wollen wir aber nicht nur zusehen, sondern die Lampe (LED) selbst steuern. Dafür brauchen wir einen Taster, den wir an den Anschluß B anschließen.


Nur mit elektrischen oder elektronischen Bauelementen aufgebaut, wäre wohl eine der einfachsten Schaltungen der Welt. Vielleicht geht es ja so:


Hmmm. Irgendwie geht das nicht. Wenn wir den Taster drücken zeigt die Anzeige am Controller an, dass das Programm beendet ist und die LED ist aus. Vielleich kann man sehen, dass sie ganz kurz geleuchtet hat. Also müssen wir die Sache anders angehen und uns aber überlegen, was denn eigentlich passieren soll:
  1. Wenn der Taster aus ist, dann die LED ausschalten
  2. Wenn der Taster an ist, dann die LED einschalten
  3. wieder bei 1. beginnen
Und genau das muss jetzt als Programm für den LBlocks-Controller umgesetzt werden. Als Programm könnte das Ganze dann so aussehen:


Jetzt können wir die LED mit dem Taster ein- und ausschalten. Und wenn die Werte der beiden LED-Elemente vertauscht werden, funktioniert alles umgekehrt: Solange der Taster gedrückt wird, geht die LED aus.

2.3 Und jetzt mit 2 Tastern

Als nächstes wollen wir 2 Taster anschließen, und zwar einen zum Einschalten und einen zum Ausschalten. Den zweiten taster schließen wir dazu an Anschluß C an.


Das Passende Programm sieht dann so aus:




2.4 Ein Treppenlicht-Automat

Wer kannt das nicht, man drückt auf den Taster im Treppenaufgang und das Licht bleibt für eine Zeitlang an. Auch das können wir mit unserem LBlocks-Controller realisieren. Dazu brauchen wir wieder eine LED und einen Taster, die wie folgt angeschlossen werden:


Das passende Programm sieht dann so aus:


Besonders gut funktioniert das leider nicht, denn man kann die Zeit nicht verlängern, indem man während der Ein-Zeit den Taster erneut drückt. Hier kommen jetzt die unterbrechbaren Zeiten ins Spiel. Wird nämlich jetzt der Taster gedrückt während die Zeit läuft, wird das Programm an der Stelle fortgesetzt, an der die Lampe eingeschaltet wird und die Wartezeit beginnt.


Das erneuete Starten der Zeit wird über den unteren "Zweig" des Programmes realisiert. Solange die Zeit noch nicht abgelaufen und der Taster nicht gedückt ist, wird der vertikale Stapel zyklisch abgearbeitet. Erst wenn eine der inneren Bedingungen WAHR ist (Zeit abgelaufen oder Taster gedrückt) wird der Stapel verlassen.
Ist zuerst die Zeit abgelaufen, wird die LED ausgeschaltet und das Programm wartet wieder, dass der Taster betätigt wird. Wird zuerst der Taster betätigt, wird das Programm als nächstes die Zeit neu starten. Zum Abschluss noch ein bisschen Komfort. Es wäre doch schön, wenn das Licht nicht abrupt abschaltet sondern erstmal etwas dunkler wird. Damit hätte man dann noch Gelegenheit, nach dem Taster zu suchen ohne gleich im Dunklen zu stehen. Auch das ist kein Problem für unseren LBlocks-Controller:




2.5 Eine Fußgängerampel

Jetzt noch ein anderes Experiment. Neben den Ampeln an Kreuzungen gibt ja auch solchen, bei denen Fußgänger sicher auf die andere Seite kommen sollen. Beobachtet man eine solche Ampel, wird man feststellen, dass der Ablauf immer der gleiche ist:
  1. Die Fußgängerampel steht auf rot und die Autofahrer haben grün. Das ist sozusagen die Grundstellung.
  2. Wenn ein Fußgänger auf den Taster drückt, passeriert erstmal nichts, manchmal leuchtet dann eine Lampe mit "Signal kommt".
  3. Nach einer Weile schaltet die Autofahrerampel auf gelb und danach auf rot.
  4. Jetzt bekommen die Fußgänger für eine Weile Grün.
  5. Nachdem die Fußgängerampel wieder auf rot geschaltet hat, bekommen die Autofahrer wieder Grün und dasGanze geht wieder von vorne los.
Also, was brauchen wie jetzt?
  • Rote, gelbe und grüne LED für die Autofahrer
  • Rote und grüne LED für die Fußgänger
  • Einen Taster für die Fußgänger
Insgesamt sind das 6 Dinge zum anschließen, passt also gut mit den 6 Anschlüssen an unserem LBlocks-Controller zusammen. Also schließe wir die LEDs und den Taster wie folgt an:


Im Programm versuchen wir, die oben beschriebenen Zustände als vertikale Stapel nachzubilden. Also die LEDs A bis E und darunter dann die Wartezeit bis zum nächsten Stapel oder auch den Taster.


Jetzt fehlt noch ein Element und zwar eine Zeit unter dem Stapel ganz rechts, aber die lässt sich irgendwie nicht aus der Liste dorthin ziehen. Leider gibt es eine Einschränkung. Und die legt fest, dass nur maximal 32 Elemente auf einer Seite sein dürfen. Das Gleiche gilt für maximal 32 Verbindungen, aber das ist nur ein theoretischer Wert, da 32 Elemente nie mehr als 32 Verbindungen haben können. Diese Einschränkungen haben sich bei der Entwicklung des LBlocks-Programmes ergeben und können auch nicht so einfach aufgehoben oder erweitert werden. Aber schauen wir uns unser Programm mal genau an, ob sich nicht ein paar Elemente einsparen lassen. Die Werte mancher Lampen ändern sich gar nicht, wenn zum nächsten Stapel gewechselt wird. Und jetzt? Die erste Lösung ist, nur die Lampen-Elemente zu benutzen, bei denen sich auch wirklich etwas ändert. Das dazugehörige Programm bleibt noch recht übersichtlich, wenn man gleiche Elemente nebeneinander setzt:


Eine weitere Möglichkeit wäre, ein Unterprogramm zu benutzen und zum Beispiel die letzten beiden Stapel dort auszuführen. Auf der folgenden Seite sind das dazugehörige Hauptprogramm und die rote Box dargestellt. Zuerst kommt das Hauptprogramm. Anstelle der beiden rechten Stapel wird jetzt das Unterprogramm in der roten Box ausgeführt.


Und hier das Unterprogramm in der roten Box. Bei den Unterprogrammen ist es wichtig, daß es eine Verbindung (auch über andere Elemente) vom Einganselement zum Ausgangselemet gibt.




3 Der Fotowiderstand



3.1 Wir testen den Fotowiderstand

Das Prinzip einer sogenannten Lichtschranke ist, dass eine Aktion bei Unterbrechung eines Lichtstrahls ausgelöst wird. Meist wird dazu unsichtbares Infrarotlicht verwendet, wir nutzen aber das Licht einer weißen LED. Als Lichtempfänger dient ein Fotowiderstand. Das ist ein elektronisches Bauelement welches seinen Widerstand abhängig vom einfallenden Licht ändert. Zunächst wollen wir mal sehen, was der Fotowiderstand an unserem Controller bewirkt. Dazu schließen wir an Anschluß A eine weiße LED und an Anschluß B den Fotowiderstand an.


Um zu sehen, was passiert, wollen wir den Messwert auf der Segment-Anzeige des Controllers anzeigen lassen. Das Programm dazu sieht dann so aus:


Zuerst wird die LED am Anschluss A eingeschaltet, dann geht es in eine Schleife die bis zum Ausschalten oder Drücken der Stop-Taste abgearbeitet wird. In jedem Durchlauf wird der Analogwert von Anschluss B in die Variable eingelesen (das Elemet mit dem Messgerät-Symbol), der Wert der Variable auf der Anzeige des Controllers angezeigt und danach 0,2 Sekunden gewartet.
Vielleicht stellt sich jetzt die Frage, wozu die Wartezeit gut ist. Aber während dier Widerstand unseres Fotowiderstands eine Größe ist, die beliebig viele Zuwischenwerte annehmen kann, zeigt unsere Anzeige nur Stufen an. Und wenn jetzt der Wert genau zwischen zwei Stufen liegt, kann man kaum etwas erkennen. Das kann man auch einfach ausprobieren, indem das Warte-Element (Stoppuhr) entfernt wird.
Um das Programm zu testen, stellen wir LED und Fotowiderstand gegenüber, starten das Programm und schauen was passiert wenn Gegenstände zwischen die Leuchtdiode und den Fotowiderstand gebracht werden. Wenn alles funktioniert leuchtet die LED und die Anzeige auf dem Controller-Mudul ändert sich hin zu kleineren Werten, wenn wir den Fotowiderstand abdecken. In hellen Umgebungen kann es sinnvoll sein, vor den Fotowiderstand eine Art kleinen Tunnel zur Abschirmung von Fremdlicht zu bauen. Jetzt können wir das Ganze noch in eine Tür oder einen Durchgang einbauen, vielleicht so wie in der Abbildung auf der nächsten Seite.

4 Achtung Einbrecher!



4.1 Eine einfache Lichtschranke



Wenn wir jetzt das Programm starten, sehen wir auf der Anzeige des LBlocks-Controllers, wenn der Lichtstrahl von der LED zum Fotowiderstand unterbrochen wird. Da man dazu ständig auf die Anzeige schauen muss, könnte man auch gleich den Durchgang bewachen. Also brauchen wir ein Signal welches und die Unterbrechung des Lichtstrahls meldet und welches danach wieder von Hand zurückgestellt werden muss. Dazu erweitern wir unsere Schaltung auf die folgende Weise:


Das neue Programm kann dann folgendermaßen aussehen, wobei hier noch eine Tonausgabe mit hinzugekommen ist.


Das gesamte Programm ist in 3 vertikale Stapel aufgeteilt. Der erste Stapel enthält wieder unsere Lichtmessung, wobei jetzt noch eine Abfrage hinzugekommen ist, ob der Wert der Variable unter 6 gesunken ist. Wenn ja, wird der zweite Stapel ausgeführt. Hier werden zuerst die rote LED eingeschaltet und danach zwei unterschiedlich hohe Töne im Wechsel ausgegeben (Sirene). Erst mit der Betätigung des Tasters an Anschluss D wird der Alarm wieder abgeschaltet (3.Stapel) und das Programm beginnt wieder mit dem ersten Stapel. Dabei muss der Taster für minestens eine Sekunde gedrückt bleiben.



Jetzt kann der Posten ruhig in seiner Zentrale sitzen und wenn der Lichtstrahl unterbrochen wird, dann geht die rote Lampe an und die Sirene ertönt. Erst wenn der Abstellknopf lange genug gedrückt wurde, ist der Spuk wieder vorbei.

4.2 Wir verbessern die Lichtschranke

Unsere Lichtschranke funktioniert ja schon ganz gut, ABER man kann sie mit jeder Taschenlampe austricksen. Wenn damit der Fotowiderstand beleuchtet wird ist es kein Problem den Lichtstrahl zur LED zu unterbrechen ohne dass Alarm ausgelöst wird. Eine Möglichkeit wäre, mit einem zusätzlichen Vergleich auf einen Maximalwert die erlaubte Lichtstärke am Fotowiderstand einzugrenzen, aber das ist auch nicht besonders sicher und kann Probleme bei unterschiedlicher Umgebungshelligkeit bringen. Eine andere Möglichkeit ist, das Licht abwechselnd ein- und auszuschalten und dabei jeweils einen Vergleich auf zu geringen oder zu hohe Helligkeit zu machen. Um diese Lichtschranke auszutricksen, müsste man mit der Taschenlampe in exakt dem gleichen Rhythmus blinken. Und das wird ganz schön schwierig, besonders wenn das Blinken sehr schnell ist. Das Ganze hat auch einen Namen und nennt sich "Wechsellichtschranke".
Das neue Programm ist schon recht komliziert und lässt kaum noch Platz für Erweiterungen. Abhilfe könnte aber eine Verlagerung in Unterprogramme bringen.




4.3 Ein Dämmerungsschalter

Wie der Name schon sagt, schaltet ein Dämmerungsschalter in der Dämmerung. Zum Beispiel kann er die Staßenbeleuchtung abends ein- und morgens wieder schalten. Gut, das könnte man auch mit einer Schaltuhr (einer Uhr mit Schaltkontakten, die zu festgelegten Zeiten ein- oder ausschalten) relisieren. Aber im Sommer kann die Straßenbeleuchtung früher ausgeschaltet und abends auch später eingeschaltet werden, da es dann länger hell ist als im Winter. Ein Dämmerungsschalter erledigt diese Anpassung automatisch.
Wieder schließen wir an Anschluß A eine weiße LED und an Anschluß B den Fotowiderstand an.


Und hier noch dazu das passende Programm:


In jedem Zyklus wird der Wert des Fotowiderstandes gemessen, in die Variable eingelesen und mit 2 Werten verglichen. Ist der Wert kleiner als 6 (also dunkel), wird die LED eingeschaltet. Ist der Wert größer als 10 (hell) wird sie wieder ausgeschaltet. Aber warum macht man die beiden Werte soweit auseinander? Damit verhindert man ganz einfach, dass schon kleinste Helligkeitsschwankungen zum Umschalten führen. Wenn sich die Helligkeit im Bereich der eingestellten Schaltschwelle befindet, könnte sonst schon ein vorbeifliegender Vogel dafür sorgen dass das Licht kurz angeht.

4.4 Ein Autoblitz für die Kamera

Moderne Kameras schalten bei Dunkelheit automatisch den Blitz ein. Da wir jetzt wissen wie man den Fotowiderstand einsetzen kann, sollte das eigentlich einfach zu realisieren sein. Da wir jetzt keine Kamera haben, benutzen wir eine LED als "Verschluss". Das Wort Verschluss stammt noch aus der Zeit, als es noch keine Digitalkameras gab. Da musste nämlich die Objektivöffnung die meiste Zeit verschlossen sein, damit der Film nicht schon vorher belichtet wurde. Nur für einen ganz kurzen Moment, die Belichtungszeit, wurde dieser Verschluss dann geöffnet. Bei Digitalkameras ist heute der Verschluss oft elektronisch realisiert.
Aber zurück zum Thema. Also wir werden eine grüne LED an Anschluss D als Verschluss-Anzeige nutzen und eine weiße LED an Anschluss C als Blitz. Den Fotowderstand schließen wir an Anschluss A an und einen Taster als Auslöser an Anschluss B.


Hier das Programm für die Blitzschaltung. Im Vergleichs-Element (in der Mitte) wird entschieden, ob zusätzlich zur Auslöser-LED auch die Blitz-LED eingeschaltet werden soll. Bevor die Programmschleife von Neuem beginnt, wird noch geaertet, bis der Auslösetaster nicht mehr gedrückt ist. Dadurch wird verhindert, dass der Auslöser periodisch ausgelöst wird.




created with latex2web.pl v0.63 © 2006-2013 Joerg Wolfram