// Pins (const, da sich die Werte nicht aendern) const int reflexlicht1 = 3; // lampre bei reflex1 const int reflexscan1 = 4; // erkennungsteil bei reflex1 const int LEDrot = 5; const int LEDgruen = 6; const int LEDgelb = 7; // Variablen int sensorwert1 = 0; // kein pin sondern einfach dass das normalerweise eine null ist int val; int press; // umgeflogen unsigned int count = 0; int Y; // Timer Variablen unsigned long previousMillis = 0; // zum Speichern des letzten Timerwertes const long interval_ms = 10000; // Zeitraum in Millisekunden (10000 = 10 Sekunden) void setup() { Serial.begin(9600); pinMode(reflexlicht1, OUTPUT); pinMode(reflexscan1, INPUT); //denk an den Widerstand den du noch brauchst!! sonst kann es passieren dass ein kurzschlluss passiert pinMode(LEDrot, OUTPUT); pinMode(LEDgruen, OUTPUT); pinMode(LEDgelb, OUTPUT); digitalWrite(reflexlicht1, HIGH); digitalWrite(LEDrot, LOW); digitalWrite(LEDgelb, LOW); digitalWrite(LEDgruen, LOW); } void loop() { sensorwert1 = digitalRead(reflexscan1) ; // der sensorwert ist die auslesung von dem scanteil. sieht kompliziert aus aber vereinfacht alles Serial.print("Sensorwert1 = "); // bedeutet nur dass das was blau ist nacher im serial monitor steht Serial.println(sensorwert1); // schreibt den senorwert in den serialmonitor (immer eine zahl) // Zaehlen: if (sensorwert1 == HIGH) { press = count++; previousMillis = millis(); // aktuellen Timerwert speichern } // Hole aktuelle Zeit in ms // millis() gibt den aktuellen Wert des System Timers zurueck unsigned long currentMillis = millis(); // Wenn Zeitunterschied >= festgelegtes Interval if (currentMillis - previousMillis >= interval_ms) { /* Jetzt je nach Stand von count einzelne LED anschalten 0-3: rot; 4-6: gelb; > 6: gruen */ if (count <= 3) { digitalWrite(LEDrot, HIGH); delay (500); // WOZU DAS DELAY? } else if (3 < count && count <= 6) { digitalWrite(LEDgelb, HIGH); } else if (count > 6) { digitalWrite(LEDgruen, HIGH); } // Zaehler zuruecksetzen count = 0; delay(5000) // alle LEDs ausschalten digitalWrite(LEDrot, LOW); digitalWrite(LEDgelb, LOW); digitalWrite(LEDgruen, LOW); } /* Moeglicherweise delay() einfuegen, um UART nicht zu fluten */ delay(1000); }