Reaksiyon Hızı Test Cihazı
Proje Amacı
Rastgele bir gecikmeden sonra yanan LED'e ne kadar hızlı tepki verdiğinizi milisaniye hassasiyetinde ölçer — ortalama insan görsel tepki süresi 200-250 ms civarındadır, kendi sonucunuzla karşılaştırabilirsiniz.
Gerekli Malzemeler
- Arduino Uno
- LED
- Buton
- 220Ω direnç
- Breadboard
Gerekli Kütüphaneler
Gerekli ek kütüphane yok, sadece Arduino IDE'nin yerleşik fonksiyonları kullanılıyor.
Pin Bağlantıları
| Bileşen Pini | Bağlantı |
|---|---|
| LED Anot (220Ω üzerinden) | D9 |
| LED Katot | GND |
| Buton | D2 (INPUT_PULLUP) |
Devre Şeması
Arduino Kodu
| 1 | const int led=9, buton=2; |
| 2 | unsigned long baslangicZamani; |
| 3 | |
| 4 | void setup(){ |
| 5 | pinMode(led, OUTPUT); |
| 6 | pinMode(buton, INPUT_PULLUP); |
| 7 | Serial.begin(9600); |
| 8 | randomSeed(analogRead(A5)); |
| 9 | } |
| 10 | |
| 11 | void loop(){ |
| 12 | digitalWrite(led, LOW); |
| 13 | int bekleme = random(2000, 6000); |
| 14 | delay(bekleme); |
| 15 | |
| 16 | digitalWrite(led, HIGH); |
| 17 | baslangicZamani = millis(); |
| 18 | |
| 19 | while(digitalRead(buton) == HIGH); |
| 20 | |
| 21 | unsigned long tepkiSuresi = millis() - baslangicZamani; |
| 22 | Serial.print("Tepki süresi: "); |
| 23 | Serial.print(tepkiSuresi); |
| 24 | Serial.println(" ms"); |
| 25 | |
| 26 | digitalWrite(led, LOW); |
| 27 | delay(2000); |
| 28 | } |
Çalışma Açıklaması
random(2000, 6000) aralığı LED'in ne zaman yanacağını öngörülemez kılmak için kasıtlı geniş tutulmuştur. 16x2 LCD eklenerek sonucun ekranda gösterilmesi de mümkündür.
Test Bilgisi
Devreyi kurun, kodu yükleyin, Seri Monitör'ü açın. LED yanana kadar bekleyin, yanar yanmaz butona hızlıca basın; Seri Monitör'de tepki sürenizi (ms) görün. Arkadaşlarınızla karşılaştırın!
Olası Sorunlar ve Çözümleri
Süre hep aynı/mantıksız çıkıyorsa: randomSeed(analogRead(A5)) satırının A5 boş/bağlı olmayan bir pine bakmasına dikkat edin, rastgelelik bu okumaya dayanır. Buton basılı algılanmıyor gibi görünüyorsa endişelenmeyin: while döngüsü butona basılana kadar programı kasıtlı olarak durdurur, bu bir hata değil tasarımın kendisidir.
Alternatif Çözümler
Tek oyunculu yerine 2 butonla 2 oyunculu yarışma modu eklenebilir. Sonuç sayısal olarak LCD/OLED ekranda gösterilebilir. En iyi skor (en düşük süre) EEPROM'a kaydedilerek kalıcı bir rekor tablosu tutulabilir.
Benzer Projeler
LDR Otomatik Lamba
Ortam ışığı belli bir eşiğin altına düşünce bir LED'i (gerçek uygulamada bir röle üzerinden lambayı) otomatik yakar, ışık geri gelince söndürür — sokak lambalarının kullandığı fotosel mantığının ta kendisi.
Yağmur Sensörü
Balkon kapısını açık unutup yağmura yakalanma sorununa karşı: yağış algılandığında LED ile görsel uyarı verir, sensör değerini de Seri Port'a yazar.
Toprak Nem Sensörü
Toprağın nem seviyesini ölçüp kuruduğunda LED ile uyarır — proje #23'te aynı sensör bir su pompasını tetikleyecek şekilde genişletiliyor.