diff --git a/erkenn_opto.ino b/erkenn_opto.ino deleted file mode 100644 index e389b08..0000000 --- a/erkenn_opto.ino +++ /dev/null @@ -1,64 +0,0 @@ -int reflexlicht1 = 3; // lampre bei reflex1 -int reflexscan1 = 4;// erkennungsteil bei reflex1 -int LEDrot = 5; -int LEDgruen = 6; -int LEDgelb = 7; -int sensorwert1 = 0;//kein pin sondern einfach dass das normalerweise eine null ist -int val; -int press; //umgeflogen -int count = 0; -int Y; - - - -void setup() { - Serial.begin(9600); - - pinMode(reflexlicht1, OUTPUT); - pinMode(reflexscan1, INPUT); //denk an den wiederstand 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 - - - // Zählung: - val=digitalRead(sensorwert1); - if (val==HIGH) { - press=count++; - Y=1*press; //y=mx-b - delay (100); - } - - - // Count Auslesung + reset: - - - // unter3=rot; 3-6=gelb; über6=grün; - if (count<= 3) { - digitalWrite(LEDrot, HIGH); - delay (500); } - else { - digitalWrite(LEDrot, LOW); - } - - - if (3 < count && count <= 6) { - digitalWrite(LEDgelb, HIGH); - } - - if (count > 6) { - digitalWrite(LEDgruen, HIGH); - } - - -} diff --git a/erkenn_opto/erkenn_opto.ino b/erkenn_opto/erkenn_opto.ino new file mode 100644 index 0000000..a23a2d1 --- /dev/null +++ b/erkenn_opto/erkenn_opto.ino @@ -0,0 +1,86 @@ +// 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); + +} diff --git a/erkenn_opto/sketch.json b/erkenn_opto/sketch.json new file mode 100755 index 0000000..ee258ed --- /dev/null +++ b/erkenn_opto/sketch.json @@ -0,0 +1,9 @@ +{ + "cpu": { + "fqbn": "arduino:avr:mega:cpu=atmega2560", + "name": "Arduino Mega or Mega 2560", + "type": "serial" + }, + "secrets": [], + "included_libs": [] +} \ No newline at end of file