Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden.
Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.
mfg ein Moderator.
//Variablendefinitionen
int ROTE_LED=D4;
int buttonPin=10;
int LAST_MILLIS=0;
void setup() {
// put your setup code here, to run once:
pinMode(ROTE_LED, OUTPUT);
pinMode(buttonPin, INPUT);
digitalWrite(ROTE_LED, HIGH);
}
void loop() {
// put your main code here, to run repeatedly:
//digitalWrite(ROTE_LED, HIGH);
if (digitalRead(ROTE_LED) == HIGH) {
digitalWrite(ROTE_LED, HIGH);
}
else {
digitalWrite(ROTE_LED, LOW);
Serial.println(LAST_MILLIS=millis());
}
}
Das wäre der Code den wir bis jetzt haben
Den Rest macht ihr alleine
Ist ja Eure Aufgabe.
Für sowas nimmt man Blatt und schreibt nach der Reiche was soll Passieren danach baut ihr den Code.
//Variablendefinitionen
int ROTE_LED = D4;
int buttonPin = 10;
unsigned long LAST_MILLIS ;
unsigned long startZeit ;
void setup() {
// put your setup code here, to run once:
pinMode(ROTE_LED, OUTPUT);
pinMode(buttonPin, INPUT);
digitalWrite(ROTE_LED, HIGH);
}
void loop() {
//LED wurde im Setup eingeschaltet
if (digitalRead(buttonPin) == HIGH)//Taster Abfrage
{
startZeit = millis(); //Zeitmessung start
//digitalWrite(ROTE_LED, HIGH);
}
if (digitalRead(buttonPin) == LOW)
{
digitalWrite(ROTE_LED, LOW);
LAST_MILLIS = millis();
}
}
Da ich nicht weis wie der Taster angeklemmt ist gehe davon aus das der gegen VCC geschaltet wird, zeichnet mall die Schaltung.
Taster schaltet man gegen GND sonnst kan passieren das der Eingang flattert
Dadurch wird aber die Logik umgekehrt , und man deklariert den Eingang mit
//Variablendefinitionen
const byte ROTE_LED = 4;
const byte buttonPin = 10;
unsigned long LAST_MILLIS = 0;
const bool gedrueckt = LOW; // ACHTUNG! DAS KOMMT DARAUF AN, WIE DER TASTER ANGESCHLOSSEN IST!!!
uint32_t startzeit, endzeit;
void setup()
{
// put your setup code here, to run once:
pinMode(ROTE_LED, OUTPUT);
digitalWrite(ROTE_LED, LOW);
pinMode(buttonPin, INPUT); // NUR WENN DER EXTERN BESCHALTEN IST!
// pinMode(buttonPIN, INPUT_PULLUP); // WENN DER TASTER NICHT EXTERN BESCHALTEN IST, DANN NACH GND SCHALTEN!
randomSeed(A0);
}
void loop()
{
if (digitalRead(buttonPin) == gedrueckt)
{
if (digitalRead(ROTE_LED) == HIGH)
{
endzeit = millis();
digitalWrite(ROTE_LED, LOW);
Serial.print(F("Reaktionszeit: "));
Serial.print(endzeit - startzeit);
Serial.println(F(" ms"));
}
endzeit = millis(); // Wird neu gesetzt um die ZufallsSperre bei gedrückter Taste nicht zu umgehen
}
else if (digitalRead(ROTE_LED) == LOW)
{
if (millis() - endzeit > static_cast<unsigned long>(random(5000, 15000)))
{
digitalWrite(ROTE_LED, HIGH);
startzeit = millis();
}
}
}
Falsch gemacht, Die sollen lernen und nicht abschreiben, habe extra Stolpersteine eingebaut . außer dem Schüler sollen benutzten das was die kennen und nicht sofort höheres C++