Arduino ile Refleks Ölçer Devresi (Proje örnekleri-1)

Arduino ile Refleks Ölçer Devresi (Proje Örnekleri-1)

Arduino ile Refleks Ölçer Devresi (Proje Örnekleri-1)

1. Giriş

Bu projede, **Arduino ile refleks ölçer devresi** kuracağız. Proje, bir butona basıldığında birinci LED'in hemen yanmasını sağlayacak ve ikinci LED rastgele bir zamanda yanacak. İkinci LED'in yanmasından sonra, kullanıcı ikinci butona basana kadar geçen süreyi **mikrosaniye** cinsinden ölçüp **seri monitöre** yazdıracağız. Bu tür projeler refleks hızlarını ölçmek için kullanılır.

2. Gerekli Bileşenler

  • Arduino kartı (Arduino Uno veya diğer modeller)
  • Butonlar (Birinci ve ikinci butonlar)
  • LED'ler (Birinci ve ikinci LED)
  • 220Ω dirençler (LED'ler için)
  • Jumper kablolar
  • 5V DC güç kaynağı (Arduino için)
  • Arduino IDE (Kod yazma ve yükleme için)

3. Devre Kurulumu

Devremizde, iki buton ve iki LED olacak. Birinci butona basıldığında, birinci LED hemen yanacak. İkinci LED ise rastgele bir zamanda yanacak. Kullanıcı ikinci butona bastığında, geçen süre mikrosaniye cinsinden ölçülecek ve **seri monitör**'de gösterilecektir.

Devre Şeması

Devreyi kurarken aşağıdaki bağlantıları yapmalısınız:

  • Buton1 -> Arduino'nun **Pin 2**'sine bağlanacak.
  • Buton2 -> Arduino'nun **Pin 3**'üne bağlanacak.
  • LED1 -> Arduino'nun **Pin 4**'üne bağlanacak.
  • LED2 -> Arduino'nun **Pin 5**'ine bağlanacak.
  • Her LED'e **220Ω direnç** paralel bağlanacak.

4. Kodlama

Arduino'nun birinci butona basıldığında birinci LED'i hemen yakması, ikinci LED'in rastgele bir zaman diliminde yanmasını ve sonrasında ikinci butona basılana kadar geçen süreyi mikrosaniye cinsinden ölçmesini sağlayacağız. Bu süreyi **seri monitöre** yazdıracağız.

Kod Örneği


const int buttonPin1 = 2;  // 1. butonun bağlı olduğu pin
const int buttonPin2 = 3;  // 2. butonun bağlı olduğu pin
const int ledPin1 = 4;     // 1. LED'in bağlı olduğu pin
const int ledPin2 = 5;     // 2. LED'in bağlı olduğu pin

unsigned long startTime;   // Başlangıç zamanı
unsigned long elapsedTime; // Geçen süre

void setup() {
  pinMode(buttonPin1, INPUT);   // 1. butonu giriş olarak ayarla
  pinMode(buttonPin2, INPUT);   // 2. butonu giriş olarak ayarla
  pinMode(ledPin1, OUTPUT);     // 1. LED'i çıkış olarak ayarla
  pinMode(ledPin2, OUTPUT);     // 2. LED'i çıkış olarak ayarla
  Serial.begin(9600);          // Seri haberleşmeyi başlat
}

void loop() {
  // 1. butona basıldığında 1. LED'i yak
  if (digitalRead(buttonPin1) == HIGH) {
    digitalWrite(ledPin1, HIGH); // LED1 yanacak
    delay(100);  // LED'in yanma süresi
  } else {
    digitalWrite(ledPin1, LOW);  // LED1 sönük
  }

  // 2. LED rastgele bir zamanda yanacak
  if (random(1, 100) < 10) {  // %10 şansla LED2 yanacak
    digitalWrite(ledPin2, HIGH);  // LED2 yanacak
    startTime = micros();         // Başlangıç zamanını al
  } else {
    digitalWrite(ledPin2, LOW);   // LED2 sönük
  }

  // 2. butona basıldığında geçen süreyi hesapla
  if (digitalRead(buttonPin2) == HIGH && digitalRead(ledPin2) == HIGH) {
    elapsedTime = micros() - startTime; // Geçen zamanı hesapla
    Serial.print("Geçen süre (mikrosaniye): ");
    Serial.println(elapsedTime);  // Geçen süreyi seri monitöre yazdır
    delay(1000);  // Süreyi yazdırdıktan sonra kısa bir gecikme
  }
}
    

Bu Arduino kodu, ilk butona basıldığında **1. LED**'i yakar. **2. LED**, rastgele bir zaman diliminde yanar. Kullanıcı ikinci butona bastığında, **mikrosaniye cinsinden geçen süre** hesaplanır ve **seri monitöre** yazdırılır.

5. Sonuç

Bu projede, Arduino kullanarak **refleks ölçer devresi** yaptık. Kullanıcı, 1. butona basarak LED'in hemen yanmasını sağladı, ardından 2. LED rastgele bir zamanda yandı. Kullanıcı, 2. butona basarak geçen süreyi mikrosaniye cinsinden ölçtü. Bu tür bir proje, refleks ölçümü yapmak ve hız analizleri yapmak için kullanılabilir.

Yorum Gönder

0 Yorumlar