//วงจรทดสอบการตอบสนองของร่างกายต่อแสงสี แดง น้ำเงิน เขียว
const int ledPin = 8; // ขาที่ใช้ต่อ LED
const int buttonPin = 2; // ขาที่ใช้ต่อปุ่มกด
unsigned long startTime; // เวลาที่เริ่มจับ
unsigned long reactionTime; // เวลาตอบสนอง
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP); // ใช้ Pull-up ภายใน
Serial.begin(9600);
Serial.println("กดปุ่มเพื่อเริ่มต้น...");
}
void loop() {
while (digitalRead(buttonPin) == HIGH); // รอให้กดปุ่มก่อนเริ่ม
delay(random(1000, 5000)); // หน่วงเวลาแบบสุ่ม 1-5 วินาที
digitalWrite(ledPin, HIGH); // เปิดไฟ LED
startTime = millis(); // บันทึกเวลาเริ่มต้น
while (digitalRead(buttonPin) == HIGH); // รอให้กดปุ่ม
reactionTime = millis() - startTime; // คำนวณเวลาตอบสนอง
digitalWrite(ledPin, LOW); // ปิดไฟ LED
Serial.print("เวลาตอบสนองของคุณ: ");
Serial.print(reactionTime / 1000.0, 3); // แสดงเป็นวินาที
Serial.println(" วินาที");
delay(2000); // หน่วงเวลาก่อนเริ่มรอบใหม่
Serial.println("กดปุ่มเพื่อเริ่มต้นรอบใหม่...");
}