|
|
- // 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);
-
- }
|