Revision history for MPTSS2017Gedaechtnisspiel
No Differences
Additions:
Abb. 2 - Schaltplan des Gedächtnisspieles
Deletions:
Additions:
Abb. 2 - Schaltplan des Gedächtnisspieles ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop== a
Deletions:
Additions:
Abb.1: Schaltung einer Steckplatine ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 2 - Schaltplan des Gedächtnisspieles ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 2 - Schaltplan des Gedächtnisspieles ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Deletions:
Abb. 2 - Schaltplan des Gedächtnisspieles
Additions:
Abb.1: Schaltung einer Steckplatine
Abb. 2 - Schaltplan des Gedächtnisspieles
Abb. 3 - Tastenfeld / Schritt 1
Abb. 4 - Tastenfeld / Schritt 2
Abb. 5 - Tastenfeld / Schritt 3
Abb. 6 - Tastenfeld / Schritt 4
Abb. 7 - Tastenfeld / Schritt 5
Abb. 9 - Tastenfeld / Schritt 7
Abb. 10 - LED Matrix / Schritt 1
Abb. 11 - LED Matrix / Schritt 2
Abb. 12 - LED Matrix / Schritt 3
Abb. 13 - LED Matrix / Schritt 4
Abb. 14 - LED Matrix / Schritt 5
Abb. 15 - LED Matrix / Schritt 6
Abb. 16 - LED Matrix / Schritt 7
Abb. 17 - LED Matrix / Schritt 8
Abb. 18 - LED Matrix / Schritt 9
Abb. 19 - LED Matrix / Schritt 10
Abb. 20 - LED Matrix / Schritt 11
Abb. 21 - Summer / Schritt 1
Abb. 22 - Summer / Schritt 2
Abb. 23 - Summer / Schritt 3
Abb. 24 - Summer / Schritt 4
Abb. 25 - Potentiometer / Schritt 1
Abb. 26 - Potentiometer / Schritt 2
Abb. 27 - Potentiometer / Schritt 3
Abb. 28 - Potentiometer / Schritt 4
Abb. 29 - Taster / Schritt 1
Abb. 30 - Taster / Schritt 2
Abb. 2 - Schaltplan des Gedächtnisspieles
Abb. 3 - Tastenfeld / Schritt 1
Abb. 4 - Tastenfeld / Schritt 2
Abb. 5 - Tastenfeld / Schritt 3
Abb. 6 - Tastenfeld / Schritt 4
Abb. 7 - Tastenfeld / Schritt 5
Abb. 9 - Tastenfeld / Schritt 7
Abb. 10 - LED Matrix / Schritt 1
Abb. 11 - LED Matrix / Schritt 2
Abb. 12 - LED Matrix / Schritt 3
Abb. 13 - LED Matrix / Schritt 4
Abb. 14 - LED Matrix / Schritt 5
Abb. 15 - LED Matrix / Schritt 6
Abb. 16 - LED Matrix / Schritt 7
Abb. 17 - LED Matrix / Schritt 8
Abb. 18 - LED Matrix / Schritt 9
Abb. 19 - LED Matrix / Schritt 10
Abb. 20 - LED Matrix / Schritt 11
Abb. 21 - Summer / Schritt 1
Abb. 22 - Summer / Schritt 2
Abb. 23 - Summer / Schritt 3
Abb. 24 - Summer / Schritt 4
Abb. 25 - Potentiometer / Schritt 1
Abb. 26 - Potentiometer / Schritt 2
Abb. 27 - Potentiometer / Schritt 3
Abb. 28 - Potentiometer / Schritt 4
Abb. 29 - Taster / Schritt 1
Abb. 30 - Taster / Schritt 2
Deletions:
Abb. 2 - Schaltplan des Gedächtnisspieles ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 3 - Tastenfeld / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 4 - Tastenfeld / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 5 - Tastenfeld / Schritt 3 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 6 - Tastenfeld / Schritt 4 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 7 - Tastenfeld / Schritt 5 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 9 - Tastenfeld / Schritt 7 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 10 - LED Matrix / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 11 - LED Matrix / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 12 - LED Matrix / Schritt 3 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 13 - LED Matrix / Schritt 4 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 14 - LED Matrix / Schritt 5 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 15 - LED Matrix / Schritt 6 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 16 - LED Matrix / Schritt 7 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 17 - LED Matrix / Schritt 8 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 18 - LED Matrix / Schritt 9 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 19 - LED Matrix / Schritt 10 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 20 - LED Matrix / Schritt 11 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 21 - Summer / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 22 - Summer / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 23 - Summer / Schritt 3 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 24 - Summer / Schritt 4 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 25 - Potentiometer / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 26 - Potentiometer / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 27 - Potentiometer / Schritt 3 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 28 - Potentiometer / Schritt 4 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 29 - Taster / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Abb. 30 - Taster / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Additions:
**{{color text="((1)) Anschluss des 4x4 Tastenfeldes" c="#00386a"}}**
Um möglichst viele Pins zu sparen werden Widerstände verwendet. Dadurch können Sie die angelegten 5V so verringern, dass am Ende 16 verschiedene Werte Ausgelesen werden können. Dadurch kann das Tastenfeld mit insgesamt 3 Pins betreiben werden, anstatt für jede der Tasten einen Pin belegen zu müssen.
**{{color text="((2)) Schritt" c="#00386a"}}**
Zuerst schließen Sie die PINs für A0 (Weiß), 5V (Schwarz) und GND (Rot) an.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/1.png" title="Abb. 3 - Tastenfeld / Schritt 1 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 3 - Tastenfeld / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Setzen Sie jetzt die 4x 1K Ω Widerstände wie abgebildet auf die Steckplatine.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/2.png" title="Abb. 4 - Tastenfeld / Schritt 2 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 4 - Tastenfeld / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Als nächstes setzen Sie die 3x 4.7K Ω Widerstände auf die Steckplatine.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/3.png" title="Abb. 5 - Tastenfeld / Schritt 3 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 5 - Tastenfeld / Schritt 3 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Die 4.7K Ω Widerstände werden nun mit Kabeln versehen, welche später zum Tastenfeld gehen sollen. Dabei enden diese immer 1 Pin versetzt in derselben Zeile. Damit sind die 4 „Eingänge“ des Tastenfeldes abgedeckt.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/4.png" title="Abb. 6 - Tastenfeld / Schritt 4 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 6 - Tastenfeld / Schritt 4 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Die Widerstände (4.7K Ω) werden jetzt mit den 5V Pin des Arduinos verbunden. Dazu verbinden Sie die Reihe mit den grauen Kabel mit dem des 5V Pins am oberen Ende der Steckplatine.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/5.png" title="Abb. 7 - Tastenfeld / Schritt 5 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 7 - Tastenfeld / Schritt 5 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Es folgt die Verkabelung der anderen 4 Widerstände. Die Kabel enden in derselben Zeile der Steckpatine wie die von den 4.7K Ω Widerständen.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/6.png" title="Abb. 8 - Tastenfeld / Schritt 6 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
**{{color text="((2)) Schritt" c="#00386a"}}**
Zuletzt folgt das anschließen des Tastenfeldes. Dazu werden die 8 Pins des Tastenfeldes der Reihenfolge nach zu den Enden der Kabel, welche zu den Widerständen führen, gesteckt. Bei dem vorliegenden Tastenfeld sind die ersten 4 Pins für die Spalten (von links nach rechts) und die anderen 4 für die Zeilen (von oben nach unten).
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/7.png" title="Abb. 9 - Tastenfeld / Schritt 7 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 9 - Tastenfeld / Schritt 7 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Damit ist die Schaltung für das Tastenfeld komplett und es ist einsatzbereit.
**{{color text="((1)) Anschluss der 8x8 LED Matrix" c="#00386a"}}**
Das Projekt nutzt eine 8x8 LED Matrix, auch hier sollen möglichst viele Pins des Arduinos eingespart werden. Deshalb wird die Matrix so geschaltet, dass immer 4 LEDs im Verbund anzusprechen sind. Das Ergebnis ist eine 4x4 LED Matrix welche komplett mit dem Tastenfeld bedient werden kann.
**{{color text="((2)) Schritt" c="#00386a"}}**
Zuerst verbinden Sie 3 weitere Steckplatinen mit der des Tastenfeldes. Dann setzen Sie die LED Matrix in die Mitte.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/8.png" title="Abb. 10 - LED Matrix / Schritt 1 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 10 - LED Matrix / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Damit die LEDs nicht durchbrennen müssen 220 Ω Widerstände verwendet werden, diese verbauen Sie wie es auf dem Bild zu sehen ist etwas versetzt.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/9.png" title="Abb. 11 - LED Matrix / Schritt 2 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 11 - LED Matrix / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Damit die LEDs nicht durchbrennen müssen 220 Ω Widerstände verwendet werden, diese verbauen Sie wie es auf dem Bild zu sehen ist etwas versetzt.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/10.png" title="Abb. 12 - LED Matrix / Schritt 3 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 12 - LED Matrix / Schritt 3 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Damit die LEDs nicht durchbrennen müssen 220 Ω Widerstände verwendet werden, diese verbauen Sie wie es auf dem Bild zu sehen ist etwas versetzt.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/11.png" title="Abb. 13 - LED Matrix / Schritt 4 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 13 - LED Matrix / Schritt 4 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Damit sind nun alle Kabel am Arduino, die zum Ansteuern der LED Matrix benötigt werden.
Jetzt folgt die Verkabelung das immer 4 LEDs gleichzeitig an sind. Da hierzu einige Kabel nötig sind, wird der Prozess etwas aufgeteilt. Im Folgenden werden die Pins der LED wie folgt mit Zahlen benannt:
|=|Obere Reihe (Rot)||1||2||3||4||5||6||7||8||
|=|Untere Reihe (Grün)||9||10||11||12||13||14||15||16||
Verbinden Sie nun die eben gelegten Kabel mit Pin 8 (Gelb), 13 (Blau), 15 (Rot) und 16 (Schwarz) der LED Matrix.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/12.png" title="Abb. 14 - LED Matrix / Schritt 5 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 14 - LED Matrix / Schritt 5 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Es folgt Pin 3 (Orange) und Pin 5 (Blau).
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/13.png" title="Abb. 15 - LED Matrix / Schritt 6 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 15 - LED Matrix / Schritt 6 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Die Pins 11 (Rosa), 12 (Ocker) sowie 14 (Orange) werden nun mit den 220 Ω Widerständen verbunden.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/14.png" title="Abb. 16 - LED Matrix / Schritt 7 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 16 - LED Matrix / Schritt 7 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Es wird nun die untere Reihe vervollständigt, dazu verbinden Sie Pin 9 (Weiß) sowie Pin 10 (Rot).
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/15.png" title="Abb. 17 - LED Matrix / Schritt 8 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 17 - LED Matrix / Schritt 8 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Pin 6 (Grün) sowie Pin 7 (Weiß) folgen als nächstes. Diese werden wieder mit den 220 Ω Widerständen verbunden.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/16.png" title="Abb. 18 - LED Matrix / Schritt 9 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 18 - LED Matrix / Schritt 9 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Es folgt Pin 1 (Ocker) sowie Pin 2 (Weiß) welche auch mit den 220 Ω Widerständen verbunden werden.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/17.png" title="Abb. 19 - LED Matrix / Schritt 10 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 19 - LED Matrix / Schritt 10 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Zuletzt fehlt noch Pin 4 (Grau) welchen Sie nun verbinden.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/18.png" title="Abb. 20 - LED Matrix / Schritt 11 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 20 - LED Matrix / Schritt 11 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Damit wäre die Verkabelung für die LED Matrix fertig. Hier noch einmal eine Text Beschreibung der Verbindungen:
Arduino Pin 13 -> LED Pin 3 / 8
Arduino Pin 12 -> LED Pin 5 / 16
Arduino Pin ~11 -> LED Pin 9 / 15
Arduino Pin ~10 -> LED Pin 10 / 13
Arduino Pin ~9 -> 220Ω Widerstand -> LED Pin 4 / 11
Arduino Pin 8 -> 220Ω Widerstand -> LED Pin 7 / 12
Arduino Pin 7 -> 220Ω Widerstand -> LED Pin 6 / 14
Arduino Pin ~6 -> 220Ω Widerstand -> LED Pin 1 / 2
**{{color text="((1)) Anschluss des Summers" c="#00386a"}}**
Um Ton abspielen zu können, wird ein Summer benötigt. Dieser wird nun eingebaut.
**{{color text="((2)) Schritt" c="#00386a"}}**
Zuerst legen Sie Masse (GND) an die oberste Steckplatine an.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/19.png" title="Abb. 21 - Summer / Schritt 1 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 21 - Summer / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Nun folgt der Summer, welchen Sie an eine freie Stelle auf die obere Steckplatine setzen.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/20.png" title="Abb. 22 - Summer / Schritt 2 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 22 - Summer / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Als nächstes schließen Sie Pin ~5 (Lila) des Arduino an den Summer.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/21.png" title="Abb. 23 - Summer / Schritt 3 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 23 - Summer / Schritt 3 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Zuletzt verbinden Sie den Summer noch mit Masse (GND).
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/22.png" title="Abb. 24 - Summer / Schritt 4 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 24 - Summer / Schritt 4 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Somit ist der Summer eingebaut und einsatzbereit.
**{{color text="((1)) Anschluss des Potentiometers für den „Random Generator“ Seed" c="#00386a"}}**
Da der Arduino selber keine Zufallszahlen generieren kann, hat er eine Liste mit Zahlen welche er der Reihenfolge nach ausgibt. Damit nicht immer dieselbe Reihenfolge im Spiel vorkommt, wird der Random Seed mit Hilfe eines Potentiometers verändert. Dabei wird der Anfang der „Random“ Liste auf einen Wert gesetzt, welchen durch den Widerstand bestimmt wird.
**{{color text="((2)) Schritt" c="#00386a"}}**
Platzieren Sie das Potentiometer auf eine freie Stelle der Steckplatine.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/23.png" title="Abb. 25 - Potentiometer / Schritt 1 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 25 - Potentiometer / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Versorgen Sie die obere Steckplatine mit 5V indem Sie ein Kabel nach oben legen.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/24.png" title="Abb. 26 - Potentiometer / Schritt 2 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 26 - Potentiometer / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Schließen Sie nun das Potentiometer an 5V, sowie GND an.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/25.png" title="Abb. 27 - Potentiometer / Schritt 3 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 27 - Potentiometer / Schritt 3 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Zuletzt schließen Sie noch das Potentiometer an den Arduino Pin A1.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/26.png" title="Abb. 28 - Potentiometer / Schritt 4 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 28 - Potentiometer / Schritt 4 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Nun können Sie mit dem Potentiometer den Verlauf des Spieles ändern.
**{{color text="((1)) Anschluss des Taster zum Kalibrieren des Tastenfeldes“ Seed" c="#00386a"}}**
Da das Tastenfeld über Widerstände ausgelesen wird, können sich die Werte leicht verändern. Um das Tastenfeld im Betrieb zu kalibrieren wird ein Taster eingebaut der eine Kalibrierungsroutine startet.
**{{color text="((2)) Schritt" c="#00386a"}}**
Zuerst setzen Sie den Taster auf eine freie Fläche auf der oberen Steckplatine.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/27.png" title="Abb. 29 - Taster / Schritt 1 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 29 - Taster / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Den Taster verbinden Sie nun mit 5V (Orange) sowie Pin 2 (Grau) des Arduinos.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/28.png" title="Abb. 30 - Taster / Schritt 2 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 30 - Taster / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Der Aufbau des Spiels ist nun komplett.
**{{color text="((1)) Programmcode Seed" c="#00386a"}}**
%%(language-ref)
/*
* Matrix - Dokumentation
* 13 schaltet Reihe 1
* 12 schaltet Reihe 2
* 11 schaltet Reihe 3
* 10 schaltet Reihe 4
* 9 schaltet Spalte 1
* 8 schaltet Spalte 2
* 7 schaltet Spalte 3
* 6 schaltet Spalte 4
*/
//Key Matrix
int button[16] = {1022, 697, 527, 424, 510, 413, 347, 299, 340, 293, 258, 231, 254, 227, 208, 188};
int keyInput = A0;
int offset = 2;
//Random Generator
int randomInput = A1;
//Interrupt-"Switch"
volatile bool keyCalibrateSwitch = false;
struct Node;
struct Node {
int value;
struct Node *next;
};
void clearList(struct Node *head) {
struct Node *current = head;
struct Node *previous = NULL;
bool stop = false;
while(!stop) {
if(current->next != NULL) {
previous = current;
current = current->next;
}
else {
if(previous != NULL) {
previous->next = NULL;
previous = NULL;
}
else {
stop = true;
}
free(current);
}
}
}
void switchKeyBool() {
keyCalibrateSwitch = true;
}
void setup() {
Serial.begin(9600);
pinMode(keyInput, INPUT);
pinMode(3, INPUT);
digitalWrite(3, HIGH);
attachInterrupt(digitalPinToInterrupt(2), switchKeyBool, FALLING);
DDRB = B111111;
DDRD = B11100000;
for(int i = 0; i < 3; i++){
setMatrixLights(17);
delay(250);
setMatrixLights(0);
delay(250);
}
//keyCalibrate();
}
void loop() {
bool stop = false;
Serial.print("KeyCalibrateSwitch: ");
Serial.println(keyCalibrateSwitch);
if(keyCalibrateSwitch == true){
keyCalibrateSwitch == false;
keyCalibrate();
getKeyValue();
}
while(!stop) {
for(int i = 1; i <= 16; ++i) {
setMatrixLights(i);
delay(100);
int value = analogRead(keyInput);
for(int i = 0; i < 16; ++i) {
if(value != 0 && value <= button[i]+offset && value >= button[i]-offset) {
tone(5, 3000/(i+1), 100);
stop = true;
break;
}
}
if(stop) {
break;
}
setMatrixLights(0);
}
}-
writeFont(3,50);
writeFont(2,50);
writeFont(1,50);
writeFont('-',75);
pacmanStartSound();
struct Node *firstNode = NULL;
struct Node *latestNode = NULL;
//int counter = 0;
setSeed();
Serial.println("Test");
while(true) {
Serial.println("Test2");
//Read Random Seed
int randomLED = random(1, 17);
Serial.println("Test3");
if(firstNode == NULL) {
//counter = 0;
firstNode = (struct Node *) malloc(sizeof(struct Node));
firstNode->value = randomLED;
firstNode->next = NULL;
latestNode = firstNode;
}
else {
//++counter;
latestNode->next = (struct Node *) malloc(sizeof(struct Node));
latestNode = latestNode->next;
latestNode->value = randomLED;
latestNode->next = NULL;
}
//Set LED on Matrix (Complete Nodes)
Serial.println("New Number:");
Serial.println(latestNode->value, DEC);
struct Node *temp = firstNode;
while(true) {
tone(5, 3000/temp->value, 100);
writePixel(temp->value, 600);
if(temp->next != NULL) {
Serial.println(temp->value);
temp = temp->next;
}
else {
break;
}
delay(100);
}
//Check key streak
struct Node *checkNode = firstNode;
bool wrongButton = false;
while(true) {
//Read Key
Serial.println("Input Key:");
int inputKey = getKeyValue();
Serial.println(inputKey, DEC);
if(checkNode->value == inputKey) {
Serial.println("Hit!");
if(checkNode->next != NULL) {
checkNode = checkNode->next;
}
else {
break;
}
}
else {
Serial.println("Miss!");
for(int i = 0; i < 5; ++i) {
tone(5, 3000/checkNode->value, 100);
setMatrixLights(checkNode->value);
delay(250);
setMatrixLights(0);
delay(250);
}
gameOverSound();
gameOver();
for(int i = 0; i < 4; ++i) {
setMatrixLights(17);
delay(250);
setMatrixLights(0);
delay(250);
}
Serial.println("==============================");
Serial.println("Start New Game!");
Serial.println("==============================");
wrongButton = true;
break;
}
}
delay(500);
if(wrongButton) {
break;
}
}
//clearList(firstNode);
firstNode = NULL;
latestNode = NULL;
}
void gameOverSound() {
beep(523, 125);
beep(554, 125);
beep(587, 125);
delay(200);
beep(494, 125);
beep(698, 125);
delay(50);
beep(698, 125);
beep(698, 125);
beep(659, 125);
beep(587, 125);
beep(523, 125);
beep(330, 125);
delay(50);
beep(196, 125);
beep(330, 125);
beep(262, 125);
}
void pacmanStartSound(){
beep(493, 125);
beep(987, 125);
beep(739, 125);
beep(622, 125);
delay(50);
//B5/F#5/D#5
beep(987, 125);
beep(739, 125);
beep(622, 125);
delay(50);
//C5/C6/G5/E5
beep(523, 125);
beep(1046,125);
beep(783, 125);
beep(659, 125);
delay(50);
//C6/G5/E5
beep(1046,125);
beep(783, 125);
beep(659, 125);
delay(50);
//B4/B5/F#5/D#5
beep(493, 125);
beep(987, 125);
beep(739, 125);
beep(622, 125);
delay(50);
//B5/F#5/D#5
beep(987, 125);
beep(739, 125);
beep(622, 125);
//D#5/E5/F5
beep(622, 125);
beep(659, 125);
beep(698, 125);
//F5/F#5/G5
beep(698, 125);
beep(739, 125);
beep(783, 125);
//G5/G#5/A5
beep(783, 125);
beep(830, 125);
beep(880, 125);
//A5/A#5/B5
beep(880, 125);
beep(932, 125);
beep(987, 125);
delay(150);
}
void beep(int fr, int dur){
tone(5, fr, dur);
delay(dur);
}
void gameOver() {
writeFont('G',50);
writeFont('A',50);
writeFont('M',50);
writeFont('E',50);
writeFont('-',50);
writeFont('O',50);
writeFont('V',50);
writeFont('E',50);
writeFont('R',50);
writeFont('!',50);
writeFont('-',150);
writeFont('!',50);
writeFont('-',150);
writeFont('!',50);
writeFont('-',150);
}
void setSeed() {
long currentSeed = analogRead(randomInput);
Serial.println(currentSeed);
randomSeed(currentSeed);
}
int getKeyValue() {
while(true) {
int value = analogRead(keyInput);
for(int i = 0; i < 16; ++i) {
if(value != 0 && value <= button[i]+offset && value >= button[i]-offset) {
tone(5, 3000/(i+1), 100);
setMatrixLights(i+1);
while(true) {
value = analogRead(keyInput);
if(value == 0) {
setMatrixLights(0);
return i+1;
}
}
}
}
}
}
int keyAnalogCalc() {
unsigned long sum = 0;
int last = 0;
int counter = 0;
int counter2 = 0;
while(true) {
int value = analogRead(keyInput);
if(value != 0) {
sum += value;
++counter;
if((sum/counter) == last) {
if(counter % 1000 == 0) {
Serial.print(".");
}
++counter2;
}
else {
last = (sum/counter);
counter2 = 0;
}
if(counter2 == 7500) {
break;
}
}
}
Serial.println("");
Serial.println("Stop Pressing the button!");
setMatrixLights(17);
while(true) {
int value = analogRead(keyInput);
if(value == 0) {
break;
}
}
return sum/counter;
}
void keyCalibrate() {
int counter;
int sum;
Serial.println("Key Calibration");
for(int i = 0; i < 16; ++i) {
Serial.print("Keep Pressing ");
Serial.print(i+1);
setMatrixLights(i+1);
button[i] = keyAnalogCalc();
Serial.print("Button ");
Serial.print(i+1);
Serial.print(" Value: ");
Serial.println(button[i], DEC);
setMatrixLights(0);
}
delay(500);
for(int i = 1; i <= 16; ++i) {
setMatrixLights(i);
delay(100);
}
setMatrixLights(17);
delay(250);
writeFont('O', 250);
Serial.print("Set Offset (Default 2): ");
offset = getKeyValue();
delay(250);
Serial.println(offset);
Serial.println("Calibration done!");
for(int i = 1; i <= offset; ++i) {
setMatrixLights(17);
delay(250);
setMatrixLights(0);
delay(250);
}
}
void setMatrixLights(int seg){
switch(seg){
case 0: delayMicroseconds(500);
PORTB = 0x0;
PORTD = 0x0;
break;
case 1: PORTB = B100001;
PORTD = B11000000;
break;
case 2: PORTB = B100010;
PORTD = B11000000;
break;
case 3: PORTB = B100011;
PORTD = B01000000;
break;
case 4: PORTB = B100011;
PORTD = B10000000;
break;
case 5: PORTB = B010001;
PORTD = B11000000;
break;
case 6: PORTB = B010010;
PORTD = B11000000;
break;
case 7: PORTB = B010011;
PORTD = B01000000;
break;
case 8: PORTB = B010011;
PORTD = B10000000;
break;
case 9: PORTB = B001001;
PORTD = B11000000;
break;
case 10: PORTB = B001010;
PORTD = B11000000;
break;
case 11: PORTB = B001011;
PORTD = B01000000;
break;
case 12: PORTB = B001011;
PORTD = B10000000;
break;
case 13: PORTB = B000101;
PORTD = B11000000;
break;
case 14: PORTB = B000110;
PORTD = B11000000;
break;
case 15: PORTB = B000111;
PORTD = B01000000;
break;
case 16: PORTB = B000111;
PORTD = B10000000;
break;
case 17: PORTB = B111100;
PORTD = B00000000;
break;
}
}
void writeFont(int number, unsigned long timeValue) {
for(unsigned long i = 0; i < timeValue; ++i) {
font(number);
delay(1);
}
}
void writePixel(int pixel, int timeValue) {
setMatrixLights(pixel);
delay(timeValue);
setMatrixLights(0);
}
void setFont(bool ledStatus[16]){
for(int i = 0; i < 16; i++){
if(ledStatus[i]){
setMatrixLights(i+1);
setMatrixLights(0);
}
}
}
void font(int number){
bool leds[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
switch(number){
case '-':
setFont(leds);
break;
case 0: leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[5] = 1;
leds[7] = 1;
leds[8] = 1;
leds[10] = 1;
leds[11] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 1: leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[5] = 1;
leds[6] = 1;
leds[9] = 1;
leds[10] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 2: leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[5] = 1;
leds[6] = 1;
leds[7] = 1;
leds[8] = 1;
leds[9] = 1;
leds[10] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 3: leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[5] = 1;
leds[6] = 1;
leds[7] = 1;
leds[10] = 1;
leds[11] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 4: leds[0] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[5] = 1;
leds[6] = 1;
leds[7] = 1;
leds[8] = 1;
leds[9] = 1;
leds[10] = 1;
leds[11] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 5: leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[5] = 1;
leds[6] = 1;
leds[9] = 1;
leds[10] = 1;
leds[11] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 6: leds[0] = 1;
leds[4] = 1;
leds[5] = 1;
leds[6] = 1;
leds[7] = 1;
leds[8] = 1;
leds[11] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 7: leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[6] = 1;
leds[7] = 1;
leds[10] = 1;
leds[11] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 8: leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[5] = 1;
leds[7] = 1;
leds[8] = 1;
leds[9] = 1;
leds[10] = 1;
leds[11] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 9: leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[6] = 1;
leds[7] = 1;
leds[8] = 1;
leds[9] = 1;
leds[10] = 1;
leds[11] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 'G':leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[5] = 1;
leds[8] = 1;
leds[9] = 1;
leds[11] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 'A':leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[5] = 1;
leds[7] = 1;
leds[8] = 1;
leds[9] = 1;
leds[10] = 1;
leds[11] = 1;
leds[12] = 1;
leds[13] = 1;
leds[15] = 1;
setFont(leds);
break;
case 'M':leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[6] = 1;
leds[7] = 1;
leds[8] = 1;
leds[11] = 1;
leds[12] = 1;
leds[15] = 1;
setFont(leds);
break;
case 'E':leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[5] = 1;
leds[6] = 1;
leds[8] = 1;
leds[9] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 'O':leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[5] = 1;
leds[7] = 1;
leds[8] = 1;
leds[9] = 1;
leds[11] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 'V':leds[0] = 1;
leds[3] = 1;
leds[4] = 1;
leds[7] = 1;
leds[8] = 1;
leds[9] = 1;
leds[10] = 1;
leds[11] = 1;
leds[13] = 1;
leds[14] = 1;
setFont(leds);
break;
case 'R':leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[5] = 1;
leds[7] = 1;
leds[8] = 1;
leds[9] = 1;
leds[10] = 1;
leds[12] = 1;
leds[13] = 1;
leds[15] = 1;
setFont(leds);
break;
case '!':
leds[1] = 1;
leds[2] = 1;
leds[5] = 1;
leds[6] = 1;
leds[13] = 1;
leds[14] = 1;
setFont(leds);
break;
}
}
%%
Laden Sie den Programmcode in Ihre Arduino IDE. Laden Sie dieses Programm anschließend auf Ihren Arduino hoch. Jetzt können Sie loslegen mit dem Spielen!
**{{color text="((1)) Tastenfeld Kalibrieren" c="#00386a"}}**
Um das Tastenfeld während des Betriebs zu kalibrieren bestätigen Sie einmal den Taster. Dieser löst eine Interrupt Routine aus, welche die Kalibrierungsfunktion aufruft.
Bei der Kalibrierung leuchtet ein LED Quadrat auf, drücken Sie die entsprechende Taste so lange bis alle LEDs anfangen zu leuchten. Anschließend wird das nächste LED Quadrat aufleuchten und Sie drücken auch hier wieder die entsprechende Taste. Das wiederholen Sie für alle Tasten, das Tastenfeld ist jetzt kalibriert.
Die Kalibrierungsroutine misst den aktuellen Spannungswert der Widerstandskette. Dieser wird so lange gemessen bis ein „guter“ Durchschnitt entstanden ist. Mit einem guten Durchschnitt ist gemeint, dass er sich nicht mehr verändert. Dieser Vorgang dauert zwischen 1 und 2 Sekunden pro Taste.
Um möglichst viele Pins zu sparen werden Widerstände verwendet. Dadurch können Sie die angelegten 5V so verringern, dass am Ende 16 verschiedene Werte Ausgelesen werden können. Dadurch kann das Tastenfeld mit insgesamt 3 Pins betreiben werden, anstatt für jede der Tasten einen Pin belegen zu müssen.
**{{color text="((2)) Schritt" c="#00386a"}}**
Zuerst schließen Sie die PINs für A0 (Weiß), 5V (Schwarz) und GND (Rot) an.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/1.png" title="Abb. 3 - Tastenfeld / Schritt 1 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 3 - Tastenfeld / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Setzen Sie jetzt die 4x 1K Ω Widerstände wie abgebildet auf die Steckplatine.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/2.png" title="Abb. 4 - Tastenfeld / Schritt 2 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 4 - Tastenfeld / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Als nächstes setzen Sie die 3x 4.7K Ω Widerstände auf die Steckplatine.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/3.png" title="Abb. 5 - Tastenfeld / Schritt 3 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 5 - Tastenfeld / Schritt 3 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Die 4.7K Ω Widerstände werden nun mit Kabeln versehen, welche später zum Tastenfeld gehen sollen. Dabei enden diese immer 1 Pin versetzt in derselben Zeile. Damit sind die 4 „Eingänge“ des Tastenfeldes abgedeckt.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/4.png" title="Abb. 6 - Tastenfeld / Schritt 4 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 6 - Tastenfeld / Schritt 4 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Die Widerstände (4.7K Ω) werden jetzt mit den 5V Pin des Arduinos verbunden. Dazu verbinden Sie die Reihe mit den grauen Kabel mit dem des 5V Pins am oberen Ende der Steckplatine.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/5.png" title="Abb. 7 - Tastenfeld / Schritt 5 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 7 - Tastenfeld / Schritt 5 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Es folgt die Verkabelung der anderen 4 Widerstände. Die Kabel enden in derselben Zeile der Steckpatine wie die von den 4.7K Ω Widerständen.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/6.png" title="Abb. 8 - Tastenfeld / Schritt 6 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
**{{color text="((2)) Schritt" c="#00386a"}}**
Zuletzt folgt das anschließen des Tastenfeldes. Dazu werden die 8 Pins des Tastenfeldes der Reihenfolge nach zu den Enden der Kabel, welche zu den Widerständen führen, gesteckt. Bei dem vorliegenden Tastenfeld sind die ersten 4 Pins für die Spalten (von links nach rechts) und die anderen 4 für die Zeilen (von oben nach unten).
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/7.png" title="Abb. 9 - Tastenfeld / Schritt 7 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 9 - Tastenfeld / Schritt 7 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Damit ist die Schaltung für das Tastenfeld komplett und es ist einsatzbereit.
**{{color text="((1)) Anschluss der 8x8 LED Matrix" c="#00386a"}}**
Das Projekt nutzt eine 8x8 LED Matrix, auch hier sollen möglichst viele Pins des Arduinos eingespart werden. Deshalb wird die Matrix so geschaltet, dass immer 4 LEDs im Verbund anzusprechen sind. Das Ergebnis ist eine 4x4 LED Matrix welche komplett mit dem Tastenfeld bedient werden kann.
**{{color text="((2)) Schritt" c="#00386a"}}**
Zuerst verbinden Sie 3 weitere Steckplatinen mit der des Tastenfeldes. Dann setzen Sie die LED Matrix in die Mitte.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/8.png" title="Abb. 10 - LED Matrix / Schritt 1 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 10 - LED Matrix / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Damit die LEDs nicht durchbrennen müssen 220 Ω Widerstände verwendet werden, diese verbauen Sie wie es auf dem Bild zu sehen ist etwas versetzt.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/9.png" title="Abb. 11 - LED Matrix / Schritt 2 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 11 - LED Matrix / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Damit die LEDs nicht durchbrennen müssen 220 Ω Widerstände verwendet werden, diese verbauen Sie wie es auf dem Bild zu sehen ist etwas versetzt.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/10.png" title="Abb. 12 - LED Matrix / Schritt 3 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 12 - LED Matrix / Schritt 3 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Damit die LEDs nicht durchbrennen müssen 220 Ω Widerstände verwendet werden, diese verbauen Sie wie es auf dem Bild zu sehen ist etwas versetzt.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/11.png" title="Abb. 13 - LED Matrix / Schritt 4 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 13 - LED Matrix / Schritt 4 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Damit sind nun alle Kabel am Arduino, die zum Ansteuern der LED Matrix benötigt werden.
Jetzt folgt die Verkabelung das immer 4 LEDs gleichzeitig an sind. Da hierzu einige Kabel nötig sind, wird der Prozess etwas aufgeteilt. Im Folgenden werden die Pins der LED wie folgt mit Zahlen benannt:
|=|Obere Reihe (Rot)||1||2||3||4||5||6||7||8||
|=|Untere Reihe (Grün)||9||10||11||12||13||14||15||16||
Verbinden Sie nun die eben gelegten Kabel mit Pin 8 (Gelb), 13 (Blau), 15 (Rot) und 16 (Schwarz) der LED Matrix.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/12.png" title="Abb. 14 - LED Matrix / Schritt 5 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 14 - LED Matrix / Schritt 5 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Es folgt Pin 3 (Orange) und Pin 5 (Blau).
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/13.png" title="Abb. 15 - LED Matrix / Schritt 6 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 15 - LED Matrix / Schritt 6 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Die Pins 11 (Rosa), 12 (Ocker) sowie 14 (Orange) werden nun mit den 220 Ω Widerständen verbunden.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/14.png" title="Abb. 16 - LED Matrix / Schritt 7 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 16 - LED Matrix / Schritt 7 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Es wird nun die untere Reihe vervollständigt, dazu verbinden Sie Pin 9 (Weiß) sowie Pin 10 (Rot).
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/15.png" title="Abb. 17 - LED Matrix / Schritt 8 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 17 - LED Matrix / Schritt 8 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Pin 6 (Grün) sowie Pin 7 (Weiß) folgen als nächstes. Diese werden wieder mit den 220 Ω Widerständen verbunden.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/16.png" title="Abb. 18 - LED Matrix / Schritt 9 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 18 - LED Matrix / Schritt 9 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Es folgt Pin 1 (Ocker) sowie Pin 2 (Weiß) welche auch mit den 220 Ω Widerständen verbunden werden.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/17.png" title="Abb. 19 - LED Matrix / Schritt 10 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 19 - LED Matrix / Schritt 10 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Zuletzt fehlt noch Pin 4 (Grau) welchen Sie nun verbinden.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/18.png" title="Abb. 20 - LED Matrix / Schritt 11 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 20 - LED Matrix / Schritt 11 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Damit wäre die Verkabelung für die LED Matrix fertig. Hier noch einmal eine Text Beschreibung der Verbindungen:
Arduino Pin 13 -> LED Pin 3 / 8
Arduino Pin 12 -> LED Pin 5 / 16
Arduino Pin ~11 -> LED Pin 9 / 15
Arduino Pin ~10 -> LED Pin 10 / 13
Arduino Pin ~9 -> 220Ω Widerstand -> LED Pin 4 / 11
Arduino Pin 8 -> 220Ω Widerstand -> LED Pin 7 / 12
Arduino Pin 7 -> 220Ω Widerstand -> LED Pin 6 / 14
Arduino Pin ~6 -> 220Ω Widerstand -> LED Pin 1 / 2
**{{color text="((1)) Anschluss des Summers" c="#00386a"}}**
Um Ton abspielen zu können, wird ein Summer benötigt. Dieser wird nun eingebaut.
**{{color text="((2)) Schritt" c="#00386a"}}**
Zuerst legen Sie Masse (GND) an die oberste Steckplatine an.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/19.png" title="Abb. 21 - Summer / Schritt 1 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 21 - Summer / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Nun folgt der Summer, welchen Sie an eine freie Stelle auf die obere Steckplatine setzen.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/20.png" title="Abb. 22 - Summer / Schritt 2 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 22 - Summer / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Als nächstes schließen Sie Pin ~5 (Lila) des Arduino an den Summer.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/21.png" title="Abb. 23 - Summer / Schritt 3 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 23 - Summer / Schritt 3 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Zuletzt verbinden Sie den Summer noch mit Masse (GND).
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/22.png" title="Abb. 24 - Summer / Schritt 4 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 24 - Summer / Schritt 4 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Somit ist der Summer eingebaut und einsatzbereit.
**{{color text="((1)) Anschluss des Potentiometers für den „Random Generator“ Seed" c="#00386a"}}**
Da der Arduino selber keine Zufallszahlen generieren kann, hat er eine Liste mit Zahlen welche er der Reihenfolge nach ausgibt. Damit nicht immer dieselbe Reihenfolge im Spiel vorkommt, wird der Random Seed mit Hilfe eines Potentiometers verändert. Dabei wird der Anfang der „Random“ Liste auf einen Wert gesetzt, welchen durch den Widerstand bestimmt wird.
**{{color text="((2)) Schritt" c="#00386a"}}**
Platzieren Sie das Potentiometer auf eine freie Stelle der Steckplatine.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/23.png" title="Abb. 25 - Potentiometer / Schritt 1 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 25 - Potentiometer / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Versorgen Sie die obere Steckplatine mit 5V indem Sie ein Kabel nach oben legen.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/24.png" title="Abb. 26 - Potentiometer / Schritt 2 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 26 - Potentiometer / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Schließen Sie nun das Potentiometer an 5V, sowie GND an.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/25.png" title="Abb. 27 - Potentiometer / Schritt 3 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 27 - Potentiometer / Schritt 3 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Zuletzt schließen Sie noch das Potentiometer an den Arduino Pin A1.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/26.png" title="Abb. 28 - Potentiometer / Schritt 4 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 28 - Potentiometer / Schritt 4 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Nun können Sie mit dem Potentiometer den Verlauf des Spieles ändern.
**{{color text="((1)) Anschluss des Taster zum Kalibrieren des Tastenfeldes“ Seed" c="#00386a"}}**
Da das Tastenfeld über Widerstände ausgelesen wird, können sich die Werte leicht verändern. Um das Tastenfeld im Betrieb zu kalibrieren wird ein Taster eingebaut der eine Kalibrierungsroutine startet.
**{{color text="((2)) Schritt" c="#00386a"}}**
Zuerst setzen Sie den Taster auf eine freie Fläche auf der oberen Steckplatine.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/27.png" title="Abb. 29 - Taster / Schritt 1 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 29 - Taster / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Den Taster verbinden Sie nun mit 5V (Orange) sowie Pin 2 (Grau) des Arduinos.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/28.png" title="Abb. 30 - Taster / Schritt 2 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 30 - Taster / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Der Aufbau des Spiels ist nun komplett.
**{{color text="((1)) Programmcode Seed" c="#00386a"}}**
%%(language-ref)
/*
* Matrix - Dokumentation
* 13 schaltet Reihe 1
* 12 schaltet Reihe 2
* 11 schaltet Reihe 3
* 10 schaltet Reihe 4
* 9 schaltet Spalte 1
* 8 schaltet Spalte 2
* 7 schaltet Spalte 3
* 6 schaltet Spalte 4
*/
//Key Matrix
int button[16] = {1022, 697, 527, 424, 510, 413, 347, 299, 340, 293, 258, 231, 254, 227, 208, 188};
int keyInput = A0;
int offset = 2;
//Random Generator
int randomInput = A1;
//Interrupt-"Switch"
volatile bool keyCalibrateSwitch = false;
struct Node;
struct Node {
int value;
struct Node *next;
};
void clearList(struct Node *head) {
struct Node *current = head;
struct Node *previous = NULL;
bool stop = false;
while(!stop) {
if(current->next != NULL) {
previous = current;
current = current->next;
}
else {
if(previous != NULL) {
previous->next = NULL;
previous = NULL;
}
else {
stop = true;
}
free(current);
}
}
}
void switchKeyBool() {
keyCalibrateSwitch = true;
}
void setup() {
Serial.begin(9600);
pinMode(keyInput, INPUT);
pinMode(3, INPUT);
digitalWrite(3, HIGH);
attachInterrupt(digitalPinToInterrupt(2), switchKeyBool, FALLING);
DDRB = B111111;
DDRD = B11100000;
for(int i = 0; i < 3; i++){
setMatrixLights(17);
delay(250);
setMatrixLights(0);
delay(250);
}
//keyCalibrate();
}
void loop() {
bool stop = false;
Serial.print("KeyCalibrateSwitch: ");
Serial.println(keyCalibrateSwitch);
if(keyCalibrateSwitch == true){
keyCalibrateSwitch == false;
keyCalibrate();
getKeyValue();
}
while(!stop) {
for(int i = 1; i <= 16; ++i) {
setMatrixLights(i);
delay(100);
int value = analogRead(keyInput);
for(int i = 0; i < 16; ++i) {
if(value != 0 && value <= button[i]+offset && value >= button[i]-offset) {
tone(5, 3000/(i+1), 100);
stop = true;
break;
}
}
if(stop) {
break;
}
setMatrixLights(0);
}
}-
writeFont(3,50);
writeFont(2,50);
writeFont(1,50);
writeFont('-',75);
pacmanStartSound();
struct Node *firstNode = NULL;
struct Node *latestNode = NULL;
//int counter = 0;
setSeed();
Serial.println("Test");
while(true) {
Serial.println("Test2");
//Read Random Seed
int randomLED = random(1, 17);
Serial.println("Test3");
if(firstNode == NULL) {
//counter = 0;
firstNode = (struct Node *) malloc(sizeof(struct Node));
firstNode->value = randomLED;
firstNode->next = NULL;
latestNode = firstNode;
}
else {
//++counter;
latestNode->next = (struct Node *) malloc(sizeof(struct Node));
latestNode = latestNode->next;
latestNode->value = randomLED;
latestNode->next = NULL;
}
//Set LED on Matrix (Complete Nodes)
Serial.println("New Number:");
Serial.println(latestNode->value, DEC);
struct Node *temp = firstNode;
while(true) {
tone(5, 3000/temp->value, 100);
writePixel(temp->value, 600);
if(temp->next != NULL) {
Serial.println(temp->value);
temp = temp->next;
}
else {
break;
}
delay(100);
}
//Check key streak
struct Node *checkNode = firstNode;
bool wrongButton = false;
while(true) {
//Read Key
Serial.println("Input Key:");
int inputKey = getKeyValue();
Serial.println(inputKey, DEC);
if(checkNode->value == inputKey) {
Serial.println("Hit!");
if(checkNode->next != NULL) {
checkNode = checkNode->next;
}
else {
break;
}
}
else {
Serial.println("Miss!");
for(int i = 0; i < 5; ++i) {
tone(5, 3000/checkNode->value, 100);
setMatrixLights(checkNode->value);
delay(250);
setMatrixLights(0);
delay(250);
}
gameOverSound();
gameOver();
for(int i = 0; i < 4; ++i) {
setMatrixLights(17);
delay(250);
setMatrixLights(0);
delay(250);
}
Serial.println("==============================");
Serial.println("Start New Game!");
Serial.println("==============================");
wrongButton = true;
break;
}
}
delay(500);
if(wrongButton) {
break;
}
}
//clearList(firstNode);
firstNode = NULL;
latestNode = NULL;
}
void gameOverSound() {
beep(523, 125);
beep(554, 125);
beep(587, 125);
delay(200);
beep(494, 125);
beep(698, 125);
delay(50);
beep(698, 125);
beep(698, 125);
beep(659, 125);
beep(587, 125);
beep(523, 125);
beep(330, 125);
delay(50);
beep(196, 125);
beep(330, 125);
beep(262, 125);
}
void pacmanStartSound(){
beep(493, 125);
beep(987, 125);
beep(739, 125);
beep(622, 125);
delay(50);
//B5/F#5/D#5
beep(987, 125);
beep(739, 125);
beep(622, 125);
delay(50);
//C5/C6/G5/E5
beep(523, 125);
beep(1046,125);
beep(783, 125);
beep(659, 125);
delay(50);
//C6/G5/E5
beep(1046,125);
beep(783, 125);
beep(659, 125);
delay(50);
//B4/B5/F#5/D#5
beep(493, 125);
beep(987, 125);
beep(739, 125);
beep(622, 125);
delay(50);
//B5/F#5/D#5
beep(987, 125);
beep(739, 125);
beep(622, 125);
//D#5/E5/F5
beep(622, 125);
beep(659, 125);
beep(698, 125);
//F5/F#5/G5
beep(698, 125);
beep(739, 125);
beep(783, 125);
//G5/G#5/A5
beep(783, 125);
beep(830, 125);
beep(880, 125);
//A5/A#5/B5
beep(880, 125);
beep(932, 125);
beep(987, 125);
delay(150);
}
void beep(int fr, int dur){
tone(5, fr, dur);
delay(dur);
}
void gameOver() {
writeFont('G',50);
writeFont('A',50);
writeFont('M',50);
writeFont('E',50);
writeFont('-',50);
writeFont('O',50);
writeFont('V',50);
writeFont('E',50);
writeFont('R',50);
writeFont('!',50);
writeFont('-',150);
writeFont('!',50);
writeFont('-',150);
writeFont('!',50);
writeFont('-',150);
}
void setSeed() {
long currentSeed = analogRead(randomInput);
Serial.println(currentSeed);
randomSeed(currentSeed);
}
int getKeyValue() {
while(true) {
int value = analogRead(keyInput);
for(int i = 0; i < 16; ++i) {
if(value != 0 && value <= button[i]+offset && value >= button[i]-offset) {
tone(5, 3000/(i+1), 100);
setMatrixLights(i+1);
while(true) {
value = analogRead(keyInput);
if(value == 0) {
setMatrixLights(0);
return i+1;
}
}
}
}
}
}
int keyAnalogCalc() {
unsigned long sum = 0;
int last = 0;
int counter = 0;
int counter2 = 0;
while(true) {
int value = analogRead(keyInput);
if(value != 0) {
sum += value;
++counter;
if((sum/counter) == last) {
if(counter % 1000 == 0) {
Serial.print(".");
}
++counter2;
}
else {
last = (sum/counter);
counter2 = 0;
}
if(counter2 == 7500) {
break;
}
}
}
Serial.println("");
Serial.println("Stop Pressing the button!");
setMatrixLights(17);
while(true) {
int value = analogRead(keyInput);
if(value == 0) {
break;
}
}
return sum/counter;
}
void keyCalibrate() {
int counter;
int sum;
Serial.println("Key Calibration");
for(int i = 0; i < 16; ++i) {
Serial.print("Keep Pressing ");
Serial.print(i+1);
setMatrixLights(i+1);
button[i] = keyAnalogCalc();
Serial.print("Button ");
Serial.print(i+1);
Serial.print(" Value: ");
Serial.println(button[i], DEC);
setMatrixLights(0);
}
delay(500);
for(int i = 1; i <= 16; ++i) {
setMatrixLights(i);
delay(100);
}
setMatrixLights(17);
delay(250);
writeFont('O', 250);
Serial.print("Set Offset (Default 2): ");
offset = getKeyValue();
delay(250);
Serial.println(offset);
Serial.println("Calibration done!");
for(int i = 1; i <= offset; ++i) {
setMatrixLights(17);
delay(250);
setMatrixLights(0);
delay(250);
}
}
void setMatrixLights(int seg){
switch(seg){
case 0: delayMicroseconds(500);
PORTB = 0x0;
PORTD = 0x0;
break;
case 1: PORTB = B100001;
PORTD = B11000000;
break;
case 2: PORTB = B100010;
PORTD = B11000000;
break;
case 3: PORTB = B100011;
PORTD = B01000000;
break;
case 4: PORTB = B100011;
PORTD = B10000000;
break;
case 5: PORTB = B010001;
PORTD = B11000000;
break;
case 6: PORTB = B010010;
PORTD = B11000000;
break;
case 7: PORTB = B010011;
PORTD = B01000000;
break;
case 8: PORTB = B010011;
PORTD = B10000000;
break;
case 9: PORTB = B001001;
PORTD = B11000000;
break;
case 10: PORTB = B001010;
PORTD = B11000000;
break;
case 11: PORTB = B001011;
PORTD = B01000000;
break;
case 12: PORTB = B001011;
PORTD = B10000000;
break;
case 13: PORTB = B000101;
PORTD = B11000000;
break;
case 14: PORTB = B000110;
PORTD = B11000000;
break;
case 15: PORTB = B000111;
PORTD = B01000000;
break;
case 16: PORTB = B000111;
PORTD = B10000000;
break;
case 17: PORTB = B111100;
PORTD = B00000000;
break;
}
}
void writeFont(int number, unsigned long timeValue) {
for(unsigned long i = 0; i < timeValue; ++i) {
font(number);
delay(1);
}
}
void writePixel(int pixel, int timeValue) {
setMatrixLights(pixel);
delay(timeValue);
setMatrixLights(0);
}
void setFont(bool ledStatus[16]){
for(int i = 0; i < 16; i++){
if(ledStatus[i]){
setMatrixLights(i+1);
setMatrixLights(0);
}
}
}
void font(int number){
bool leds[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
switch(number){
case '-':
setFont(leds);
break;
case 0: leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[5] = 1;
leds[7] = 1;
leds[8] = 1;
leds[10] = 1;
leds[11] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 1: leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[5] = 1;
leds[6] = 1;
leds[9] = 1;
leds[10] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 2: leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[5] = 1;
leds[6] = 1;
leds[7] = 1;
leds[8] = 1;
leds[9] = 1;
leds[10] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 3: leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[5] = 1;
leds[6] = 1;
leds[7] = 1;
leds[10] = 1;
leds[11] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 4: leds[0] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[5] = 1;
leds[6] = 1;
leds[7] = 1;
leds[8] = 1;
leds[9] = 1;
leds[10] = 1;
leds[11] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 5: leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[5] = 1;
leds[6] = 1;
leds[9] = 1;
leds[10] = 1;
leds[11] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 6: leds[0] = 1;
leds[4] = 1;
leds[5] = 1;
leds[6] = 1;
leds[7] = 1;
leds[8] = 1;
leds[11] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 7: leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[6] = 1;
leds[7] = 1;
leds[10] = 1;
leds[11] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 8: leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[5] = 1;
leds[7] = 1;
leds[8] = 1;
leds[9] = 1;
leds[10] = 1;
leds[11] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 9: leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[6] = 1;
leds[7] = 1;
leds[8] = 1;
leds[9] = 1;
leds[10] = 1;
leds[11] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 'G':leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[5] = 1;
leds[8] = 1;
leds[9] = 1;
leds[11] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 'A':leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[5] = 1;
leds[7] = 1;
leds[8] = 1;
leds[9] = 1;
leds[10] = 1;
leds[11] = 1;
leds[12] = 1;
leds[13] = 1;
leds[15] = 1;
setFont(leds);
break;
case 'M':leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[6] = 1;
leds[7] = 1;
leds[8] = 1;
leds[11] = 1;
leds[12] = 1;
leds[15] = 1;
setFont(leds);
break;
case 'E':leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[5] = 1;
leds[6] = 1;
leds[8] = 1;
leds[9] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 'O':leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[5] = 1;
leds[7] = 1;
leds[8] = 1;
leds[9] = 1;
leds[11] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 'V':leds[0] = 1;
leds[3] = 1;
leds[4] = 1;
leds[7] = 1;
leds[8] = 1;
leds[9] = 1;
leds[10] = 1;
leds[11] = 1;
leds[13] = 1;
leds[14] = 1;
setFont(leds);
break;
case 'R':leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[5] = 1;
leds[7] = 1;
leds[8] = 1;
leds[9] = 1;
leds[10] = 1;
leds[12] = 1;
leds[13] = 1;
leds[15] = 1;
setFont(leds);
break;
case '!':
leds[1] = 1;
leds[2] = 1;
leds[5] = 1;
leds[6] = 1;
leds[13] = 1;
leds[14] = 1;
setFont(leds);
break;
}
}
%%
Laden Sie den Programmcode in Ihre Arduino IDE. Laden Sie dieses Programm anschließend auf Ihren Arduino hoch. Jetzt können Sie loslegen mit dem Spielen!
**{{color text="((1)) Tastenfeld Kalibrieren" c="#00386a"}}**
Um das Tastenfeld während des Betriebs zu kalibrieren bestätigen Sie einmal den Taster. Dieser löst eine Interrupt Routine aus, welche die Kalibrierungsfunktion aufruft.
Bei der Kalibrierung leuchtet ein LED Quadrat auf, drücken Sie die entsprechende Taste so lange bis alle LEDs anfangen zu leuchten. Anschließend wird das nächste LED Quadrat aufleuchten und Sie drücken auch hier wieder die entsprechende Taste. Das wiederholen Sie für alle Tasten, das Tastenfeld ist jetzt kalibriert.
Die Kalibrierungsroutine misst den aktuellen Spannungswert der Widerstandskette. Dieser wird so lange gemessen bis ein „guter“ Durchschnitt entstanden ist. Mit einem guten Durchschnitt ist gemeint, dass er sich nicht mehr verändert. Dieser Vorgang dauert zwischen 1 und 2 Sekunden pro Taste.
Deletions:
Um möglichst viele Pins zu sparen werden Widerstände verwendet. Dadurch können Sie die angelegten 5V so verringern, dass am Ende 16 verschiedene Werte Ausgelesen werden können. Dadurch kann das Tastenfeld mit insgesamt 3 Pins betreiben werden, anstatt für jede der Tasten einen Pin belegen zu müssen.
Deletions:
Zuerst schließen Sie die PINs für A0 (Weiß), 5V (Schwarz) und GND (Rot) an.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/1.png" title="Abb. 3 - Tastenfeld / Schritt 1 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 3 - Tastenfeld / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Setzen Sie jetzt die 4x 1K Ω Widerstände wie abgebildet auf die Steckplatine.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/2.png" title="Abb. 4 - Tastenfeld / Schritt 2 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 4 - Tastenfeld / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Als nächstes setzen Sie die 3x 4.7K Ω Widerstände auf die Steckplatine.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/3.png" title="Abb. 5 - Tastenfeld / Schritt 3 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 5 - Tastenfeld / Schritt 3 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Die 4.7K Ω Widerstände werden nun mit Kabeln versehen, welche später zum Tastenfeld gehen sollen. Dabei enden diese immer 1 Pin versetzt in derselben Zeile. Damit sind die 4 „Eingänge“ des Tastenfeldes abgedeckt.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/4.png" title="Abb. 6 - Tastenfeld / Schritt 4 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 6 - Tastenfeld / Schritt 4 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Die Widerstände (4.7K Ω) werden jetzt mit den 5V Pin des Arduinos verbunden. Dazu verbinden Sie die Reihe mit den grauen Kabel mit dem des 5V Pins am oberen Ende der Steckplatine.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/5.png" title="Abb. 7 - Tastenfeld / Schritt 5 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 7 - Tastenfeld / Schritt 5 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
**{{color text="((2)) Schritt" c="#00386a"}}**
Es folgt die Verkabelung der anderen 4 Widerstände. Die Kabel enden in derselben Zeile der Steckpatine wie die von den 4.7K Ω Widerständen.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/6.png" title="Abb. 8 - Tastenfeld / Schritt 6 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
**{{color text="((2)) Schritt" c="#00386a"}}**
Zuletzt folgt das anschließen des Tastenfeldes. Dazu werden die 8 Pins des Tastenfeldes der Reihenfolge nach zu den Enden der Kabel, welche zu den Widerständen führen, gesteckt. Bei dem vorliegenden Tastenfeld sind die ersten 4 Pins für die Spalten (von links nach rechts) und die anderen 4 für die Zeilen (von oben nach unten).
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/7.png" title="Abb. 9 - Tastenfeld / Schritt 7 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 9 - Tastenfeld / Schritt 7 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Damit ist die Schaltung für das Tastenfeld komplett und es ist einsatzbereit.
Deletions:
Das Projekt nutzt eine 8x8 LED Matrix, auch hier sollen möglichst viele Pins des Arduinos eingespart werden. Deshalb wird die Matrix so geschaltet, dass immer 4 LEDs im Verbund anzusprechen sind. Das Ergebnis ist eine 4x4 LED Matrix welche komplett mit dem Tastenfeld bedient werden kann.
Zuerst verbinden Sie 3 weitere Steckplatinen mit der des Tastenfeldes. Dann setzen Sie die LED Matrix in die Mitte.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/8.png" title="Abb. 10 - LED Matrix / Schritt 1 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 10 - LED Matrix / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Damit die LEDs nicht durchbrennen müssen 220 Ω Widerstände verwendet werden, diese verbauen Sie wie es auf dem Bild zu sehen ist etwas versetzt.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/9.png" title="Abb. 11 - LED Matrix / Schritt 2 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 11 - LED Matrix / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Damit die LEDs nicht durchbrennen müssen 220 Ω Widerstände verwendet werden, diese verbauen Sie wie es auf dem Bild zu sehen ist etwas versetzt.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/10.png" title="Abb. 12 - LED Matrix / Schritt 3 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 12 - LED Matrix / Schritt 3 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Damit die LEDs nicht durchbrennen müssen 220 Ω Widerstände verwendet werden, diese verbauen Sie wie es auf dem Bild zu sehen ist etwas versetzt.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/11.png" title="Abb. 13 - LED Matrix / Schritt 4 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 13 - LED Matrix / Schritt 4 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Damit sind nun alle Kabel am Arduino, die zum Ansteuern der LED Matrix benötigt werden.
Jetzt folgt die Verkabelung das immer 4 LEDs gleichzeitig an sind. Da hierzu einige Kabel nötig sind, wird der Prozess etwas aufgeteilt. Im Folgenden werden die Pins der LED wie folgt mit Zahlen benannt:
|=|Obere Reihe (Rot)||1||2||3||4||5||6||7||8||
|=|Untere Reihe (Grün)||9||10||11||12||13||14||15||16||
Verbinden Sie nun die eben gelegten Kabel mit Pin 8 (Gelb), 13 (Blau), 15 (Rot) und 16 (Schwarz) der LED Matrix.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/12.png" title="Abb. 14 - LED Matrix / Schritt 5 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 14 - LED Matrix / Schritt 5 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Es folgt Pin 3 (Orange) und Pin 5 (Blau).
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/13.png" title="Abb. 15 - LED Matrix / Schritt 6 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 15 - LED Matrix / Schritt 6 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Die Pins 11 (Rosa), 12 (Ocker) sowie 14 (Orange) werden nun mit den 220 Ω Widerständen verbunden.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/14.png" title="Abb. 16 - LED Matrix / Schritt 7 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 16 - LED Matrix / Schritt 7 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Es wird nun die untere Reihe vervollständigt, dazu verbinden Sie Pin 9 (Weiß) sowie Pin 10 (Rot).
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/15.png" title="Abb. 17 - LED Matrix / Schritt 8 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 17 - LED Matrix / Schritt 8 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Pin 6 (Grün) sowie Pin 7 (Weiß) folgen als nächstes. Diese werden wieder mit den 220 Ω Widerständen verbunden.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/16.png" title="Abb. 18 - LED Matrix / Schritt 9 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 18 - LED Matrix / Schritt 9 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Es folgt Pin 1 (Ocker) sowie Pin 2 (Weiß) welche auch mit den 220 Ω Widerständen verbunden werden.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/17.png" title="Abb. 19 - LED Matrix / Schritt 10 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 19 - LED Matrix / Schritt 10 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Zuletzt fehlt noch Pin 4 (Grau) welchen Sie nun verbinden.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/18.png" title="Abb. 20 - LED Matrix / Schritt 11 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 20 - LED Matrix / Schritt 11 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Damit wäre die Verkabelung für die LED Matrix fertig. Hier noch einmal eine Text Beschreibung der Verbindungen:
Arduino Pin 13 -> LED Pin 3 / 8
Arduino Pin 12 -> LED Pin 5 / 16
Arduino Pin ~11 -> LED Pin 9 / 15
Arduino Pin ~10 -> LED Pin 10 / 13
Arduino Pin ~9 -> 220Ω Widerstand -> LED Pin 4 / 11
Arduino Pin 8 -> 220Ω Widerstand -> LED Pin 7 / 12
Arduino Pin 7 -> 220Ω Widerstand -> LED Pin 6 / 14
Arduino Pin ~6 -> 220Ω Widerstand -> LED Pin 1 / 2
**{{color text="((1)) Anschluss des Summers" c="#00386a"}}**
Um Ton abspielen zu können, wird ein Summer benötigt. Dieser wird nun eingebaut.
Zuerst legen Sie Masse (GND) an die oberste Steckplatine an.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/19.png" title="Abb. 21 - Summer / Schritt 1 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 21 - Summer / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Nun folgt der Summer, welchen Sie an eine freie Stelle auf die obere Steckplatine setzen.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/20.png" title="Abb. 22 - Summer / Schritt 2 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 22 - Summer / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Als nächstes schließen Sie Pin ~5 (Lila) des Arduino an den Summer.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/21.png" title="Abb. 23 - Summer / Schritt 3 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 23 - Summer / Schritt 3 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Zuletzt verbinden Sie den Summer noch mit Masse (GND).
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/22.png" title="Abb. 24 - Summer / Schritt 4 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 24 - Summer / Schritt 4 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Somit ist der Summer eingebaut und einsatzbereit.
**{{color text="((1)) Anschluss des Potentiometers für den „Random Generator“ Seed" c="#00386a"}}**
Da der Arduino selber keine Zufallszahlen generieren kann, hat er eine Liste mit Zahlen welche er der Reihenfolge nach ausgibt. Damit nicht immer dieselbe Reihenfolge im Spiel vorkommt, wird der Random Seed mit Hilfe eines Potentiometers verändert. Dabei wird der Anfang der „Random“ Liste auf einen Wert gesetzt, welchen durch den Widerstand bestimmt wird.
Platzieren Sie das Potentiometer auf eine freie Stelle der Steckplatine.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/23.png" title="Abb. 25 - Potentiometer / Schritt 1 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 25 - Potentiometer / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Versorgen Sie die obere Steckplatine mit 5V indem Sie ein Kabel nach oben legen.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/24.png" title="Abb. 26 - Potentiometer / Schritt 2 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 26 - Potentiometer / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Schließen Sie nun das Potentiometer an 5V, sowie GND an.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/25.png" title="Abb. 27 - Potentiometer / Schritt 3 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 27 - Potentiometer / Schritt 3 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Zuletzt schließen Sie noch das Potentiometer an den Arduino Pin A1.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/26.png" title="Abb. 28 - Potentiometer / Schritt 4 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 28 - Potentiometer / Schritt 4 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Nun können Sie mit dem Potentiometer den Verlauf des Spieles ändern.
**{{color text="((1)) Anschluss des Taster zum Kalibrieren des Tastenfeldes“ Seed" c="#00386a"}}**
Da das Tastenfeld über Widerstände ausgelesen wird, können sich die Werte leicht verändern. Um das Tastenfeld im Betrieb zu kalibrieren wird ein Taster eingebaut der eine Kalibrierungsroutine startet.
Zuerst setzen Sie den Taster auf eine freie Fläche auf der oberen Steckplatine.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/27.png" title="Abb. 29 - Taster / Schritt 1 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 29 - Taster / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Den Taster verbinden Sie nun mit 5V (Orange) sowie Pin 2 (Grau) des Arduinos.
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/28.png" title="Abb. 30 - Taster / Schritt 2 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 30 - Taster / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Der Aufbau des Spiels ist nun komplett.
**{{color text="((1)) Programmcode Seed" c="#00386a"}}**
%%(language-ref)
/*
* Matrix - Dokumentation
* 13 schaltet Reihe 1
* 12 schaltet Reihe 2
* 11 schaltet Reihe 3
* 10 schaltet Reihe 4
* 9 schaltet Spalte 1
* 8 schaltet Spalte 2
* 7 schaltet Spalte 3
* 6 schaltet Spalte 4
*/
//Key Matrix
int button[16] = {1022, 697, 527, 424, 510, 413, 347, 299, 340, 293, 258, 231, 254, 227, 208, 188};
int keyInput = A0;
int offset = 2;
//Random Generator
int randomInput = A1;
//Interrupt-"Switch"
volatile bool keyCalibrateSwitch = false;
struct Node;
struct Node {
int value;
struct Node *next;
};
void clearList(struct Node *head) {
struct Node *current = head;
struct Node *previous = NULL;
bool stop = false;
while(!stop) {
if(current->next != NULL) {
previous = current;
current = current->next;
}
else {
if(previous != NULL) {
previous->next = NULL;
previous = NULL;
}
else {
stop = true;
}
free(current);
}
}
}
void switchKeyBool() {
keyCalibrateSwitch = true;
}
void setup() {
Serial.begin(9600);
pinMode(keyInput, INPUT);
pinMode(3, INPUT);
digitalWrite(3, HIGH);
attachInterrupt(digitalPinToInterrupt(2), switchKeyBool, FALLING);
DDRB = B111111;
DDRD = B11100000;
for(int i = 0; i < 3; i++){
setMatrixLights(17);
delay(250);
setMatrixLights(0);
delay(250);
}
//keyCalibrate();
}
void loop() {
bool stop = false;
Serial.print("KeyCalibrateSwitch: ");
Serial.println(keyCalibrateSwitch);
if(keyCalibrateSwitch == true){
keyCalibrateSwitch == false;
keyCalibrate();
getKeyValue();
}
while(!stop) {
for(int i = 1; i <= 16; ++i) {
setMatrixLights(i);
delay(100);
int value = analogRead(keyInput);
for(int i = 0; i < 16; ++i) {
if(value != 0 && value <= button[i]+offset && value >= button[i]-offset) {
tone(5, 3000/(i+1), 100);
stop = true;
break;
}
}
if(stop) {
break;
}
setMatrixLights(0);
}
}-
writeFont(3,50);
writeFont(2,50);
writeFont(1,50);
writeFont('-',75);
pacmanStartSound();
struct Node *firstNode = NULL;
struct Node *latestNode = NULL;
//int counter = 0;
setSeed();
Serial.println("Test");
while(true) {
Serial.println("Test2");
//Read Random Seed
int randomLED = random(1, 17);
Serial.println("Test3");
if(firstNode == NULL) {
//counter = 0;
firstNode = (struct Node *) malloc(sizeof(struct Node));
firstNode->value = randomLED;
firstNode->next = NULL;
latestNode = firstNode;
}
else {
//++counter;
latestNode->next = (struct Node *) malloc(sizeof(struct Node));
latestNode = latestNode->next;
latestNode->value = randomLED;
latestNode->next = NULL;
}
//Set LED on Matrix (Complete Nodes)
Serial.println("New Number:");
Serial.println(latestNode->value, DEC);
struct Node *temp = firstNode;
while(true) {
tone(5, 3000/temp->value, 100);
writePixel(temp->value, 600);
if(temp->next != NULL) {
Serial.println(temp->value);
temp = temp->next;
}
else {
break;
}
delay(100);
}
//Check key streak
struct Node *checkNode = firstNode;
bool wrongButton = false;
while(true) {
//Read Key
Serial.println("Input Key:");
int inputKey = getKeyValue();
Serial.println(inputKey, DEC);
if(checkNode->value == inputKey) {
Serial.println("Hit!");
if(checkNode->next != NULL) {
checkNode = checkNode->next;
}
else {
break;
}
}
else {
Serial.println("Miss!");
for(int i = 0; i < 5; ++i) {
tone(5, 3000/checkNode->value, 100);
setMatrixLights(checkNode->value);
delay(250);
setMatrixLights(0);
delay(250);
}
gameOverSound();
gameOver();
for(int i = 0; i < 4; ++i) {
setMatrixLights(17);
delay(250);
setMatrixLights(0);
delay(250);
}
Serial.println("==============================");
Serial.println("Start New Game!");
Serial.println("==============================");
wrongButton = true;
break;
}
}
delay(500);
if(wrongButton) {
break;
}
}
//clearList(firstNode);
firstNode = NULL;
latestNode = NULL;
}
void gameOverSound() {
beep(523, 125);
beep(554, 125);
beep(587, 125);
delay(200);
beep(494, 125);
beep(698, 125);
delay(50);
beep(698, 125);
beep(698, 125);
beep(659, 125);
beep(587, 125);
beep(523, 125);
beep(330, 125);
delay(50);
beep(196, 125);
beep(330, 125);
beep(262, 125);
}
void pacmanStartSound(){
beep(493, 125);
beep(987, 125);
beep(739, 125);
beep(622, 125);
delay(50);
//B5/F#5/D#5
beep(987, 125);
beep(739, 125);
beep(622, 125);
delay(50);
//C5/C6/G5/E5
beep(523, 125);
beep(1046,125);
beep(783, 125);
beep(659, 125);
delay(50);
//C6/G5/E5
beep(1046,125);
beep(783, 125);
beep(659, 125);
delay(50);
//B4/B5/F#5/D#5
beep(493, 125);
beep(987, 125);
beep(739, 125);
beep(622, 125);
delay(50);
//B5/F#5/D#5
beep(987, 125);
beep(739, 125);
beep(622, 125);
//D#5/E5/F5
beep(622, 125);
beep(659, 125);
beep(698, 125);
//F5/F#5/G5
beep(698, 125);
beep(739, 125);
beep(783, 125);
//G5/G#5/A5
beep(783, 125);
beep(830, 125);
beep(880, 125);
//A5/A#5/B5
beep(880, 125);
beep(932, 125);
beep(987, 125);
delay(150);
}
void beep(int fr, int dur){
tone(5, fr, dur);
delay(dur);
}
void gameOver() {
writeFont('G',50);
writeFont('A',50);
writeFont('M',50);
writeFont('E',50);
writeFont('-',50);
writeFont('O',50);
writeFont('V',50);
writeFont('E',50);
writeFont('R',50);
writeFont('!',50);
writeFont('-',150);
writeFont('!',50);
writeFont('-',150);
writeFont('!',50);
writeFont('-',150);
}
void setSeed() {
long currentSeed = analogRead(randomInput);
Serial.println(currentSeed);
randomSeed(currentSeed);
}
int getKeyValue() {
while(true) {
int value = analogRead(keyInput);
for(int i = 0; i < 16; ++i) {
if(value != 0 && value <= button[i]+offset && value >= button[i]-offset) {
tone(5, 3000/(i+1), 100);
setMatrixLights(i+1);
while(true) {
value = analogRead(keyInput);
if(value == 0) {
setMatrixLights(0);
return i+1;
}
}
}
}
}
}
int keyAnalogCalc() {
unsigned long sum = 0;
int last = 0;
int counter = 0;
int counter2 = 0;
while(true) {
int value = analogRead(keyInput);
if(value != 0) {
sum += value;
++counter;
if((sum/counter) == last) {
if(counter % 1000 == 0) {
Serial.print(".");
}
++counter2;
}
else {
last = (sum/counter);
counter2 = 0;
}
if(counter2 == 7500) {
break;
}
}
}
Serial.println("");
Serial.println("Stop Pressing the button!");
setMatrixLights(17);
while(true) {
int value = analogRead(keyInput);
if(value == 0) {
break;
}
}
return sum/counter;
}
void keyCalibrate() {
int counter;
int sum;
Serial.println("Key Calibration");
for(int i = 0; i < 16; ++i) {
Serial.print("Keep Pressing ");
Serial.print(i+1);
setMatrixLights(i+1);
button[i] = keyAnalogCalc();
Serial.print("Button ");
Serial.print(i+1);
Serial.print(" Value: ");
Serial.println(button[i], DEC);
setMatrixLights(0);
}
delay(500);
for(int i = 1; i <= 16; ++i) {
setMatrixLights(i);
delay(100);
}
setMatrixLights(17);
delay(250);
writeFont('O', 250);
Serial.print("Set Offset (Default 2): ");
offset = getKeyValue();
delay(250);
Serial.println(offset);
Serial.println("Calibration done!");
for(int i = 1; i <= offset; ++i) {
setMatrixLights(17);
delay(250);
setMatrixLights(0);
delay(250);
}
}
void setMatrixLights(int seg){
switch(seg){
case 0: delayMicroseconds(500);
PORTB = 0x0;
PORTD = 0x0;
break;
case 1: PORTB = B100001;
PORTD = B11000000;
break;
case 2: PORTB = B100010;
PORTD = B11000000;
break;
case 3: PORTB = B100011;
PORTD = B01000000;
break;
case 4: PORTB = B100011;
PORTD = B10000000;
break;
case 5: PORTB = B010001;
PORTD = B11000000;
break;
case 6: PORTB = B010010;
PORTD = B11000000;
break;
case 7: PORTB = B010011;
PORTD = B01000000;
break;
case 8: PORTB = B010011;
PORTD = B10000000;
break;
case 9: PORTB = B001001;
PORTD = B11000000;
break;
case 10: PORTB = B001010;
PORTD = B11000000;
break;
case 11: PORTB = B001011;
PORTD = B01000000;
break;
case 12: PORTB = B001011;
PORTD = B10000000;
break;
case 13: PORTB = B000101;
PORTD = B11000000;
break;
case 14: PORTB = B000110;
PORTD = B11000000;
break;
case 15: PORTB = B000111;
PORTD = B01000000;
break;
case 16: PORTB = B000111;
PORTD = B10000000;
break;
case 17: PORTB = B111100;
PORTD = B00000000;
break;
}
}
void writeFont(int number, unsigned long timeValue) {
for(unsigned long i = 0; i < timeValue; ++i) {
font(number);
delay(1);
}
}
void writePixel(int pixel, int timeValue) {
setMatrixLights(pixel);
delay(timeValue);
setMatrixLights(0);
}
void setFont(bool ledStatus[16]){
for(int i = 0; i < 16; i++){
if(ledStatus[i]){
setMatrixLights(i+1);
setMatrixLights(0);
}
}
}
void font(int number){
bool leds[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
switch(number){
case '-':
setFont(leds);
break;
case 0: leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[5] = 1;
leds[7] = 1;
leds[8] = 1;
leds[10] = 1;
leds[11] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 1: leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[5] = 1;
leds[6] = 1;
leds[9] = 1;
leds[10] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 2: leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[5] = 1;
leds[6] = 1;
leds[7] = 1;
leds[8] = 1;
leds[9] = 1;
leds[10] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 3: leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[5] = 1;
leds[6] = 1;
leds[7] = 1;
leds[10] = 1;
leds[11] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 4: leds[0] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[5] = 1;
leds[6] = 1;
leds[7] = 1;
leds[8] = 1;
leds[9] = 1;
leds[10] = 1;
leds[11] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 5: leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[5] = 1;
leds[6] = 1;
leds[9] = 1;
leds[10] = 1;
leds[11] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 6: leds[0] = 1;
leds[4] = 1;
leds[5] = 1;
leds[6] = 1;
leds[7] = 1;
leds[8] = 1;
leds[11] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 7: leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[6] = 1;
leds[7] = 1;
leds[10] = 1;
leds[11] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 8: leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[5] = 1;
leds[7] = 1;
leds[8] = 1;
leds[9] = 1;
leds[10] = 1;
leds[11] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 9: leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[6] = 1;
leds[7] = 1;
leds[8] = 1;
leds[9] = 1;
leds[10] = 1;
leds[11] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 'G':leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[5] = 1;
leds[8] = 1;
leds[9] = 1;
leds[11] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 'A':leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[5] = 1;
leds[7] = 1;
leds[8] = 1;
leds[9] = 1;
leds[10] = 1;
leds[11] = 1;
leds[12] = 1;
leds[13] = 1;
leds[15] = 1;
setFont(leds);
break;
case 'M':leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[6] = 1;
leds[7] = 1;
leds[8] = 1;
leds[11] = 1;
leds[12] = 1;
leds[15] = 1;
setFont(leds);
break;
case 'E':leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[5] = 1;
leds[6] = 1;
leds[8] = 1;
leds[9] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 'O':leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[5] = 1;
leds[7] = 1;
leds[8] = 1;
leds[9] = 1;
leds[11] = 1;
leds[12] = 1;
leds[13] = 1;
leds[14] = 1;
leds[15] = 1;
setFont(leds);
break;
case 'V':leds[0] = 1;
leds[3] = 1;
leds[4] = 1;
leds[7] = 1;
leds[8] = 1;
leds[9] = 1;
leds[10] = 1;
leds[11] = 1;
leds[13] = 1;
leds[14] = 1;
setFont(leds);
break;
case 'R':leds[0] = 1;
leds[1] = 1;
leds[2] = 1;
leds[3] = 1;
leds[4] = 1;
leds[5] = 1;
leds[7] = 1;
leds[8] = 1;
leds[9] = 1;
leds[10] = 1;
leds[12] = 1;
leds[13] = 1;
leds[15] = 1;
setFont(leds);
break;
case '!':
leds[1] = 1;
leds[2] = 1;
leds[5] = 1;
leds[6] = 1;
leds[13] = 1;
leds[14] = 1;
setFont(leds);
break;
}
}
%%
Laden Sie den Programmcode in Ihre Arduino IDE. Laden Sie dieses Programm anschließend auf Ihren Arduino hoch. Jetzt können Sie loslegen mit dem Spielen!
**{{color text="((1)) Tastenfeld Kalibrieren" c="#00386a"}}**
Um das Tastenfeld während des Betriebs zu kalibrieren bestätigen Sie einmal den Taster. Dieser löst eine Interrupt Routine aus, welche die Kalibrierungsfunktion aufruft.
Bei der Kalibrierung leuchtet ein LED Quadrat auf, drücken Sie die entsprechende Taste so lange bis alle LEDs anfangen zu leuchten. Anschließend wird das nächste LED Quadrat aufleuchten und Sie drücken auch hier wieder die entsprechende Taste. Das wiederholen Sie für alle Tasten, das Tastenfeld ist jetzt kalibriert.
Die Kalibrierungsroutine misst den aktuellen Spannungswert der Widerstandskette. Dieser wird so lange gemessen bis ein „guter“ Durchschnitt entstanden ist. Mit einem guten Durchschnitt ist gemeint, dass er sich nicht mehr verändert. Dieser Vorgang dauert zwischen 1 und 2 Sekunden pro Taste.
Additions:
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/A9.png" title="Abb. 1 - Steckplatine - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/28.png" title="Abb. 2 - Schaltplan des Gedächtnisspieles - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 2 - Schaltplan des Gedächtnisspieles ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/1.png" title="Abb. 3 - Tastenfeld / Schritt 1 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 3 - Tastenfeld / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/2.png" title="Abb. 4 - Tastenfeld / Schritt 2 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 4 - Tastenfeld / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/3.png" title="Abb. 5 - Tastenfeld / Schritt 3 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 5 - Tastenfeld / Schritt 3 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/4.png" title="Abb. 6 - Tastenfeld / Schritt 4 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 6 - Tastenfeld / Schritt 4 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/5.png" title="Abb. 7 - Tastenfeld / Schritt 5 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 7 - Tastenfeld / Schritt 5 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/6.png" title="Abb. 8 - Tastenfeld / Schritt 6 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/7.png" title="Abb. 9 - Tastenfeld / Schritt 7 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 9 - Tastenfeld / Schritt 7 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/8.png" title="Abb. 10 - LED Matrix / Schritt 1 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 10 - LED Matrix / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/9.png" title="Abb. 11 - LED Matrix / Schritt 2 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 11 - LED Matrix / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/10.png" title="Abb. 12 - LED Matrix / Schritt 3 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 12 - LED Matrix / Schritt 3 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/11.png" title="Abb. 13 - LED Matrix / Schritt 4 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 13 - LED Matrix / Schritt 4 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/12.png" title="Abb. 14 - LED Matrix / Schritt 5 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 14 - LED Matrix / Schritt 5 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/13.png" title="Abb. 15 - LED Matrix / Schritt 6 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 15 - LED Matrix / Schritt 6 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/14.png" title="Abb. 16 - LED Matrix / Schritt 7 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 16 - LED Matrix / Schritt 7 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/15.png" title="Abb. 17 - LED Matrix / Schritt 8 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 17 - LED Matrix / Schritt 8 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/16.png" title="Abb. 18 - LED Matrix / Schritt 9 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 18 - LED Matrix / Schritt 9 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/17.png" title="Abb. 19 - LED Matrix / Schritt 10 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 19 - LED Matrix / Schritt 10 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/18.png" title="Abb. 20 - LED Matrix / Schritt 11 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 20 - LED Matrix / Schritt 11 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/19.png" title="Abb. 21 - Summer / Schritt 1 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 21 - Summer / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/20.png" title="Abb. 22 - Summer / Schritt 2 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 22 - Summer / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/21.png" title="Abb. 23 - Summer / Schritt 3 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 23 - Summer / Schritt 3 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/22.png" title="Abb. 24 - Summer / Schritt 4 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 24 - Summer / Schritt 4 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/23.png" title="Abb. 25 - Potentiometer / Schritt 1 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 25 - Potentiometer / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/24.png" title="Abb. 26 - Potentiometer / Schritt 2 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 26 - Potentiometer / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/25.png" title="Abb. 27 - Potentiometer / Schritt 3 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 27 - Potentiometer / Schritt 3 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/26.png" title="Abb. 28 - Potentiometer / Schritt 4 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 28 - Potentiometer / Schritt 4 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/27.png" title="Abb. 29 - Taster / Schritt 1 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 29 - Taster / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/28.png" title="Abb. 30 - Taster / Schritt 2 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 30 - Taster / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/28.png" title="Abb. 2 - Schaltplan des Gedächtnisspieles - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 2 - Schaltplan des Gedächtnisspieles ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/1.png" title="Abb. 3 - Tastenfeld / Schritt 1 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 3 - Tastenfeld / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/2.png" title="Abb. 4 - Tastenfeld / Schritt 2 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 4 - Tastenfeld / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/3.png" title="Abb. 5 - Tastenfeld / Schritt 3 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 5 - Tastenfeld / Schritt 3 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/4.png" title="Abb. 6 - Tastenfeld / Schritt 4 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 6 - Tastenfeld / Schritt 4 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/5.png" title="Abb. 7 - Tastenfeld / Schritt 5 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 7 - Tastenfeld / Schritt 5 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/6.png" title="Abb. 8 - Tastenfeld / Schritt 6 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/7.png" title="Abb. 9 - Tastenfeld / Schritt 7 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 9 - Tastenfeld / Schritt 7 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/8.png" title="Abb. 10 - LED Matrix / Schritt 1 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 10 - LED Matrix / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/9.png" title="Abb. 11 - LED Matrix / Schritt 2 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 11 - LED Matrix / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/10.png" title="Abb. 12 - LED Matrix / Schritt 3 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 12 - LED Matrix / Schritt 3 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/11.png" title="Abb. 13 - LED Matrix / Schritt 4 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 13 - LED Matrix / Schritt 4 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/12.png" title="Abb. 14 - LED Matrix / Schritt 5 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 14 - LED Matrix / Schritt 5 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/13.png" title="Abb. 15 - LED Matrix / Schritt 6 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 15 - LED Matrix / Schritt 6 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/14.png" title="Abb. 16 - LED Matrix / Schritt 7 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 16 - LED Matrix / Schritt 7 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/15.png" title="Abb. 17 - LED Matrix / Schritt 8 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 17 - LED Matrix / Schritt 8 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/16.png" title="Abb. 18 - LED Matrix / Schritt 9 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 18 - LED Matrix / Schritt 9 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/17.png" title="Abb. 19 - LED Matrix / Schritt 10 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 19 - LED Matrix / Schritt 10 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/18.png" title="Abb. 20 - LED Matrix / Schritt 11 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 20 - LED Matrix / Schritt 11 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/19.png" title="Abb. 21 - Summer / Schritt 1 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 21 - Summer / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/20.png" title="Abb. 22 - Summer / Schritt 2 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 22 - Summer / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/21.png" title="Abb. 23 - Summer / Schritt 3 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 23 - Summer / Schritt 3 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/22.png" title="Abb. 24 - Summer / Schritt 4 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 24 - Summer / Schritt 4 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/23.png" title="Abb. 25 - Potentiometer / Schritt 1 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 25 - Potentiometer / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/24.png" title="Abb. 26 - Potentiometer / Schritt 2 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 26 - Potentiometer / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/25.png" title="Abb. 27 - Potentiometer / Schritt 3 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 27 - Potentiometer / Schritt 3 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/26.png" title="Abb. 28 - Potentiometer / Schritt 4 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 28 - Potentiometer / Schritt 4 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/27.png" title="Abb. 29 - Taster / Schritt 1 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 29 - Taster / Schritt 1 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/28.png" title="Abb. 30 - Taster / Schritt 2 - Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing"}}
Abb. 30 - Taster / Schritt 2 ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Deletions:
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/28.png" title="Abb. 2 - Schaltplan des Gedächtnisspieles - Quelle: Hochschule Schmalkalden / Fakultät Informatik erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/1.png" title="Abb. 3 - Tastenfeld / Schritt 1 - Quelle:Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/2.png" title="Abb. 4 - Tastenfeld / Schritt 2 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/3.png" title="Abb. 5 - Tastenfeld / Schritt 3 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/4.png" title="Abb. 6 - Tastenfeld / Schritt 4 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/5.png" title="Abb. 7 - Tastenfeld / Schritt 5 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/6.png" title="Abb. 8 - Tastenfeld / Schritt 6 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/7.png" title="Abb. 9 - Tastenfeld / Schritt 7 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/8.png" title="Abb. 10 - LED Matrix / Schritt 1 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/9.png" title="Abb. 11 - LED Matrix / Schritt 2 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/10.png" title="Abb. 12 - LED Matrix / Schritt 3 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/11.png" title="Abb. 13 - LED Matrix / Schritt 4 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/12.png" title="Abb. 15 - LED Matrix / Schritt 5 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/13.png" title="Abb. 16 - LED Matrix / Schritt 6 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/14.png" title="Abb. 17 - LED Matrix / Schritt 7 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/15.png" title="Abb. 18 - LED Matrix / Schritt 8 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/16.png" title="Abb. 19 - LED Matrix / Schritt 9 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/17.png" title="Abb. 20 - LED Matrix / Schritt 10 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/18.png" title="Abb. 21 - LED Matrix / Schritt 11 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/19.png" title="Abb. 22 - Summer / Schritt 1 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/20.png" title="Abb. 23 - Summer / Schritt 2 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/21.png" title="Abb. 24 - Summer / Schritt 3 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/22.png" title="Abb. 25 - Summer / Schritt 4 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/23.png" title="Abb. 26 - Potentiometer / Schritt 1 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/24.png" title="Abb. 27 - Potentiometer / Schritt 2 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/25.png" title="Abb. 28 - Potentiometer / Schritt 3 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/26.png" title="Abb. 29 - Potentiometer / Schritt 4 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/27.png" title="Abb. 30 - Taster / Schritt 1 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/28.png" title="Abb. 31 - Taster / Schritt 2 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
Additions:
Abb.1: Schaltung einer Steckplatine ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Deletions:
Additions:
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/28.png" title="Abb. 2 - Schaltplan des Gedächtnisspieles - Quelle: Hochschule Schmalkalden / Fakultät Informatik erstellt mit: fritzing"}}
Deletions:
Additions:
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/28.png" title="Abb. 2 - Schaltplan des Gedächtnisspieles - Quelle: Hochschule Schmalkalden / Fakultät Informatik Erstellt mit: fritzing"}}
Deletions:
Additions:
Abb.1: Schaltung einer Steckplatine ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik_erstellt mit fritzing==fn_stop==
Deletions:
Additions:
Abb.1: Schaltung einer Steckplatine ==fn_start==Quelle: Hochschule Schmalkalden/FK Informatik erstellt mit fritzing==fn_stop==
Deletions:
Additions:
Abb.1: Schaltung einer Steckplatine ==fn_start==Quelle: Hochschule Schmalkalden, FK Informatik erstellt mit fritzing==fn_stop==
Deletions:
Additions:
Abb.1: Schaltung einer Steckplatine ==fn_start==Quelle: Hochschule Schmalkalden; FK Informatik erstellt mit fritzing==fn_stop==
Deletions:
Additions:
Abb.1: Schaltung einer Steckplatine ==fn_start==Quelle: Hochschule Schmalkalden - FK Informatik erstellt mit fritzing==fn_stop==
Deletions:
Additions:
Abb.1: Schaltung einer Steckplatine ==fn_start==Quelle: Hochschule Schmalkalden, FK Informatik erstellt mit fritzing==fn_stop==
Deletions:
Additions:
Abb.1: Schaltung einer Steckplatine ==fn_start==Quelle:Hochschule Schmalkalden FK Informatik erstellt mit fritzing==fn_stop==
Deletions:
No Differences
Additions:
Abb.1: Schaltung einer Steckplatine ==fn_start==Quelle Hochschule Schmalkalden FK Informatik erstellt mit fritzing==fn_stop==
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/1.png" title="Abb. 3 - Tastenfeld / Schritt 1 - Quelle:Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/1.png" title="Abb. 3 - Tastenfeld / Schritt 1 - Quelle:Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
Deletions:
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/1.png" title="Abb. 3 - Tastenfeld / Schritt 1 - Quelle-Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
Additions:
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/28.png" title="Abb. 2 - Schaltplan des Gedächtnisspieles - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/1.png" title="Abb. 3 - Tastenfeld / Schritt 1 - Quelle-Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/1.png" title="Abb. 3 - Tastenfeld / Schritt 1 - Quelle-Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
Deletions:
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/1.png" title="Abb. 3 - Tastenfeld / Schritt 1 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
Additions:
Abb.1: Schaltung einer Steckplatine ==fn_start==Quelle - Hochschule Schmalkalden,FK Informatik,erstellt mit fritzing==fn_stop==
Deletions:
Additions:
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/28.png" title="Abb. 2 - Schaltplan des Gedächtnisspieles - Quelle - Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
Deletions:
Additions:
Abb.1: Schaltung einer Steckplatine ==fn_start==Quelle: Hochschule Schmalkalden,FK Informatik,erstellt mit fritzing==fn_stop==
Deletions:
Additions:
Abb.1: Schaltung einer Steckplatine ==fn_start==Quelle: Hochschule Schmalkalden; FK Informatik; erstellt mit fritzing==fn_stop==
Deletions:
Additions:
==fn_start==Abb.1: Schaltung einer Steckplatine==fn_stop==
Additions:
Jetzt folgt die Verkabelung das immer 4 LEDs gleichzeitig an sind. Da hierzu einige Kabel nötig sind, wird der Prozess etwas aufgeteilt. Im Folgenden werden die Pins der LED wie folgt mit Zahlen benannt:
|=|Obere Reihe (Rot)||1||2||3||4||5||6||7||8||
|=|Untere Reihe (Grün)||9||10||11||12||13||14||15||16||
|=|Obere Reihe (Rot)||1||2||3||4||5||6||7||8||
|=|Untere Reihe (Grün)||9||10||11||12||13||14||15||16||
Deletions:
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/LEDM.png" }}
Deletions:
Additions:
{{files}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/A9.png" title="Abb. 1 - Steckplatine - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/28.png" title="Abb. 2 - Schaltplan des Gedächtnisspieles - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/1.png" title="Abb. 3 - Tastenfeld / Schritt 1 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/2.png" title="Abb. 4 - Tastenfeld / Schritt 2 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/3.png" title="Abb. 5 - Tastenfeld / Schritt 3 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/4.png" title="Abb. 6 - Tastenfeld / Schritt 4 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/5.png" title="Abb. 7 - Tastenfeld / Schritt 5 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/6.png" title="Abb. 8 - Tastenfeld / Schritt 6 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/7.png" title="Abb. 9 - Tastenfeld / Schritt 7 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/8.png" title="Abb. 10 - LED Matrix / Schritt 1 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/9.png" title="Abb. 11 - LED Matrix / Schritt 2 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/10.png" title="Abb. 12 - LED Matrix / Schritt 3 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/11.png" title="Abb. 13 - LED Matrix / Schritt 4 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/LEDM.png" }}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/12.png" title="Abb. 15 - LED Matrix / Schritt 5 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/13.png" title="Abb. 16 - LED Matrix / Schritt 6 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/14.png" title="Abb. 17 - LED Matrix / Schritt 7 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/15.png" title="Abb. 18 - LED Matrix / Schritt 8 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/16.png" title="Abb. 19 - LED Matrix / Schritt 9 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/17.png" title="Abb. 20 - LED Matrix / Schritt 10 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/18.png" title="Abb. 21 - LED Matrix / Schritt 11 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/19.png" title="Abb. 22 - Summer / Schritt 1 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/20.png" title="Abb. 23 - Summer / Schritt 2 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/21.png" title="Abb. 24 - Summer / Schritt 3 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/22.png" title="Abb. 25 - Summer / Schritt 4 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/23.png" title="Abb. 26 - Potentiometer / Schritt 1 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/24.png" title="Abb. 27 - Potentiometer / Schritt 2 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/25.png" title="Abb. 28 - Potentiometer / Schritt 3 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/26.png" title="Abb. 29 - Potentiometer / Schritt 4 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/27.png" title="Abb. 30 - Taster / Schritt 1 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/28.png" title="Abb. 31 - Taster / Schritt 2 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/A9.png" title="Abb. 1 - Steckplatine - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/28.png" title="Abb. 2 - Schaltplan des Gedächtnisspieles - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/1.png" title="Abb. 3 - Tastenfeld / Schritt 1 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/2.png" title="Abb. 4 - Tastenfeld / Schritt 2 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/3.png" title="Abb. 5 - Tastenfeld / Schritt 3 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/4.png" title="Abb. 6 - Tastenfeld / Schritt 4 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/5.png" title="Abb. 7 - Tastenfeld / Schritt 5 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/6.png" title="Abb. 8 - Tastenfeld / Schritt 6 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/7.png" title="Abb. 9 - Tastenfeld / Schritt 7 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/8.png" title="Abb. 10 - LED Matrix / Schritt 1 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/9.png" title="Abb. 11 - LED Matrix / Schritt 2 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/10.png" title="Abb. 12 - LED Matrix / Schritt 3 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/11.png" title="Abb. 13 - LED Matrix / Schritt 4 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/LEDM.png" }}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/12.png" title="Abb. 15 - LED Matrix / Schritt 5 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/13.png" title="Abb. 16 - LED Matrix / Schritt 6 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/14.png" title="Abb. 17 - LED Matrix / Schritt 7 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/15.png" title="Abb. 18 - LED Matrix / Schritt 8 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/16.png" title="Abb. 19 - LED Matrix / Schritt 9 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/17.png" title="Abb. 20 - LED Matrix / Schritt 10 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/18.png" title="Abb. 21 - LED Matrix / Schritt 11 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/19.png" title="Abb. 22 - Summer / Schritt 1 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/20.png" title="Abb. 23 - Summer / Schritt 2 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/21.png" title="Abb. 24 - Summer / Schritt 3 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/22.png" title="Abb. 25 - Summer / Schritt 4 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/23.png" title="Abb. 26 - Potentiometer / Schritt 1 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/24.png" title="Abb. 27 - Potentiometer / Schritt 2 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/25.png" title="Abb. 28 - Potentiometer / Schritt 3 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/26.png" title="Abb. 29 - Potentiometer / Schritt 4 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/27.png" title="Abb. 30 - Taster / Schritt 1 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/28.png" title="Abb. 31 - Taster / Schritt 2 - Quelle: Hochschule Schmalkalden / Fakultät Informatik - Erstellt mit: fritzing"}}
Deletions:
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/28.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/1.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/2.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/3.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/4.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/5.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/6.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/7.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/8.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/9.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/10.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/11.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/LEDM.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/12.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/13.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/14.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/15.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/16.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/17.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/18.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/19.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/20.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/21.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/22.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/23.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/24.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/25.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/26.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/27.png"}}
{{image class="center" width="800" url="http://wdb.fh-sm.de/uploads/TutoriumMikroprozessortechnikFKITSS17/28.png"}}
No Differences