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 + + ]); } |