Arduino ile hafıza oyunu yapma
Arduino ile projelerin yanında küçük oyunlar da tasarlayabilirsiniz. Bu yazımızda arduinomuz ile 3 LED ve 3 butonla yapabileceklerinize inanamıyacaksınız. Projemiz sizin yaptıklarınızı size gösterecektir.
Projemizde her renk yandığında renge göre bir tonda duyacaksınız. .
Projemizin bağlantı şeması

Devrede kullanılan dirençler
3x 220ohm LEDler için
3x 10Kohm Butonlar için
Programımız
|
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
|
int renkledcikislari[] = {4,2,6};int renksesleri[] = {262, 349, 494};int renkButonlari[] = {5,3,7}; int rasgeleSayi; const int piezoPin = 9;int renkSiralamasi[10];int kullanicilar = 0;int computerNumber = 0;int butonDurumu = 0;int length = 10; void setup() { int n; for(n=0; n<3; n++){ pinMode(renkledcikislari[n], OUTPUT); digitalWrite(renkledcikislari[n], LOW); } for(n=0; n<length; n++) renkSiralamasi[n] =0; for(n=0; n<3; n++){ pinMode(renkButonlari[n], INPUT); }} void loop() { if(kullanicilar < length) { checkForUserInput(); } else { playSequence(); }} void checkForUserInput(){ for(int n=0; n<3; n++) { if(checkForButton(renkButonlari[n])){ playColor(n); renkSiralamasi[kullanicilar++] = n; } }} bool checkForButton(int pinNumber){ butonDurumu = digitalRead(pinNumber); bool returnValue; // check if the pushbutton is pressed. // if it is, the butonDurumu is HIGH: if (butonDurumu == HIGH) { returnValue = true; } else { returnValue = false; } return returnValue;} void playColor(int colorNum){ tone(piezoPin, renksesleri[colorNum], 100); blinkLight(renkledcikislari[colorNum]); } void blinkLight(int ledPin){ digitalWrite(ledPin, HIGH); delay(200); digitalWrite(ledPin, LOW); noTone(piezoPin); delay(100);} void playSequence(){ if(computerNumber >= length) computerNumber = 0; playColor(renkSiralamasi[computerNumber++]);} |
