Programmierung: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Zeile 20: | Zeile 20: | ||
int DELAYVAL = 400; | int DELAYVAL = 400; | ||
float v = 0; | float v = 0; //Variablen Deklaration | ||
float ontime, offtime; | float ontime, offtime; | ||
int pin = 5; | int pin = 5; | ||
Zeile 28: | Zeile 28: | ||
void setup() { | void setup() { | ||
FastLED.addLeds<WS2812B, LED_PIN, GRB>(leds, NUM_LEDS); | FastLED.addLeds<WS2812B, LED_PIN, GRB>(leds, NUM_LEDS); //LEDs Deklarieren | ||
Serial.begin(115200); | Serial.begin(115200); | ||
pinMode(pin, INPUT); | pinMode(pin, INPUT); | ||
Zeile 34: | Zeile 34: | ||
void loop() { | void loop() { | ||
for (int i = 0; i < 5; i++) { | for (int i = 0; i < 5; i++) { //Messung wie lange der Sensor ein High Signal sendet | ||
ontime = pulseIn(pin, HIGH); | ontime = pulseIn(pin, HIGH); | ||
speedarray[i] = ontime; | speedarray[i] = ontime; // Messungen in Array Speichern | ||
delay(250); | delay(250); | ||
} | } | ||
sortArray(speedarray, 5); | sortArray(speedarray, 5); // Messungen nach Größe sortieren | ||
mitte = speedarray[2]; | mitte = speedarray[2]; // Median-Wert herausfinden | ||
if(mitte > 0 && mitte <= 25000){ | if(mitte > 0 && mitte <= 25000){ // Fehler aussortieren | ||
v = (mitte / T) * 100; | v = (mitte / T) * 100; | ||
} | } | ||
Zeile 57: | Zeile 51: | ||
v = 0.0; | v = 0.0; | ||
} | } | ||
// LED ausführen | // LED ausführen | ||
switchCase(); | switchCase(); // switchCase Methode ausführen | ||
FastLED.show(); | FastLED.show(); // LEDs Starten | ||
delay(DELAYVAL); | delay(DELAYVAL); | ||
} | } | ||
void switchCase() { | void switchCase() { | ||
int LINKS = 0; | int LINKS = 0; | ||
int RECHTS = 0; | int RECHTS = 0; | ||
int Rot = 150; | int Rot = 150; //Deklaration um LEDs Rot oder Gruen anzuzeigen | ||
int Gruen = 0; | int Gruen = 0; | ||
LINKS = round(v) / 10; | LINKS = round(v) / 10; // linke Ziffer herausfinden | ||
RECHTS = round(v) % 10; | RECHTS = round(v) % 10; // rechte Ziffer herausfinden | ||
for (int i = 0; i <= 255; i++) { | for (int i = 0; i <= 255; i++) { | ||
Zeile 80: | Zeile 71: | ||
} | } | ||
if (LINKS <= 3 && RECHTS <= 9) { | if (LINKS <= 3 && RECHTS <= 9) { // Geschwindigkeiten unter 30 KM/H werden Gruen angezeigt | ||
Rot = 0; | Rot = 0; | ||
Gruen = 150; | Gruen = 150; | ||
} | } | ||
if (LINKS >= 3 && RECHTS >= 0) { | if (LINKS >= 3 && RECHTS >= 0) { // Geschwindigkeiten über 30 KM/H werden Rot angezeigt | ||
Rot = 150; | Rot = 150; | ||
Gruen = 0; | Gruen = 0; | ||
} | } | ||
switch (LINKS) { | switch (LINKS) { // Linke Zahl | ||
case 0: | case 0: | ||
for (int i = 0; i <= 55; i++) { | for (int i = 0; i <= 55; i++) { | ||
Zeile 184: | Zeile 175: | ||
} | } | ||
switch (RECHTS) { | switch (RECHTS) { // Rechte Zahl | ||
case 0: | case 0: | ||
for (int i = 127; i <= 182; i++) { | for (int i = 127; i <= 182; i++) { |