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ı

takipoyunu

Devrede kullanılan dirençler

3x 220ohm LEDler için

3x 10Kohm Butonlar için

Programımız

Programımız için Gerekli Kodlar
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++]);
}