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.
0 Yorumlar