Browse Source

1st try to implement requested functionality

master
T. Meissner 4 years ago
parent
commit
937d7c2a96
3 changed files with 95 additions and 64 deletions
  1. +0
    -64
      erkenn_opto.ino
  2. +86
    -0
      erkenn_opto/erkenn_opto.ino
  3. +9
    -0
      erkenn_opto/sketch.json

+ 0
- 64
erkenn_opto.ino View File

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

+ 86
- 0
erkenn_opto/erkenn_opto.ino View File

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

+ 9
- 0
erkenn_opto/sketch.json View File

@ -0,0 +1,9 @@
{
"cpu": {
"fqbn": "arduino:avr:mega:cpu=atmega2560",
"name": "Arduino Mega or Mega 2560",
"type": "serial"
},
"secrets": [],
"included_libs": []
}

Loading…
Cancel
Save