Introduzione al Progetto
Il progetto Arduino con prompt: test di riflessi è un’ottima occasione per esplorare le capacità di programmazione e di interazione hardware. Grazie ad Arduino, possiamo creare strumenti interattivi che non solo divertono, ma educano anche sull’importanza della risposta ai vari stimoli visivi.
Componenti Necessari
Per realizzare questo progetto, avrai bisogno di alcuni componenti fondamentali: una scheda Arduino, dei LED, un pulsante e varie resistenze. Questi materiali possono essere facilmente reperibili in negozi di elettronica. Assicurati di avere anche un computer con l’IDE di Arduino installato, che ti permetterà di scrivere e caricare il codice necessario sul tuo dispositivo.
Funzionamento del Test di Riflessi
Il test di riflessi consiste nel misurare il tempo di reazione degli utenti a stimoli luminosi. Quando il LED si accende, l’utente deve premere il pulsante il più rapidamente possibile. Il tempo impiegato viene quindi registrato e confrontato con test precedenti per valutare i miglioramenti. Questo progetto non solo fornisce un feedback immediato, ma permette anche di personalizzare diversi aspetti, come la velocità di accensione del LED e il numero di tentativi.
In conclusione, il progetto Arduino con prompt: test di riflessi è un modo entusiasmante per approfondire le conoscenze in elettronica e programmazione, rendendo l’apprendimento un’attività divertente e coinvolgente.
Componenti necessari:
1x Arduino (Uno/Nano)
1x LED (meglio rosso o verde)
1x Resistenza 220Ω
1x Pulsante
1x Resistenza 10kΩ (pull-down)
Breadboard + cavetti
Collegamenti:
LED
Anodo (+) → Pin 9
Catodo (–) → Resistenza 220Ω → GND
Pulsante
Un lato → 5V
Altro lato → Pin 2
Resistenza 10kΩ tra Pin 2 e GND (pull-down)
Come funziona:
Arduino aspetta un tempo casuale (2–5 secondi)
Si accende il LED
Devi premere il pulsante il più veloce possibile
Arduino calcola il tempo di reazione
Mostra il risultato nel Monitor Seriale
const int ledPin = 9;
const int buttonPin = 2;
unsigned long startTime;
unsigned long reactionTime;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
Serial.begin(9600);
randomSeed(analogRead(0));
Serial.println("=== TEST DI RIFLESSI ===");
}
void loop() {
// Attesa casuale tra 2 e 5 secondi
int waitTime = random(2000, 5000);
delay(waitTime);
Serial.println("PREPARATI...");
// Accende il LED
digitalWrite(ledPin, HIGH);
startTime = millis();
// Attende pressione pulsante
while (digitalRead(buttonPin) == LOW) {
// loop vuoto
}
reactionTime = millis() - startTime;
digitalWrite(ledPin, LOW);
Serial.print("Tempo di reazione: ");
Serial.print(reactionTime);
Serial.println(" ms");
// Feedback
if (reactionTime < 200) {
Serial.println("⚡ Fulmine!");
} else if (reactionTime < 400) {
Serial.println("👍 Buono!");
} else {
Serial.println("🐢 Lento!");
}
Serial.println("---------------------");
delay(3000); // pausa prima del prossimo test
}
