Advertisement
Coolkuh

Amarok Fehler Tag/Nacht

Apr 13th, 2023
657
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.16 KB | Fixit | 0 0
  1.  
  2.  
  3.  
  4. char BTWert;  //Werte sollen per Bluetooth empfangen werden
  5.  
  6. #define FrontBl 2
  7. #define SeitenWs 3
  8. #define SwWeit 4
  9. #define SwBreit 9
  10. #define Polar 6
  11. #define FrontOg 7
  12. #define SeiteOg 8
  13. #define FrontGb 9
  14. #define FrontGbTakt 10
  15. #define HeckGb 11
  16. #define HeckGbTakt 12
  17. #define SeiteWs 13
  18.  
  19. int LDRPin = A3;
  20. int LDRWert = 0;
  21. int TagNacht = 300;  //bei welcher Helligkeit TagNacht unterschieden wird
  22. int TagModus = 0;
  23. int NachtModus = 0;
  24.  
  25. int Standlichtwert = 2;  //Wie hell ein Paar Scheinwerfer im TagModus als Tagfahrlicht mitleuchen
  26. int K15Pin = A0;         //Hier wird K15 Zustand eingelesen
  27. int FernLichtPin = A1;   //Hier wird aufblend Zustand eingelesen
  28. int Zuendung = 0;
  29. int FernLicht = 0;
  30. int Intervall = 200;  //Blinkintervall im TagMode-Code
  31. unsigned long vorigeMillis = 0;
  32. unsigned long aktuellMillis = 0;
  33. bool PolarStatus = 0;
  34. //---------------------------------------------------------------------------
  35.  
  36.  
  37. void setup() {
  38.  
  39.   Serial.begin(9600);  //serieller Monitor wird gestartet, Baudrate auf 9600 festgelegt
  40.  
  41.   pinMode(2, OUTPUT);   //blau
  42.   pinMode(3, OUTPUT);   //SeiteWeiß
  43.   pinMode(4, OUTPUT);   //weit
  44.   pinMode(9, OUTPUT);   //breit
  45.   pinMode(6, OUTPUT);   //Polar
  46.   pinMode(7, OUTPUT);   //FrontOg
  47.   pinMode(8, OUTPUT);   //SeiteOg
  48.   pinMode(5, OUTPUT);   //FrontGb
  49.   pinMode(10, OUTPUT);  //FrontGbTakt
  50.   pinMode(11, OUTPUT);  //HeckGb
  51.   pinMode(12, OUTPUT);  //HeckGbTakt
  52.   pinMode(A0, INPUT);   //K15Pin
  53.   pinMode(A2, INPUT);   //FernLicht
  54.   pinMode(A3, INPUT);   //LDRSensor
  55. }
  56.  
  57.  
  58.  
  59. void loop() {
  60.   if (Serial.available()) {  //wenn Daten empfangen werden...
  61.     BTWert = Serial.read();  //...sollen diese ausgelesen werden
  62.   }
  63.   //-------------------------------------------------------------------------------------------------------------------------
  64.  
  65.   LDRWert = analogRead(LDRPin);  //Hier wird der Wert vom LDR eingelesen und in die Variable LDRWert geschrieben
  66.  
  67.   if (LDRWert > TagNacht && Zuendung == HIGH) {
  68.     TagModus = HIGH;
  69.     NachtModus = LOW;
  70.   }
  71.  
  72.   else if (LDRWert < TagNacht && Zuendung == HIGH) {
  73.     TagModus = LOW;
  74.     NachtModus = HIGH;
  75.   }
  76.  
  77.   else {
  78.     TagModus = LOW;
  79.     NachtModus = LOW;
  80.   }
  81.  
  82.  
  83.   //Ausgabe
  84.   Serial.println(LDRWert);
  85.  
  86.   //Bedingungen Tagfahrlicht
  87.  
  88.   Zuendung = digitalRead(K15Pin);
  89.   FernLicht = digitalRead(FernLichtPin);
  90.  
  91.   //Tagbetrieb
  92.  
  93.   //Zündung ON setzt Tagfahrlicht ON mit Standlichtwert auf den SwBreit
  94.  
  95.   if (Zuendung == HIGH && FernLicht == LOW && TagModus == HIGH && NachtModus == LOW) {
  96.     analogWrite(SwBreit, Standlichtwert);
  97.   }
  98.  
  99.   /*
  100.   aktuellMillis = millis();                         // vergangene Zeit wird in aktuelle Zeit gespeichert
  101.   if (aktuellMillis - vorigeMillis >= Intervall) {  // Falls mehr als Intervall vergangen ist
  102.     vorigeMillis = aktuellMillis;                   // überschreibe die vergangene Zeit mit der aktuellen Zeit
  103.     PolarStatus = !PolarStatus;                     // wechsle denZustand der Polar
  104.   }
  105. */
  106.  
  107.   //Nachtbetrieb
  108.  
  109.   if (Zuendung == HIGH && FernLicht == LOW && TagModus == LOW && NachtModus == HIGH)
  110.  
  111.     //Bei BTWert 1 und Fernlicht soll erstes Paar Zusatzscheinwerfer zusätzlich leuchten
  112.  
  113.     if (FernLicht == HIGH) {
  114.       if (BTWert == '1') {
  115.         digitalWrite(SwBreit, HIGH);
  116.       }
  117.  
  118.       //zweites Paar Zusatzscheinwerfer
  119.  
  120.       if (BTWert == '2') {
  121.         digitalWrite(SwBreit, HIGH);
  122.         digitalWrite(SwWeit, HIGH);
  123.       }
  124.  
  125.       //drittes Paar Zusatzscheinwerfer
  126.  
  127.       if (BTWert == '3') {
  128.         digitalWrite(SwBreit, HIGH);
  129.         digitalWrite(SwWeit, HIGH);
  130.         digitalWrite(Polar, HIGH);
  131.       }
  132.  
  133.       //Alle Zusatzscheinwerfer aus
  134.  
  135.       if ((BTWert == '0') or (BTWert == 4)) {
  136.         digitalWrite(SwBreit, LOW);
  137.         digitalWrite(SwWeit, LOW);
  138.         digitalWrite(Polar, LOW);
  139.       }
  140.  
  141.  
  142.       else {
  143.         digitalWrite(SwBreit, LOW);
  144.         digitalWrite(SwWeit, LOW);
  145.         digitalWrite(Polar, LOW);
  146.       }
  147.  
  148.       //FrontGelb
  149.  
  150.       if (BTWert == '5') {
  151.         digitalWrite(FrontGb, HIGH);
  152.       }
  153.       if (BTWert == '6' && FrontGb == HIGH) {
  154.         digitalWrite(FrontGbTakt, HIGH);
  155.       }
  156.       if (BTWert == '7') {
  157.         digitalWrite(FrontGb, LOW);
  158.       }
  159.  
  160.       //HeckGelb
  161.  
  162.       if (BTWert == '8') {
  163.         digitalWrite(HeckGb, HIGH);
  164.       }
  165.       if (BTWert == '9' && HeckGb == HIGH) {
  166.         digitalWrite(HeckGbTakt, HIGH);
  167.       }
  168.       if (BTWert == 'A') {
  169.         digitalWrite(HeckGb, LOW);
  170.       }
  171.  
  172.       //FrontBlau
  173.  
  174.       if ((BTWert == 'B') or (LDRWert < 300)) {
  175.         digitalWrite(FrontBl, HIGH);
  176.       }
  177.  
  178.       if (BTWert == 'C') {
  179.         digitalWrite(FrontBl, LOW);
  180.       }
  181.  
  182.       //SeiteWeiß
  183.  
  184.       if (BTWert == 'D') {
  185.         digitalWrite(SeitenWs, HIGH);
  186.       }
  187.  
  188.       if (BTWert == 'E') {
  189.         digitalWrite(SeitenWs, LOW);
  190.       }
  191.  
  192.       //FrontOg
  193.  
  194.       if (BTWert == 'F') {
  195.         digitalWrite(FrontOg, HIGH);
  196.       }
  197.  
  198.       if (BTWert == 'G') {
  199.         digitalWrite(FrontOg, LOW);
  200.       }
  201.  
  202.       //SeiteOg
  203.  
  204.       if (BTWert == 'H') {
  205.         digitalWrite(SeiteOg, HIGH);
  206.       }
  207.  
  208.       if (BTWert == 'I') {
  209.         digitalWrite(SeiteOg, LOW);
  210.       }
  211.     }
  212. }
  213.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement