
Menguji Kecepatan Refleks dengan Teknologi
Game reaksi adalah proyek klasik yang menyenangkan untuk mempelajari logika pemrograman dan timing pada mikrokontroler. Di tahun 2026, meskipun game digital sangat dominan, membuat perangkat fisik yang menantang kecepatan tangan tetap menjadi cara terbaik untuk memahami interaksi manusia dan mesin.
Dalam tutorial ini, kita akan membuat game sederhana: Sebuah LED akan menyala secara acak, dan Anda harus menekan tombol secepat mungkin. Skor kecepatan Anda akan dihitung berdasarkan waktu yang dibutuhkan.
Komponen yang Dibutuhkan
- Arduino Uno atau Nano.
- 1x LED (Warna apa saja).
- 1x Push Button.
- 1x Resistor 220 Ohm (untuk LED).
- 1x Resistor 10k Ohm (untuk Pull-down tombol).
- Kabel Jumper dan Breadboard.
Skema Perkabelan
- LED: Kaki positif (anode) ke Pin D13 melalui resistor 220 Ohm, kaki negatif ke GND.
- Tombol: Salah satu kaki ke 5V, kaki lainnya ke Pin D2 sekaligus ke GND melalui resistor 10k Ohm.
Kode Program (Arduino IDE)
Program ini menggunakan fungsi millis() untuk menghitung selisih waktu antara lampu menyala dan saat tombol ditekan.
const int ledPin = 13;
const int buttonPin = 2;
long startTime;
long reactionTime;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
Serial.begin(9600);
Serial.println("Game Reaksi Dimulai! Tunggu lampu menyala...");
}
void loop() {
// Tunggu waktu acak antara 2 hingga 5 detik
delay(random(2000, 5000));
digitalWrite(ledPin, HIGH);
startTime = millis();
while (digitalRead(buttonPin) == LOW) {
// Menunggu pemain menekan tombol
}
reactionTime = millis() - startTime;
digitalWrite(ledPin, LOW);
Serial.print("Waktu Reaksi Anda: ");
Serial.print(reactionTime);
Serial.println(" ms");
delay(3000); // Jeda sebelum ronde berikutnya
}
Cara Bermain
- Buka Serial Monitor pada Arduino IDE Anda.
- Perhatikan LED. Jangan menekan tombol sebelum lampu menyala!
- Begitu LED menyala, tekan tombol secepat mungkin.
- Lihat skor Anda dalam milidetik (ms). Semakin kecil angkanya, semakin cepat refleks Anda.
Kesimpulan
Proyek ini mengajarkan penggunaan fungsi random() dan manajemen waktu dengan millis(). Untuk pengembangan lebih lanjut, Anda bisa menambahkan layar LCD untuk menampilkan skor tertinggi atau menambahkan lebih banyak LED dan tombol untuk membuat game yang lebih kompleks.
