Das ultimative Spiel bei Spielstraßen, Straßenfesten, Kindergeburtstagen und Familienfesten. der HEISE DRAHT oder auch HOT WIRE. Wer den Draht mit der Öse berührt hat einen Fehler gemacht und bekommt Strafpunkte. Mehr muss man zu diesem Spiel nicht sagen. Das Spiel hat 10 Strafpunkte und jeder Fehler wird auf der LED Anzeige durch eine LED angezeigt. Die Anzeige und der Reset Taster sind in einem Gehäuse aus dem 3D-Drucker untergebracht.
In diesem kleinem Projekt für Arduino oder Ardublock Beginner, geht es darum Tastendrücke zu zählen und über eine Variable auszuwerten. Zudem wird der Inhalt der Variablen auf einer 10 LED Anzeige als Fehler dargestellt.
Hardware des heißen Draht Spiel
Die Hardware kommt vom SEEED aus dem grove System. Die Verdrahtung des VCC und GND habe weggelassen, da diese durch die Stecker automatisch geschieht. Der heiße Draht bekommt einen 10 K.Ohm pulldown Widerstand. Wer normale Taster verwendet der muss die Taster natürlich noch mit einem pulldown Widerstand versehen.
Die Hardware von unten, allerdings mit einem Arduino Nano und einem Board. Die Schaltung muss nicht besonders schön sein, da sie in einer Holzkiste verschwindet. An die Lüsterklemme kommt später die Öse und der Draht. Deshalb die großen Klemmen.
Software des heißen Draht Spiel
Bei jedem Fehler leuchtet eine LED mehr an der LED BAR auf. die neunte LED ist gelb und die zehnte LED ist rot. Wer also zehn Fehler macht, der hat einfach nur verloren. Das Programm besteht aus zwei Teilen.
- SETUP --> Anzeigentest
- LOOP -->
- --> Tasterabfrage
- --> Fehleranzeige
- --> Reset
Der SETUP Teil
Den Setup Teil könnte man auch weg lassen. Doch nach dem anschalten kann man so prüfen ob die Anzeige funktioniert. Die einzelnen LEDs gehen im 100ms Takt an und dann alle wieder aus. Danach wird noch die Taster Variable auf 0 gesetzt. Damit ich nicht zehn Blöcke für jede LED setzen muss. Zähle ich einfach über den "wiederhole mal" Block eine Variable und zeige das Ergebnis auf der Anzeige an.
Nun beginnt das eigentliche Spiel. Damit ich den heißen Draht nicht über delay entprellen muss, verwende ich den "count change" Blog, der an eine Variable angedockt ist. Bei jedem HIGH Signal an PIN 4, zählt diese Variable eine Zahl hoch. (PIN 2 HIGH = Variable +1).
Im nächsten Schritt wird über einen "fals" Block geprüft ob ein Fehler gemacht wurde oder nicht. Ist die Bedienung für einen Fehler erfüllt, also Variable (integerB = 1). Dann ertönt über den Summer für eine Sekunde ein Ton, bei der Anzeige wird über "level 10" die erste LED angeschaltet und das Programm wartet im "solange" Block auf eine weitere Eingabe. Diese Eingabe kann entweder vom Reset Taster an PIN 5 kommen oder von einem weiteren Fehler an PIN 4. In beiden Fällen wird die Variable verändert und die "solange" Bedingung ist nicht mehr erfüllt und das Programm geht zum nächsten Block.
Der Block mit (integerB = 0) ist nur für den Start, damit nach dem Reset der Summer ertönt und die Anzeige auf jeden Fall zurück gesetzt wird.
Bei einem weiteren Fehler geht es genau so weiter. Nun ist die Variable (integerB = 2). Damit ist der nächste "fals" Block erfüllt und das Programm schaltet wieder den Summer, schaltet eine weiter LED an und wartet auf den Reset oder einen weitern Fehler. Diesen Block zehn mal klonen und jeweils die Variable um eine Stelle hochzählen und das Level der Anzeige um jeweisl zehn hochzählen.
Ganz am Ende erscheint nun auch das Unterprogramm für den Reset. Damit dieser Block nicht in jeden Fehler Block kopiert werden muss, ist hier ein Unterprogramm erstellt. Dieses Unterprogramm setzt bei einem HIGH Signal von PIN 5, die "solange" Bedienung zurück und resetet den Zähler über den "reset count change state of" Blog.