Programmierung
Aus HSHL Mechatronik
Version vom 29. November 2022, 16:14 Uhr von Justin Frommberger (Diskussion | Beiträge) (→Programmcode)
Programmcode
//----------------------------------------------// // Speedy-Tempomessgerät // // Projektarbeit // // Justin Frommberger & Jonas Gerke // // Stand: 29.11.2022 // //--------------------------------------------- // #include <FastLED.h> #define LED_PIN 7 #define NUM_LEDS 257 CRGB leds[NUM_LEDS]; int DELAYVAL = 400; // Initalisierung int v,vmax, ontime, offtime; int pin = 3; int max = 0; int speedarray[10]; void setup() { FastLED.addLeds<WS2812B, LED_PIN, GRB>(leds, NUM_LEDS); Serial.begin(115200); pinMode(pin, INPUT); } void loop() { {unsigned long T; // Periodendauer in us int f; // Frequenz in MHz vmax=0; for(int i = 0; i <=9; i++) { ontime = pulseIn(pin, HIGH); // Umwandlung vom PWM zur Geschwindigkeit offtime = pulseIn(pin, LOW); T = ontime + offtime; f= 1000000/T; // f=1/T v=f/44.0; // 24 GHz Radar speedarray[i] = v; } for(int i = 0; i <= 9; i++) { // Schleife und Array zum filtern der falschen Werte if(speedarray[i] > max) { max = speedarray[i]; delay(100); Serial.print(max); Serial.println("KM/H"); } } delay(500); // LED ausführen switchCase(); FastLED.show(); delay(DELAYVAL); } } void switchCase() { // LEDS anschalten int LINKS = 0; int RECHTS = 0; int Rot = 150; int Gruen = 0; LINKS = max/10; // Berechnung der Link und Rechten Zahl RECHTS = max%10; for(int i=0; i<=255; i++) { leds[i] = CRGB(0, 0, 0); } if(LINKS <= 3 && RECHTS <= 9) // Bestimmung der Farbe { Rot = 0; Gruen = 150; } if(LINKS >=3 && RECHTS >= 0) { Rot = 150; Gruen = 0; } switch (LINKS) { // Linke Zahl case 0: for(int i=0; i<=55; i++) { leds[i] = CRGB(0, 0, 0); } for(int i=72; i<=125; i++) { leds[i] = CRGB(0, 0, 0); } break; case 1: for(int i=88; i<=125; i++) { leds[i] = CRGB(Rot, Gruen, 0); } break; case 2: for(int i=10; i<=29; i++) { leds[i] = CRGB(Rot, Gruen, 0); } for(int i=40; i<=86; i++) { leds[i] = CRGB(Rot, Gruen, 0); } for(int i=97; i<=115; i++) { leds[i] = CRGB(Rot, Gruen, 0); } break; case 3: for(int i=40; i<=86; i++) { leds[i] = CRGB(Rot, Gruen, 0); } for(int i=87; i<=125; i++) { leds[i] = CRGB(Rot, Gruen, 0); } break; case 4: for(int i=0; i<=9; i++) { leds[i] = CRGB(Rot, Gruen, 0); } for(int i=30; i<=39; i++) { leds[i] = CRGB(Rot, Gruen, 0); } for(int i=56; i<=71; i++) { leds[i] = CRGB(Rot, Gruen, 0); } for(int i=88; i<=125; i++) { leds[i] = CRGB(Rot, Gruen, 0); } break; case 5: for(int i=0; i<=9; i++) { leds[i] = CRGB(Rot, Gruen, 0); } for(int i=30; i<=87; i++) { leds[i] = CRGB(Rot, Gruen, 0); } for(int i=88; i<=96; i++) { leds[i] = CRGB(Rot, Gruen, 0); } for(int i=116; i<=125; i++) { leds[i] = CRGB(Rot, Gruen, 0); } break; case 6: for(int i=0; i<=96; i++) { leds[i] = CRGB(Rot, Gruen, 0); } for(int i=116; i<=125; i++) { leds[i] = CRGB(Rot, Gruen, 0); } break; case 7: for(int i=40; i<=55; i++) { leds[i] = CRGB(Rot, Gruen, 0); } for(int i=88; i<=125; i++) { leds[i] = CRGB(Rot, Gruen, 0); } break; case 8: for(int i=0; i<=125; i++) { leds[i] = CRGB(Rot, Gruen, 0); } break; case 9: for(int i=0; i<=9; i++) { leds[i] = CRGB(Rot, Gruen, 0); } for(int i=30; i<=39; i++) { leds[i] = CRGB(Rot, Gruen, 0); } for(int i=40; i<=125; i++) { leds[i] = CRGB(Rot, Gruen, 0); } break; } switch (RECHTS) { // Rechte Zahl case 0: for(int i=127; i<=182; i++) { leds[i] = CRGB(Rot, Gruen, 0); } for(int i=199; i<=254; i++) { leds[i] = CRGB(Rot, Gruen, 0); } break; case 1: for(int i=215; i<=254; i++) { leds[i] = CRGB(Rot, Gruen, 0); } break; case 2: for(int i=137; i<=156; i++) { leds[i] = CRGB(Rot, Gruen, 0); } for(int i=167; i<=213; i++) { leds[i] = CRGB(Rot, Gruen, 0); } for(int i=225; i<=244; i++) { leds[i] = CRGB(Rot, Gruen, 0); } break; case 3: for(int i=167; i<=213; i++) { leds[i] = CRGB(Rot, Gruen, 0); } for(int i=214; i<=254; i++) { leds[i] = CRGB(Rot, Gruen, 0); } break; case 4: for(int i=127; i<=136; i++) { leds[i] = CRGB(Rot, Gruen, 0); } for(int i=157; i<=166; i++) { leds[i] = CRGB(Rot, Gruen, 0); } for(int i=183; i<=198; i++) { leds[i] = CRGB(Rot, Gruen, 0); } for(int i=215; i<=254; i++) { leds[i] = CRGB(Rot, Gruen, 0); } break; case 5: for(int i=127; i<=136; i++) { leds[i] = CRGB(Rot, Gruen, 0); } for(int i=157; i<=214; i++) { leds[i] = CRGB(Rot, Gruen, 0); } for(int i=215; i<=224; i++) { leds[i] = CRGB(Rot, Gruen, 0); } for(int i=245; i<=254; i++) { leds[i] = CRGB(Rot, Gruen, 0); } break; case 6: for(int i=127; i<=224; i++) { leds[i] = CRGB(Rot, Gruen, 0); } for(int i=245; i<=254; i++) { leds[i] = CRGB(Rot, Gruen, 0); } break; case 7: for(int i=167; i<=182; i++) { leds[i] = CRGB(Rot, Gruen, 0); } for(int i=215; i<=254; i++) { leds[i] = CRGB(Rot, Gruen, 0); } break; case 8: for(int i=127; i<=254; i++) { leds[i] = CRGB(Rot, Gruen, 0); } break; case 9: for(int i=127; i<=136; i++) { leds[i] = CRGB(Rot, Gruen, 0); } for(int i=157; i<=166; i++) { leds[i] = CRGB(Rot, Gruen, 0); } for(int i=167; i<=254; i++) { leds[i] = CRGB(Rot, Gruen, 0); } break; } delay(500); max = 0; //zurücksetzen der max Zahl }