Die hier vorgestellten Projekte sind als Anregungen für "Hausaufgaben" zwischen den Kursterminen gedacht. Vielleich können sie auch als Startpunkt für eigene Ideen dienen.

Taster-und-LED Variationen

Die folgenden Aufgaben lassen sich mit den schon beim LED-An-Aus- bzw. Blinker-Projekt verwendeten Befehlen realisieren und bauen auf diesem auf:

  1. Füge eine zweite LED ein, die immer leuchtet, wenn es die erste nicht tut und umgekehrt.
  2. Baue einen zweiten Taster ein, der die selbe Funktion wie der erste hat, ohne das Programm zu ändern.
  3. Baue einen zweiten Taster ein, der die selbe Funktion wie der erste hat, ohne dass er eine elektrische Verbindung (außer Masse) zum ersten hat. Natürlich geht dies nur mit Programmierung.
  4. Steuere eine LED mit zwei Tastern: Ein Taster schaltet ein, der andere aus.
  5. Treppenhauslicht 1: Beim Drücken des Tasters leuchtet die LED auf und bleibt für 5 Sekunden an.
  6. Beim Einschalten gefährlicher Maschinen will man sicherstellen, dass der Bediener seine Hände außerhalb der Gefahrenzone hält. Daher kann er die Maschine nur einschalten, wenn er gleichzeitig zwei weit voneinander entfernte Taster bedient. Im Notfall soll aber die Bedienung eines der Taster genügen, die Maschine auszuschalten. Bilde diese Logik mit einer LED an Stelle der Maschine nach.
  7. Blinker 1: Die LED blinkt, solange der Taster gedrückt ist.
  8. Steuere zwei LEDs mit zwei Tastern: Taster 1 steuert LED 1 und Taster 2 steuert LED 2. Aber: LED 2 kann nur eingeschaltet werden, wenn LED 1 brennt. Geht LED 1 aus, so erlischt auch LED 2.
  9. Bei der einfachen Entprellung des Tasters (delay nach drücken) stellte sich der Effekt ein, dass die LED zu blinken begann, wenn man den Taster für längere Zeit gedrückt hielt. Erweitere das Programm so, dass dies vermieden wird.

Die folgenden Aufgaben sind nur mit zusätzlichen Programmiermethoden zu lösen:

  1. Blinker 2: Drückt man die Taste, beginnt die LED zu blinken. Drückt man nochmal, hört das Blinken auf.
  2. Treppenhauslicht 2: Wie Treppenhauslicht 1, doch zusätzlich: Drückt man während der 5 Sekunden ein zweites Mal, wird die Leuchtzeit wieder auf 5 Sekunden gesetzt.
  3. Treppenhauslicht 3: Wie Treppenhauslicht 1, doch zusätzlich: Mehrfaches Drücken des Tasters erhöht die Brennzeit um jeweils 5 Sekunden. Also leuchtet die LED bei viermaligem Drücken 20 Sekunden.

Lichtfrequenz

Kino, Fernsehen und Video präsentieren uns bewegte Bilder - so scheint es jedenfalls. Tatsächlich werden jedoch nur viele "statische" Bilder in schneller Folge gezeigt. Wegen des begrenzten zeitlichen Auflösungsvermögens unserer Augen verschmelzen diese Bilder in unserer Wahrnehmung zu einem einzigen Fluss. Aber wie oft müssen die Bilder wechseln, damit dieser Effekt eintritt? Mit einer einfachen LED, welche wir vom Arduino in schneller Folge ein- und ausschalten, können wir diese Frequenz ermitteln. Dabei sollte das Programm die Spannung an einem Poti messen, in eine Frequenz umrechnen, diese über die serielle Schnittstelle ausgeben und eine LED entsprechend ansteuern. Nehmen wir das Leuchten der LED zunächst als Flackern wahr, so verschwindet dieses Flackern mit steigender Frequenz und die LED scheint stetig zu leuchten. Im Dunkeln können wir diese Grenze aber hinausschieben: Bewegen wir die LED schnell vor unseren Augen, sehen wir ein Streifenmuster. Dabei können wir sogar abschätzen, wie groß die Hellphase der LED im Vergleich zur Dunkelphase ausfällt.

Stroboskop

Ähnlich wie bei der "Lichtfrequenz" oben steuern wir eine weiße LED, doch begrenzen wir die Einschaltzeit der LED auf 1ms, sie blitzt also immer nur kurz auf. Im Dunkeln können wir damit z.B. die Bewegung eines elektrischen Quirls (Mixers) oder Ventilators betrachten. Wählt man die richtige Lichtfrequenz, so scheinen die sich stetig drehenden Teile fest zu stehen bzw. sich langsam rechts oder links herum zu drehen (Stroboskopeffekt).

Schneller Arduino

Idee: Demonstriere mit einfachen Mitteln die Geschwindigkeit der Programmausführung, indem in einer Schleife eine "long"-Variable (32 bit) hochgezählt wird.

Das Programm beginnt seinen Ablauf mit einem ersten Tastendruck. Danach durchläuft es eine Schleife, die nur aus einer Tastenabfrage und der Erhöhung einer Variablen besteht. Wird die Taste zum zweiten Mal gedrückt, sendet das Programm den Endwert der Zählvariable auf den Monitor (serielle Schnittstelle).

Drückt man die Tasten im Abstand von 10 Sekunden, lässt sich leicht berechnen, wie oft die Schleife innerhalb einer Sekunde durchlaufen wird bzw. wie lange ein einzelner Schleifendurchlauf dauert.

Durch Einbringen weiterer Operationen in die Schleife lässt sich so der Zeitbedarf anderer Funktionen wie analoge Eingabe oder Fließkommarechnungen (7,213 * 12345,67 oder sqrt(2)) leicht bestimmen.

Thermometer

Idee: Ein Thermometer mit einstelliger 7-Segment-Anzeige.
Liegt die Temperatur…

  • über 30 Grad: Alle 3 waagerechten Segmente wechseln sich mit der 2.Dezimalen ab.
  • über 20 Grad: Die unteren 2 Segmente wechseln sich mit der 2.Dezimalen ab
  • über 10 Grad: Das untere Segment wechselt sich mit der 2.Dezimalen ab.
  • über 0 Grad: Die einstellige Zahl wird andauernd angezeigt
  • Bei Minusgraden wird das mittlere waagerechte Segment im Wechsel mit den anderen Zeichen erleuchtet.

Spektrum

Idee: Eine 3-Farben-LED wird über der Zeit (z.B. in 10 Sekunden) durch den Farbkreis geführt.
Aspekte: 3-color LED, siehe RGB-Farbkreis.

Lichtschranke

Idee: Eine LED (Sender) scheint auf einen LDR (Empfänger) und beeinflusst so dessen Widerstand. Wird der Lichtfluss unterbrochen, macht sich dies am LDR bemerkbar. Aus diesem Effekt lässt sich eine Signal-LED ansteuern oder ein Alarmton ableiten.

Damit andere Lichtquellen den Betrieb bei größerer Entfernung zwischen Sender und Empfänger nicht stören, werden zwei zusätzliche Maßnahmen ergriffen:

  1. Eine kleine Pappröhre reduziert den Blickwinkel des Empfängers in Richtung Sender.
  2. Man subtrahiert vom Messwert bei Beleuchtung den Messwert ohne Sender wie folgt beschrieben:

Eine Messung besteht immer aus zwei Teilen: eine Messung mit abgeschaltetem Sender und eine mit eingeschaltetem Sender. Die Empfängerwerte werden dann subtrahiert, wobei die Qualität der "Verbindung" zwischen Sender und Empfänger umso größer ist, je größer die resultierende Differenz.
Wir die Lichtschranke unterbrochen, so fällt die Differenz deutlich unter den "Normalwert".

Das zu schreibende Programm zeigt kontinuierlich die Qualität der Verbindung mit rot/gelb/grünen LEDs an:

  • Rot bedeutet, kein Signal vom Empfänger (Differenz kaum messbar)
  • Gelb signalisiert: Signal wird empfangen, ist aber schwach.
  • Bei Grün schließlich wird ein klares Signal (=große Differenz) empfangen.

Bahnübergang

Idee: Sobald sich ein Zug nähert, leuchtet ein rotes Blinklicht; etwas später schließt sich eine Schranke. Hat der Zug den Übergang passiert, hebt sich die Schranke wieder und das Blinklicht erlischt.

Der vorgestellte Aufbau kann bei einer größeren Modelleisenbahn Verwendung finden.
Die Schranke lässt sich leicht mit einem Servomotor betreiben. Die Anfahrt und Abfahrt des Zuges detektiert man mit zwei Lichtschranken.

Lichtinstallation

Idee: Mehrere farbige LEDs werden hinter einem halbtransparentem Textil verborgen. Das Programm steuert sie in sanften Wellen von dunkel nach hell und umgekehrt. Dabei hat jede LED ihren eigenen Takt. Damit soll sich ein unregelmäßiger, organisch wabernder Leuchteffekt einstellen. Bei Geräuschen in der Umgebung steigert sich die Frequenz, das Leuchten wird unruhiger. Wird es noch lauter, blitzen hier und da weiße LEDs auf…

Stoppuhr

Baue das Küchenwecker-Programm so um, dass eine Stoppuhr entsteht, die auf die Hundertstel Sekunde genau misst. (Alternative: Benutze das LCD-Display zur Anzeige)

Reaktionszeitmesser

Basis ist wiederum die Küchenwecker-Hardware. Drückt man auf den Taster, so gibt das Programm zufällig, aber irgendwann im Zeitfenster von 3 Sekunden bis 15 Sekunden ein Signal. Darauf hin muss man den Taster möglichst schnell noch einmal drücken. Die Zeit vom Signal bis zum Drücken wird auf 0,01 Sekunde gemessen und dargestellt. Das Signal kann entweder ein Ton oder das Aufleuchten der Anzeige sein. (Alternative: Benutze das LCD-Display zur Anzeige)

Der Wanderpunkt (Processing)

Das Programm müsste eigentlich nach der Figur benannt sein, die dieses Programm zeichnet. Aber dann wäre die Überraschung ja dahin. Wer wagt eine Prognose?

Gegeben seien drei feste Punkte in der Ebene, welche typischerweise ein Dreieck definieren, also nicht auf einer Geraden liegen. Nun wählen wir einen beliebigen Punkt innerhalb oder außerhalb des Dreiecks als Startposition des Wanderpunktes. Eine einzige Regel bestimmt nun die Folge der Positionen des Wanderpunktes:

  1. Wähle zufällig einen der drei festen Punkte.
  2. Die neue Position liegt auf der Hälfte der Wegstrecke des festen Punktes und der aktuellen Position.
  3. Fahre fort mit dem ersten Schnitt!

Schreibe ein Programm, mit dessen Hilfe man zunächst die drei festen Punkte in einem leeren Fenster durch Anklicken markiert und dann die Startposition des Wanderpunktes. Danach berechnet das Programm z.B. 100.000 Folgepunkte und zeichnet diese in das Fenster. Finde heraus, wie man die entstehende Figur nennt!

Weitere Anregungen

finden sich in meiner Homepage. Dort eignen sich unter Programmierkurs > Unterrichtsprojekte z.B. die Bahnhofsuhr, Lissajous oder Memoria. Aber auch ein Tetris, Game of Life oder Mandelbrot sollten drin sein. Letztere erfordern aber eine gewisse Programmiererfahrung.