Bilder Upload
Follow Me!
Anzeige
Benutzername:
Betreff:


Beitrag:
Sicherheitsabfrage*
Tippen Sie die Buchstaben hier ein:

 
*Zur Vermeidung von Spam
Datei anhängen

In Antwort auf

Arduino-SIMON Game-LEDs funken nicht ganz richtig • Absender: Kamikatze, 09.08.2011 16:26

Hallo Leute,
arbeite gerade daran das Spiel SIMON (Senso) mit Arduino nachzubauen. (für alle die nicht wissen was ich mein, bitte hier guggen: http://de.wikipedia.org/wiki/Senso_%28Spiel%29)

Hier mal der Code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
 
int switch1 = 11;
int switch2 = 10;
int switch3= 9;
int switch4 = 8;
 
int led1= 5;
int led2 = 4;
int led3= 3;
int led4= 2;
int turn = 0;
int input1= LOW;
int input2= LOW;
int input3= LOW;
int input4 = LOW;
 
int randomArray[100]; //Intentionally long to store up to 100 inputs (doubtful anyone will get this far)
int inputArray[100];
 
void setup() {
 
Serial.begin(9600);
 
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(switch1, INPUT);
pinMode(switch2, INPUT);
pinMode(switch3, INPUT);
pinMode(switch4, INPUT);
randomSeed(analogRead(0)); //Added to generate "more randomness" with the randomArray for the output function
 
for (int y=0; y<=99; y++){ //For statement to loop through the output and input functions
output();
input();
}
 
}

void output() { //function for generating the array to be matched by the player

for (int y=turn; y <= turn; y++){ //Limited by the turn variable
Serial.println(""); //Some serial output to follow along
Serial.print("Turn: ");
Serial.print(y);
Serial.println("");
randomArray[y] = random(1, 5); //Assigning a random number (1-4) to the randomArray[y], y being the turn count
for (int x=0; x <= turn; x++){
 
Serial.print(randomArray[x]);
 
if (randomArray[x] == 1) { //if statements to display the stored values in the array
digitalWrite(led1, HIGH);
delay(500);
digitalWrite(led1, LOW);
delay(100);
}
 
if (randomArray[x] == 2) {
digitalWrite(led2, HIGH);
delay(500);
digitalWrite(led2, LOW);
delay(100);
}
 
if (randomArray[x] == 3) {
digitalWrite(led3, HIGH);
delay(500);
digitalWrite(led3, LOW);
delay(100);
}
 
if (randomArray[x] == 4) {
digitalWrite(led4, HIGH);
delay(500);
digitalWrite(led4, LOW);
delay(100);
}
}
}
}



void input() { //Function for allowing user input and checking input against the generated array
 
for (int x=0; x <= turn;){ //Statement controlled by turn count
input1 = digitalRead(switch1);
input2 = digitalRead(switch2);
input3 = digitalRead(switch3);
input4 = digitalRead(switch4);
 
if (input1 == HIGH){ //Checking for button push
digitalWrite(led1, HIGH);
delay(200);
digitalWrite(led1, LOW);
inputArray[x] = 1;
delay(50);
Serial.print(" ");
Serial.print(1);
if (inputArray[x] != randomArray[x]) { //Checks value input by user and checks it against
fail(); //the value in the same spot on the generated array
} //The fail function is called if it does not match
x++;
}
 
if (input2 == HIGH){
digitalWrite(led2, HIGH);
delay(200);
digitalWrite(led2, LOW);
inputArray[x] = 2;
delay(50);
Serial.print(" ");
Serial.print(2);
if (inputArray[x] != randomArray[x]) {
fail();
}
x++;
 
}
 
if (input3 == HIGH){
digitalWrite(led3, HIGH);
delay(200);
digitalWrite(led3, LOW);
inputArray[x] = 3;
delay(50);
Serial.print(" ");
Serial.print(3);
if (inputArray[x] != randomArray[x]) {
fail();
}
x++;
 
}
 
if (input4 == HIGH){
 
digitalWrite(led4, HIGH);
delay(200);
digitalWrite(led4, LOW);
inputArray[x] = 4;
delay(50);
Serial.print(" ");
Serial.print(4);
if (inputArray[x] != randomArray[x]) {
fail();
}
x++;
 
}
}
delay(500);
turn++; //Increments the turn count, also the last action before starting the output function over again
}
 
void fail() { //Function used if the player fails to match the sequence

for (int y=0; y<=5; y++){ //Flashes lights for failure
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
delay(200);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
delay(200);
}
delay(500);
turn = -1; //Resets turn value so the game starts over without need for a reset button
}
 
void loop() { //Unused void loop(), though for some reason it doesn't compile without this /shrug
}
 
 



Soweit sogut, wenn ich nun den Code auf das Board lade, dann drehen die LEDS durch. zuerst leuchten eine oder zwei kurz auf, dann leuchten alle vier so als hätte man einen Fehler gemacht, aber ich komm ja net mal zum button drücken bzw. wenn ich se drücke passiert nix. Was mach ich falsch??
Auf dem angehängten Bild seht ihr wie ich das zusammengestackt hab (Info: bei den Leds hängt bei jeder noch ein 220 Ohm Wiederstand dran, die sind auf dem Bild noch net drauf)

Fotos hochladen

Zugriffsanfrage von


Diese Seite versucht auf deinen addPics.com Account zuzugreifen.
Aus Sicherheitsgründen, erlaubt addPics.com nur den Zugriff von autorisierten Webseiten. Wenn du dieser Webseite vertraust, kannst du mit einem Klick auf den folgenden Link, den Zugriff erlauben.

autorisieren Aktualisieren

Bitte logge dich mit deinem bereits existierenden Account auf addPics.com ein.


Jetz einloggen!
Neu laden!


Dem Beitrag angehängte Bilder


- noch keine Bilder angehängt.

oder ein bereits hochgeladenes diesem Beitrag hinzufügen.
Nach Ordner filtern: Ordner bearbeiten
  • Mit deiner Emailadresse, verwaltest du all deine Bilder auf addPics.com
  • diese Nutzung von addPics.com ist für dich kostenlos!
  • weitere Informationen findest du hier


Mit dem Upload gebe ich mein Einverständnis, dass meine E-Mail von addPics.com für werbliche Zwecke zum Erhalt von Newslettern genutzt wird. Die E-Mail wird nicht an Dritte weitergegeben und der Newsletter kann jederzeit per E-Mail an unsubscribe@addpics.com abgemeldet werden.

Mit anderen addPics.com Account anmelden

Besucher
0 Mitglieder und 3 Gäste sind Online

Wir begrüßen unser neuestes Mitglied: hobbit23
Forum Statistiken
Das Forum hat 116 Themen und 192 Beiträge.

Xobor Forum Software von Xobor.de
Einfach ein Forum erstellen