// 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); } 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) digitalWrite(reflexlicht1, HIGH); //soll licht ausgeben, damit der erkennt ob da was drauf steht // Zaehlen: if (sensorwert1 == HIGH) { press=count++; Y=1*press; //y=mx-b WOFUER WIRD Y GEBRAUCHT? delay (100); // WARUM WIRD HIER 100ms GEWARTET? } // Count Auslesung + reset: // Hole aktuelle Zeit in ms unsigned long currentMillis = millis(); // Wenn Zeitunterschied >= festgelegtes Interval if (currentMillis - previousMillis >= interval_ms) { // aktuelle Zeit speichern fuer naechsten Durchlauf previousMillis = currentMillis; // Zunaechst alle LEDs ausschalten digitalWrite(LEDrot, LOW); digitalWrite(LEDgelb, LOW); digitalWrite(LEDgruen, LOW); /* 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; } /* Moeglicherweise delay() einfuegen, um UART nicht zu fluten */ delay(100); }