BİLİŞİM gARAJI

Arduino ile Refleks Oyunu Nasıl Yapılır? Çocuklar İçin Proje Rehberi

Arduino ile Refleks Oyunu Nasıl Yapılır? Çocuklar İçin Proje Rehberi
25 Eylül 2026

Arduino ile Refleks Oyunu Nasıl Yapılır? Çocuklar İçin Proje Rehberi

Bir ışık yandığı anda butona ne kadar hızlı basabilirsiniz?

200 milisaniye mi? 500 milisaniye mi? Yoksa ışık yanmadan önce heyecanlanıp butona erken mi basarsınız?

Arduino, LED ve buton kullanarak oyuncunun tepki süresini ölçen küçük bir refleks oyunu geliştirmek mümkündür.

Bu proje özellikle çocukların kodlamaya ilgisini artırabilecek çalışmalardan biridir. Çünkü ortaya yalnızca çalışan bir elektronik devre değil, arkadaşlarla veya aileyle oynanabilecek gerçek bir mini oyun çıkar.

Projenin temel mantığı şöyledir:

Hazırlan → Rastgele Bekle → LED'i Yak → Butona Bas → Süreyi Ölç → Sonucu Göster.

Peki Arduino ile refleks oyunu nasıl yapılır? Gelin adım adım inceleyelim.

Arduino Refleks Oyunu Nedir?

Arduino refleks oyunu, oyuncunun bir ışık veya ses sinyali verildikten sonra butona ne kadar hızlı bastığını ölçen elektronik bir oyun projesidir.

Basit sistem şu şekilde çalışabilir:

  1. Oyuncu oyunu başlatır.
  2. Arduino rastgele bir süre bekler.
  3. LED aniden yanar.
  4. Oyuncu LED'i gördüğü anda butona basar.
  5. Arduino geçen süreyi hesaplar.
  6. Sonuç milisaniye olarak gösterilir.

Böylece elektronik devre, kodlama ve oyun tasarımı aynı proje içerisinde birleşir.

Bu Proje Çocuklara Neler Öğretir?

Refleks oyunu başlangıç seviyesinde görünse de içerisinde çok sayıda önemli programlama kavramı bulunur.

Proje sırasında çocuklar şu konularla karşılaşabilir:

  • Arduino kullanımı
  • LED kontrolü
  • Buton kullanımı
  • Dijital giriş ve çıkışlar
  • HIGH ve LOW kavramları
  • Rastgele sayı üretme
  • Zaman ölçme
  • Milisaniye kavramı
  • millis() fonksiyonu
  • Koşul ifadeleri
  • Değişkenler
  • Oyun mantığı
  • Hata kontrolü

Bu nedenle refleks oyunu, temel LED ve buton projelerini tamamlamış öğrenciler için güzel bir sonraki adım olabilir.

Refleks Oyunu İçin Hangi Malzemeler Gerekir?

Basit bir refleks oyunu için şu elektronik bileşenler kullanılabilir:

  • Arduino Uno veya uyumlu kontrol kartı
  • 1 adet LED
  • 1 adet buton
  • LED için uygun direnç
  • Breadboard
  • Jumper kablolar
  • USB bağlantı kablosu

Projeyi geliştirmek için daha sonra:

  • Buzzer
  • Birden fazla LED
  • İkinci oyuncu için ikinci buton
  • LCD veya OLED ekran

eklenebilir.

Buton Arduino'da Ne İşe Yarar?

Buton, kullanıcının Arduino'ya fiziksel bir giriş göndermesini sağlar.

Örneğin oyuncu butona bastığında Arduino bu durumu okuyabilir.

Bu projede:

LED → Arduino'nun oyuncuya verdiği çıktı

ve

Buton → Oyuncunun Arduino'ya verdiği giriş

olarak düşünülebilir.

Bu ilişki çocukların programlamadaki giriş ve çıkış kavramlarını anlaması açısından oldukça önemlidir.

Oyunun En Önemli Kuralı Nedir?

Oyuncunun LED yanmadan önce ne zaman yanacağını bilmemesi gerekir.

Eğer LED her seferinde tam üç saniye sonra yanarsa oyuncu ışığı görmeden önce süreyi tahmin ederek butona basabilir.

Bu nedenle Arduino'nun her oyunda farklı süre beklemesi daha eğlenceli bir sonuç oluşturur.

Örneğin:

  • Bir turda 2,1 saniye
  • Bir turda 4,3 saniye
  • Bir turda 3,7 saniye

beklenebilir.

Bunun için rastgele sayı üretme mantığından yararlanılabilir.

Arduino'da random() Ne İşe Yarar?

random() fonksiyonu belirlenen aralık içerisinde sayı üretmek için kullanılabilir.

Örneğin:


int beklemeSuresi = random(2000, 5000);

ile yaklaşık 2000 ile 5000 milisaniye arasında bir bekleme süresi elde edilebilir.

Bu da yaklaşık:

2 ile 5 saniye

arasına karşılık gelir.

Oyuncu böylece LED'in ne zaman yanacağını tam olarak tahmin edemez.

Milisaniye Nedir?

Arduino projelerinde zaman değerleriyle çalışırken milisaniye kavramıyla sık karşılaşılır.

1000 milisaniye = 1 saniye

olduğundan:

  • 100 ms = 0,1 saniye
  • 250 ms = 0,25 saniye
  • 500 ms = 0,5 saniye
  • 1000 ms = 1 saniye

olarak düşünülebilir.

Refleks oyununda sonuçlar milisaniye cinsinden gösterildiğinde oyuncular arasındaki küçük farkları görmek daha kolay hale gelir.

Tepki Süresi Nasıl Ölçülür?

Arduino'nun LED'i yaktığı an ile oyuncunun butona bastığı an arasındaki süre hesaplanabilir.

Temel mantık:

Butona Basma Zamanı - LED'in Yanma Zamanı = Tepki Süresi

şeklindedir.

Örneğin LED:

12.000 ms

anında yandıysa ve oyuncu:

12.325 ms

anında butona bastıysa:

12.325 - 12.000 = 325 ms

tepki süresi elde edilir.

millis() Fonksiyonu Nedir?

Arduino'daki millis() fonksiyonu, kart çalışmaya başladıktan sonra geçen süreyi milisaniye cinsinden takip etmek için kullanılabilir.

Örneğin:


unsigned long baslangic = millis();

ile belirli bir andaki zaman kaydedilebilir.

Daha sonra:


unsigned long bitis = millis();

ile ikinci zaman bilgisi alınabilir.

İki değer arasındaki fark ölçülen süreyi verir.

Neden Sadece delay() Kullanmak Yeterli Değil?

Basit Arduino projelerinde zamanlama için çoğu zaman delay() kullanılır.

Ancak refleks oyununda oyuncunun butona tam olarak ne zaman bastığını ölçmek istediğimiz için millis() gibi zaman takip yöntemleri daha kullanışlı hale gelir.

Bu proje çocukların:

"Program yalnızca beklemek zorunda değildir; aynı zamanda zamanı ölçebilir."

fikriyle tanışmasını sağlar.

Refleks Oyununun Temel Algoritması

Kodu yazmadan önce oyunun nasıl ilerleyeceğini günlük dilde sıralayabiliriz.

  1. LED'i söndür.
  2. Oyuncuya hazırlanması için kısa süre ver.
  3. Rastgele bekleme süresi belirle.
  4. Bekle.
  5. LED'i yak.
  6. LED'in yanma zamanını kaydet.
  7. Oyuncunun butona basmasını bekle.
  8. Butona basıldığı zamanı kaydet.
  9. İki zaman arasındaki farkı hesapla.
  10. Sonucu göster.

Bu yapı çocukların bir oyunun kurallarını algoritmaya dönüştürmesini sağlar.

Örnek Arduino Refleks Oyunu Kodu

Aşağıdaki örnek temel çalışma mantığını göstermek amacıyla hazırlanmıştır.


const int ledPin = 8;
const int butonPin = 2;

unsigned long baslangicZamani;
unsigned long tepkiZamani;

void setup() {

  pinMode(ledPin, OUTPUT);
  pinMode(butonPin, INPUT_PULLUP);

  Serial.begin(9600);

  randomSeed(analogRead(A0));

}

void loop() {

  digitalWrite(ledPin, LOW);

  Serial.println("Hazirlan...");

  delay(1000);

  int beklemeSuresi = random(2000, 5000);

  delay(beklemeSuresi);

  digitalWrite(ledPin, HIGH);

  baslangicZamani = millis();

  Serial.println("BAS!");

  while (digitalRead(butonPin) == HIGH) {

    // Oyuncunun butona basması bekleniyor.

  }

  tepkiZamani = millis() - baslangicZamani;

  digitalWrite(ledPin, LOW);

  Serial.print("Tepki Suren: ");
  Serial.print(tepkiZamani);
  Serial.println(" ms");

  delay(3000);

}

Bu kod temel eğitim amacıyla hazırlanmıştır ve farklı bağlantı düzenlerine göre değiştirilebilir.

INPUT_PULLUP Nedir?

Örnek kodda buton şu şekilde tanımlanmıştır:


pinMode(butonPin, INPUT_PULLUP);

Arduino'nun dahili pull-up özelliğinden yararlanıldığında buton bağlantısı daha basit şekilde kurulabilir.

Bu kullanımda butona basılmadığında pin HIGH, butona basıldığında ise uygun bağlantı düzeninde LOW okunabilir.

Bu nedenle çocukların:

"Butona bastım, neden LOW okuyor?"

sorusuyla karşılaşması mümkündür.

Bu durum programlamada kullanılan elektriksel bağlantı mantığını anlamak için güzel bir öğrenme fırsatıdır.

while Döngüsü Bu Projede Ne İşe Yarar?

Örnek kodda Arduino oyuncunun butona basmasını bekler.


while (digitalRead(butonPin) == HIGH) {

}

Bu yapı:

"Butona henüz basılmadığı sürece beklemeye devam et."

şeklinde düşünülebilir.

Butona basıldığında koşul değişir ve program sonraki satıra geçer.

Oyuncu LED Yanmadan Önce Butona Basarsa Ne Olur?

İşte projeyi daha eğlenceli hale getirecek önemli özelliklerden biri budur.

Temel örnek kod erken basmayı kontrol etmeyebilir.

Ancak gelişmiş sürümde oyuncunun LED yanmadan butona basıp basmadığı kontrol edilebilir.

Eğer erken basarsa:

"Çok erken!"

mesajı gösterilebilir ve tur iptal edilebilir.

Erken Basma Kontrolü Nasıl Yapılabilir?

Rastgele bekleme sırasında butonun durumu takip edilebilir.

Oyuncu ışık yanmadan butona basarsa sistem bunu hata olarak değerlendirebilir.

Oyun mantığı şöyle olur:

LED kapalı + butona basıldı = Hatalı başlangıç

LED açık + butona basıldı = Geçerli tepki

Bu özellik projeyi basit ölçüm sisteminden gerçek bir oyuna yaklaştırır.

Buzzer Oyuna Nasıl Eklenebilir?

Projeye buzzer eklenerek ışığın yanında sesli başlangıç sinyali de oluşturulabilir.

Örneğin LED yandığı anda:

"Bip!"

sesi verilebilir.

Daha sonra farklı oyun modları oluşturulabilir:

  • Sadece ışığa tepki ver.
  • Sadece sese tepki ver.
  • Işık veya ses rastgele gelsin.

Bu şekilde oyun çok daha eğlenceli hale getirilebilir.

Birden Fazla LED Kullanılabilir mi?

Evet.

Örneğin üç farklı renkte LED kullanılabilir:

  • Kırmızı
  • Sarı
  • Yeşil

Ancak oyuncu yalnızca yeşil LED yandığında butona basmalıdır.

Kırmızı veya sarı ışıkta butona basarsa puan kaybedebilir.

Bu özellik oyuna dikkat ve karar verme boyutu ekler.

İki Oyunculu Refleks Oyunu Yapılabilir mi?

Evet. İkinci buton eklenerek iki oyuncunun aynı anda yarıştığı sistem geliştirilebilir.

Arduino ışığı yaktığında iki oyuncu kendi butonuna basmaya çalışır.

İlk basan oyuncu turu kazanır.

Örneğin:

  • Oyuncu 1 → Buton 1
  • Oyuncu 2 → Buton 2

kullanılabilir.

Arduino hangi butonun önce aktif olduğunu kontrol ederek kazananı belirleyebilir.

Kazanan Nasıl Gösterilebilir?

Her oyuncu için farklı renkte LED eklenebilir.

Örneğin:

  • Oyuncu 1 kazanırsa mavi LED yanar.
  • Oyuncu 2 kazanırsa kırmızı LED yanar.

Ayrıca buzzer ile kısa zafer sesi oluşturulabilir.

Bu aşamada proje elektronik bir yarış oyununa dönüşür.

LCD veya OLED Ekran Eklenebilir mi?

Başlangıçta sonuçlar Serial Monitor üzerinde görüntülenebilir.

Ancak küçük bir ekran eklendiğinde proje bilgisayardan bağımsız hale getirilebilir.

Ekranda örneğin:

Tepki Süresi

287 ms

gösterilebilir.

Daha sonra en iyi skor da saklanabilir.

En İyi Skor Sistemi Nasıl Çalışabilir?

Arduino her turun sonucunu önceki en iyi sonuçla karşılaştırabilir.

Örneğin:

İlk oyuncunun sonucu:

340 ms

olsun.

Sonraki tur:

295 ms

geldiğinde yeni değer daha düşük olduğu için yeni rekor olarak kaydedilebilir.

Bu sistem çocukların karşılaştırma ve değişken kullanımı kavramlarını uygulamalı şekilde görmesini sağlar.

İyi Bir Tepki Süresi Kaç Milisaniyedir?

Bu projenin amacı tıbbi veya profesyonel performans ölçümü yapmak değildir.

Sonuçlar sensör, buton, kod yapısı ve kullanıcının dikkat durumuna göre değişebilir.

Bu nedenle proje daha çok:

  • Zaman ölçme mantığını öğrenmek,
  • Arkadaşlarla sonuç karşılaştırmak,
  • Kendi önceki skorunu geliştirmeye çalışmak

için kullanılabilir.

Butona Bir Kez Bastığım Halde Neden Birden Fazla Basış Algılanabilir?

Fiziksel butonlarda bounce adı verilen durum oluşabilir.

Butona bir kez basıldığında elektriksel temas çok kısa süre içerisinde birkaç kez açılıp kapanabilir.

Bu nedenle Arduino bazen tek basışı birden fazla değişim olarak algılayabilir.

Daha ileri seviyede debounce yöntemleri kullanılarak bu durum azaltılabilir.

Debounce Nedir?

Debounce, fiziksel butonun oluşturduğu kısa ve istenmeyen sinyal değişimlerini filtrelemeye yönelik yöntemlere verilen isimdir.

Başlangıç seviyesindeki projede her zaman gerekli olmayabilir.

Ancak daha hassas tepki süresi ölçümlerinde dikkate alınması faydalıdır.

Bu konu çocuklara gerçek elektronik sistemlerde fiziksel parçaların kusursuz davranmadığını gösteren güzel bir örnektir.

Refleks Oyunu Çalışmıyorsa Neler Kontrol Edilmeli?

Buton Bağlantısı

Butonun doğru breadboard satırlarına yerleştirildiğinden emin olunmalıdır.

LED Yönü

LED'in bağlantı yönü kontrol edilmelidir.

Pin Numaraları

Kod içerisindeki pin numaralarıyla fiziksel bağlantılar aynı olmalıdır.

INPUT_PULLUP Kullanımı

Buton mantığının HIGH ve LOW durumları doğru yorumlanmalıdır.

Serial Monitor

Arduino'nun hangi mesajları gönderdiği takip edilerek problemin hangi aşamada olduğu anlaşılabilir.

Refleks Oyunu STEM Projesi midir?

Evet. Proje STEM yaklaşımındaki farklı becerileri bir araya getirir.

Bilim

İnsan tepki süresi ve zaman kavramı gözlemlenebilir.

Teknoloji

Arduino ve elektronik bileşenler kullanılır.

Mühendislik

Çalışan bir oyun sistemi ve kullanıcı arayüzü tasarlanır.

Matematik

Milisaniye değerleri ölçülür, çıkarılır ve karşılaştırılır.

Bu nedenle oyun gibi görünen proje aslında birçok farklı öğrenme alanını bir araya getirir.

Projeyi Bilimsel Deneye Nasıl Dönüştürebiliriz?

Refleks oyunu yalnızca yarışmak için kullanılmak zorunda değildir.

Çocuk kendi küçük deneyini de tasarlayabilir.

Örneğin:

  • 10 kez ölçüm yapılabilir.
  • Her turun sonucu kaydedilebilir.
  • En hızlı ve en yavaş tepki bulunabilir.
  • Sonuçların ortalaması hesaplanabilir.

Böylece elektronik proje veri toplama çalışmasına dönüşür.

Örnek Sonuç Tablosu

Tur Tepki Süresi
1 342 ms
2 301 ms
3 289 ms
4 315 ms

Bu değerler yalnızca örnektir.

Öğrenciler kendi sonuçlarını kaydederek performanslarının turlar arasında nasıl değiştiğini inceleyebilir.

Hazır Projeyi Nasıl Geliştirebiliriz?

Temel refleks oyunu çalıştıktan sonra çocuk kendi özelliklerini ekleyebilir.

  • Buzzer ekleyebilir miyiz?
  • İki oyunculu hale getirebilir miyiz?
  • En iyi skoru kaydedebilir miyiz?
  • OLED ekranda sonucu gösterebilir miyiz?
  • Yanlış zamanda basıldığında ceza verebilir miyiz?
  • Üç farklı LED ile dikkat oyunu yapabilir miyiz?
  • Beş tur sonunda toplam puan hesaplayabilir miyiz?

Böylece basit bir tepki süresi ölçer zaman içerisinde daha kapsamlı bir elektronik oyuna dönüşebilir.

Bilişim Garajı ile Elektroniği Oyuna Dönüştürün

Elektronik ve kodlama öğrenmenin yalnızca sensör ölçmek veya devre kurmak anlamına gelmesi gerekmez.

Arduino ile oyunlar, yarışmalar ve etkileşimli sistemler geliştirerek öğrenme süreci daha eğlenceli hale getirilebilir.

Kırmızı ACT-200 Arduino Seti

Kırmızı ACT-200 Arduino Seti, Arduino, breadboard ve farklı elektronik bileşenlerle uygulamalı projeler geliştirmek isteyen öğrencilerin elektronik ve yazılım dünyasını keşfetmesine yardımcı olur.

LED ve buton gibi temel bileşenlerden başlanarak refleks oyunu gibi etkileşimli projeler geliştirilebilir.

Kırmızı ACT-200 Arduino Setini İnceleyin

Siyah ACT-300 Arduino Seti

Daha kapsamlı Arduino projelerine ilerlemek isteyen öğrenciler için Siyah ACT-300 Arduino Seti, farklı elektronik bileşenleri bir araya getirerek daha gelişmiş oyun ve otomasyon fikirleri geliştirmeye yardımcı olabilir.

Birden fazla buton, ekran, buzzer ve farklı sensörlerin projeye eklenmesiyle temel oyun daha kapsamlı hale getirilebilir.

Siyah ACT-300 Arduino Setini İnceleyin

Elektronik Devreden Gerçek Bir Oyuna

Refleks oyunu projesinin en eğlenceli tarafı, birkaç basit elektronik parçanın oyuncuyla etkileşim kurabilen bir sisteme dönüşmesidir.

LED sinyal verir.

Oyuncu tepki gösterir.

Buton bu tepkiyi Arduino'ya iletir.

Arduino geçen zamanı hesaplar.

Sonuç oyuncuya gösterilir.

Yani çocuk yalnızca kod yazmaz.

Kuralları, girdileri, çıktıları ve puanlama mantığı olan küçük bir oyun sistemi tasarlar.

Sık Sorulan Sorular

Arduino ile refleks oyunu yapılabilir mi?

Evet. Arduino, LED ve buton kullanılarak oyuncunun tepki süresini ölçen basit bir refleks oyunu geliştirilebilir.

Arduino tepki süresini nasıl ölçer?

LED'in yandığı an ile oyuncunun butona bastığı an arasındaki süre hesaplanarak tepki süresi milisaniye olarak bulunabilir.

Refleks oyununda neden rastgele bekleme kullanılır?

Oyuncunun LED'in ne zaman yanacağını önceden tahmin etmesini zorlaştırmak ve oyunu daha adil hale getirmek için rastgele bekleme süresi kullanılabilir.

Oyuna buzzer eklenebilir mi?

Evet. LED'in yanında sesli başlangıç sinyali oluşturmak veya sonuçlara göre farklı sesler vermek için buzzer kullanılabilir.

İki oyunculu refleks oyunu yapılabilir mi?

Evet. İki farklı buton kullanılarak hangi oyuncunun önce bastığını belirleyen yarışma sistemi oluşturulabilir.

Sonuç LCD veya OLED ekranda gösterilebilir mi?

Evet. Tepki süresi küçük bir ekranda gösterilerek proje bilgisayardan bağımsız hale getirilebilir.

Bu proje çocuklar için uygun mudur?

Temel Arduino, breadboard, LED ve buton kullanımını öğrenmiş öğrenciler için kodlama ile oyun mantığını birleştiren eğlenceli proje örneklerinden biridir.

Sonuç

Arduino ile refleks oyunu projesi, çocukların elektronik ve kodlamayı eğlenceli bir uygulamada birleştirmesine yardımcı olur.

LED oyuncuya sinyal verir, buton kullanıcının tepkisini sisteme aktarır ve Arduino iki olay arasındaki süreyi ölçerek sonucu hesaplar.

Bu süreç içerisinde dijital giriş-çıkış, zaman ölçümü, rastgele sayı üretimi, koşullar ve değişkenler gibi önemli programlama kavramları uygulamalı olarak öğrenilebilir.

Daha sonra buzzer, ekran, ikinci oyuncu veya puanlama sistemi eklenerek basit proje gerçek bir elektronik oyuna dönüştürülebilir.

Çünkü kodlamanın en keyifli taraflarından biri, yazdığınız birkaç satır kodu oynanabilir bir fikre dönüştürebilmektir.

Bloglara Dön
WhatsApp