Reaktionstest

Hi!
Ich benutze den Arduino Uno.
Ich bin erst neu dabei und habe erst gestern angefangen.
Als mein erstes Projekt plane ich einen Reaktionszeit Messer zu programmieren.

Es sollte so Funktionieren:

Eine LED soll nach einer zufälligen Zeit angehen, danach soll möglichst schnell auf einen Taster gedrückt werden und die Zeit (Reaktionszeit) zwischen dem Beginn des Aufleuchtens der LED und dem drücken des Tasters auf dem seriellen Monitor angezeigt werden.

Ich habe einige Sachen versucht, aber es war vergebens.
Nun habe ich diese Seite besucht in der Hoffnung jemanden zu finden der mir helfen kann und evt. das ganze Programm sagen kann.
Das wäre sehr nett danke :smiley:

Die gleiche Frage mit dem gleichen Text hatten wir doch gerade nebenan.

Was soll das werden? Ein globales Trolling?

Gruß Tommy

Tommy ich will einfach das mir jemand hilft aber du hilfst mir nicht du beleidigst mich nur bitte halte dich fern von mir oder ich zeige dich wegen Cyber Mobbing an!

Hi

Genau SO musst Du Dich hier einführen.

Keine Angst, ich habe 'nebenan' gerade Mal quer gelesen.
Bis jetzt kam von Dir leider nur Rumgeheule.

Wie stellst Du Dir Dein Programm vor?
Wir klöppeln Dir hier den Code zusammen, leiten Dich per Skype an, wie Du Was Wann Wo klicken/drücken musst?

In den letzten zwei Tagen sind hier 'sehr seltsame Gestalten' aufgeschlagen ... ist irgendwo 'was' passiert, daß Die Alle Ausgang haben?

@melanieH
Belehre mich eines Besseren und zeige uns, was Du kannst - also nicht mit der Keule durch's Dorf rennen und 'Sexismus' brüllen, sondern ran an den Sketch und die erste ver***e LED blinken lassen.
Kurz danach können wir über den Mars-Rover und die Raketenwissenschaft schwätzen ...

In diesem Sinne

Ich kann viele kleine Dinge aber aber nicht alles zusammen,

ich habe eine Ampel programmiert (auf einem anderen PC)
wo ich dann für jede LED ein PinMode hatte.
Diese LEDS habe ich dann mit digitalWrite(13,HIGH) angeschaltet usw mit delay(1500).

Du wolltest wissen wie man eine LED zum blinken bringt (ich weiß das du es weißt aber du willst es von mir wissen)

Ich würde so vorgehen:

void setup() {
pinMode(13,OUTPUT);
digitalWrite(13,HIGH);
delay(500);
digitalWrite(13,LOW);

}

void loop() }

Das habe ich dem TO nebenan auch schon versucht zu erklären - erfolglos.
Dafür will er/sie (nebenan ist es ein eher männlicher Nick) mich jetzt wegen "Cybermobbing" anzeigen. Also passt auf, das kann Euch auch blühen :wink: wenn Ihr nicht einfach die Lösung rausrückt.

Gruß Tommy

Hi

Ist doch schon Mal ein Anfang.
Dann lass uns doch überlegen, was wir Alles brauchen.
Eine LED
Pro Spieler einen (stabilen) Taster - eine Art Schlag-Taster (wie in der Quiz-Show, wo man auch Mal richtig drauf wemsen kann, ohne direkt Sperrmüll zu produzieren).
... für den Sketch reichen normale Taster, zum Testen auch Drahtbrücken.

Dann das größte Problem: Der Zufall.
Bis darauf, daß ein Ausfall 'zufällig' dann stattfindet, wenn's am Wenigstens passt, ist hier leider Nichts zufällig :wink:
(aka Murphy's Gesetz)
Der Arduino bietet aber eine Zufalls-Funktion an (random();).
Diese bringt aber bei JEDEM Einschalten genau die gleiche Nummernfolge - also nicht wirklich zufällig.
Das kann man abfedern, indem man die Zufallszahl 'mittendrin' starten lässt - dafür werden gerne unbeschaltete Eingänge missbraucht - Diese empfangen 'Radio' und haben dadurch einen zufälligen Wert.

Ach ja : einen Start-Knopf wird wohl auch noch gebraucht.

Die Reaktionszeit in ms oder µs kann dann per millis(); (ms) ausgegeben werden.

Erstelle als Erstes einen Ablauf, was wann passieren soll.
Möglichst 'für Idioten' - also wirklich jede Kleinigkeit darin erwähnen - Du musst ja auch jede Kleinigkeit programmieren.
Stelle Dir vor, Du musst Dein Programmablauf Deiner Großmutter erklären (aka Rubberduck Debugging)

MfG

@Tommy ... besser Du als ich :wink:
(wir werden das Kind schon schaukeln, vll. geht's ja jetzt in die richtige Richtung)

Ich wünsche Dir alles erdenkliche Glück und alle Geduld der Welt. Evtl. schafft Ihr es ja und ich habe nur die falschen Antworten bekommen.

Ich werde in beiden Foren aus dem Thema endgültig aussteigen.

Gruß Tommy

Jungs, meint ihr ich bin verloren wenn ich mit meinem RS485 upload problem nicht weiterkomme?
Darf ich dann nebenan nicht posten?

Doch, darfst Du, wir wissen dort aber auch nicht mehr, als hier.

Gruß Tommy

Schön, dass du dich wieder eingekriegt hast, polibär/melanie :wink:

void setup() {
pinMode(13,OUTPUT);
digitalWrite(13,HIGH);
delay(500);
digitalWrite(13,LOW);

}

void loop() }

Da muss man die Fehlermeldung

expected initializer before '}' token

korrigieren (Bedeutung: Irgendwas fehlt vor der letzten geschweiften Klammer } )

Die Programmiererei ist eine elend pingelige Angelegenheit
Ändern wir die letzte Zeile in

void loop() { }

und gut ist.
Wenn dann alles klappt ( hochladen ), blinkt die eingebaute LED und eine externe, wenn du eine solche mit Vorwidersand richtig an Pin13 angeschlossen hast, für eine halbe Sekunde auf.
Dann ist Ruhe, bis du den Arduino neu startest oder den Reset-Knopf drückst.

Wie geht es jetzt weiter?

  1. Du willst einen Taster einlesen.
  2. Du willst rauskriegen, wann der Taster gedrückt wurde.
  3. Du willst diese Zahl am PC anzeigen.
  4. Das Aufblinken soll zufällig verzögert passieren.

Meine Tips:

  1. ist nicht ganz einfach, gibt aber Beispiele in der IDE.
  2. Die Funktion millis() kennst du schon
  3. Dazu gibt es auch Beispiele
  4. Das kannst du unabhängig von den ersten 3 Aufgaben machen, such mal nach der Funktion random hier in der Referenz.

Wenn die 4 Aufgaben alle ok sind, willst du natürlich 2 verschiedene Zeiten haben, und am PC nur den Unterschied zwischen der Zeit des zufällig verzögerten LED an und der Zeit des Tastendrucks anzeigen.

Viel Spass.

Danach kannst du immer noch über

Pro Spieler einen (stabilen) Taster - eine Art Schlag-Taster

nachdenken :wink:

postmaster-ino:
Hi

Ist doch schon Mal ein Anfang.
Dann lass uns doch überlegen, was wir Alles brauchen.
Eine LED
Pro Spieler einen (stabilen) Taster - eine Art Schlag-Taster (wie in der Quiz-Show, wo man auch Mal richtig drauf wemsen kann, ohne direkt Sperrmüll zu produzieren).
... für den Sketch reichen normale Taster, zum Testen auch Drahtbrücken.

Dann das größte Problem: Der Zufall.
Bis darauf, daß ein Ausfall 'zufällig' dann stattfindet, wenn's am Wenigstens passt, ist hier leider Nichts zufällig :wink:
(aka Murphy's Gesetz)
Der Arduino bietet aber eine Zufalls-Funktion an (random();).
Diese bringt aber bei JEDEM Einschalten genau die gleiche Nummernfolge - also nicht wirklich zufällig.
Das kann man abfedern, indem man die Zufallszahl 'mittendrin' starten lässt - dafür werden gerne unbeschaltete Eingänge missbraucht - Diese empfangen 'Radio' und haben dadurch einen zufälligen Wert.

Ach ja : einen Start-Knopf wird wohl auch noch gebraucht.

Die Reaktionszeit in ms oder µs kann dann per millis(); (ms) ausgegeben werden.

Erstelle als Erstes einen Ablauf, was wann passieren soll.
Möglichst 'für Idioten' - also wirklich jede Kleinigkeit darin erwähnen - Du musst ja auch jede Kleinigkeit programmieren.
Stelle Dir vor, Du musst Dein Programmablauf Deiner Großmutter erklären (aka Rubberduck Debugging)

MfG

@Tommy ... besser Du als ich :wink:
(wir werden das Kind schon schaukeln, vll. geht's ja jetzt in die richtige Richtung)

void setup() {

pinMode(13,INPUT); //ich habe gelsen, dass wenn man Input benutzt die Zahl random ist.
Serial.begin(9600); // da die Reaktionszeit später auf dem seriellen monitor angezeigt werden
muss benutze ich Serial begin
digitalRead(13,HIGH);

void loop() }

{
a = random (1,7); //für eine Random Zahl
delay(1000);
Serial.println(a);
}

Serial.println("Aufleuchten!") // wird dann auf dem seriellen monitor angezeigt wenn die LED leuchtet
a=0

So weit bin ich bis jetzt gekommen, ich bin mir sicher.dass da Fehler drin sind vorallem weiß ich garnicht wie man mit millis und dem Taster die Zeit messen muss ;/ da hab ich noch Schwierigkeiten

melanieH:
oder ich zeige dich wegen Cyber Mobbing an!

Das reicht mir. Danke und Aufwiedersehen.
Ich sperre mal diesen Tread für eine Woche (und alle weiteren von Dir bis Du dich mal beruhigt hast)
Uwe
Moderator