Advertisement
Coolkuh

Untitled

Sep 24th, 2023
780
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 9.37 KB | None | 0 0
  1.  
  2. #include <SoftwareSerial.h>
  3.  
  4. int EingangsWert = 3;
  5.  
  6. const byte rxPin_B = 12;
  7. const byte txPin_B = 13;
  8. SoftwareSerial mySerial_B = SoftwareSerial(rxPin_B, txPin_B);  //Bluetoothschnittstelle
  9.  
  10. //Welches Signal an welchem Pin
  11. #define TaktImpuls 2  //an diesem Pin in Kombination mit Blitzlichtern an, kann man den Blitzmode umschalten
  12. #define FrontBl 3
  13. #define SwWeit 4
  14. #define FrontOg 5   //analogPin für Anpassung Helligkeit
  15. #define SeitenOg 6  //analogPin für Anpassung Helligkeit
  16. #define FrontGb 7
  17. #define HeckGb 8
  18. #define SeitenWs 9
  19. #define SwPolar 10
  20. #define SwBreit 11  // analogPin für Anpassung Heligkeit über Standlichtwert
  21.  
  22. //Welcher EingangsWert welche Funktion auslöst
  23. #define Z_Aus 0
  24. #define Z_TFL 1
  25. #define Z_SwBreit 2
  26. #define Z_SwBreit_SwWeit 3
  27. #define Z_SwBreit_SwWeit_SwPolar 4
  28. #define Z_SeitenWs_AN 5
  29. #define Z_SeitenWs_AUS 6
  30. #define Z_FrontBl_AN 7
  31. #define Z_FrontBl_AUS 8
  32. #define Z_FrontGb_AN 9
  33. #define Z_FrontGb_AUS 'A'
  34. #define Z_HeckGb_AN 'B'
  35. #define Z_HeckGb_AUS 'C'
  36. #define Z_FrontOg_AN 'D'
  37. #define Z_FrontOg_AUS 'E'
  38. #define Z_SeitenOg_AN 'F'
  39. #define Z_SeitenOg_AUS 'G'
  40.  
  41. int
  42.  
  43.  
  44.   //Ausgangszustand bei Programmstart
  45.   int Z_Frontscheinwerfer = Z_TFL;  //Ausgangszustand alle Zusatzscheinwerfer und Tagfahrlicht
  46. int Z_SeitenWs = Z_SeitenWs_AUS;    //Ausgangszustand SeitenWs auf LOW
  47. int Z_FrontBl = Z_FrontBl_AUS;      //Ausgangszustand SeitenBl auf LOW
  48. int Z_FrontGb = Z_FrontGb_AUS;      //Ausgangszustand FrontGb auf LOW
  49. int Z_HeckGb = Z_HeckGb_AUS;        //Ausgangszustand HeckGb auf LOW
  50. int Z_FrontOg = Z_FrontOg_AUS;      //Ausgangszustand SeitenBl auf LOW
  51. int Z_SeitenOg = Z_SeitenOg_AUS;    //Ausgangszustand SeitenBl auf LOW
  52.  
  53.  
  54. int LDRPin = A1;
  55. int LDRWert = 0;
  56. int TagNacht = 300;  //bei welcher Helligkeit TagNacht unterschieden wird
  57. int TagModus = 0;
  58.  
  59.  
  60. int Standlichtwert = 45;  //Wie hell ein Paar Scheinwerfer im TagModus als Tagfahrlicht mitleuchen
  61. int K15Pin = A0;          //Hier wird K15 Zustand eingelesen
  62. int FernLichtPin = A2;    //Hier wird aufblend Zustand eingelesen
  63. int Zuendung = 0;
  64. int FernLicht = 0;
  65. int Intervall = 200;  //Blinkintervall im TagMode-Code
  66. unsigned long vorigeMillis = 0;
  67. unsigned long aktuellMillis = 0;
  68. bool PolarStatus = 0;
  69. //__________________________________________________________________________________________________________________________
  70.  
  71. void setup() {
  72.  
  73.   Serial.begin(9600);      //serieller Monitor wird gestartet, Baudrate auf 9600 festgelegt
  74.   mySerial_B.begin(9600);  //meine serielle Schnittstelle B wird geöffnet- Bluetooth
  75.  
  76.   pinMode(2, OUTPUT);   //Impuls für Blinksequenz (Siehe Zeile 104 auf Low bis Softwareanpassung)
  77.   pinMode(3, OUTPUT);   //blau      Endstufe U6
  78.   pinMode(4, OUTPUT);   //weit      Endstufe U2
  79.   pinMode(5, OUTPUT);   //FrontOg   Endstufe U4
  80.   pinMode(6, OUTPUT);   //SeiteOg   Endstufe U3
  81.   pinMode(7, OUTPUT);   //FrontGb   Endstufe U5
  82.   pinMode(8, OUTPUT);   //HintenGb  Endstufe O4
  83.   pinMode(9, OUTPUT);   //SeiteWs   Endstufe O3
  84.   pinMode(10, OUTPUT);  //polar     Endstufe O1&O2
  85.   pinMode(11, OUTPUT);  //breit     Endstufe U1
  86.   pinMode(A0, INPUT);   //K15Pin    Kabel gelb Spannungsteiler 1
  87.   pinMode(A2, INPUT);   //FernLicht Kabel weiß Spannungsteiler 2
  88.   pinMode(A1, INPUT);   //LDRSensor
  89.  
  90.   pinMode(rxPin_B, INPUT);
  91.   pinMode(txPin_B, OUTPUT);
  92. }
  93. //____________________________________________________________________________________________________________________________
  94.  
  95. void loop() {
  96.  
  97.  
  98.   digitalWrite(TaktImpuls, HIGH);
  99.  
  100.   Zuendung = digitalRead(K15Pin);
  101.   FernLicht = digitalRead(FernLichtPin);
  102.   //______________________________________________________________________________________________________________________________________________________
  103.  
  104.   Serial.print("  Wert über BT() ");
  105.   Serial.print(mySerial_B.available());
  106.  
  107.   Serial.print("  Wert über Kabel() ");
  108.   Serial.print(Serial.read());
  109.  
  110.  
  111.  
  112.  
  113.   Serial.print(",   Zuendung: ");
  114.   Serial.print(Zuendung);
  115.  
  116.   Serial.print(",   FernLicht: ");
  117.   Serial.print(FernLicht);
  118.  
  119.   Serial.print(",   EingangsWert: ");
  120.   Serial.println(EingangsWert);
  121.  
  122.   /*
  123.   Serial.print(",   LDR Wert: ");
  124.   Serial.print(LDRWert);
  125.  
  126.   Serial.print(",   TagModus: ");
  127.   Serial.print(TagModus);
  128. */
  129.  
  130.   //_________________________________________________________________________________________________________________________________________________________
  131.  
  132.  
  133.   if ((mySerial_B.available()) && (Zuendung == LOW)) {  //wenn Zuendung HIGH und Werte über Bluetooth empfangen werden...
  134.     EingangsWert = (int)mySerial_B.read();              //und in EingangsWert geschrieben werden
  135.   }
  136.  
  137.   if ((Serial.available()) && (Zuendung == HIGH)) {  //wenn Daten empfangen werden...
  138.     EingangsWert = (int)Serial.read();               //...sollen diese ausgelesen werden
  139.   }
  140.  
  141.   //____________________________________________________________________________________________________________________________
  142.  
  143.   LDRWert = analogRead(LDRPin);  //Hier wird der Wert vom LDR eingelesen und in die Variable LDRWert geschrieben
  144.  
  145.   if (LDRWert > TagNacht) {
  146.     TagModus = HIGH;
  147.   } else {
  148.     TagModus = LOW;
  149.   }
  150.  
  151.   switch (Z_Frontscheinwerfer) {
  152.  
  153.     case Z_TFL:
  154.       analogWrite(SwBreit, Standlichtwert);
  155.       digitalWrite(SwWeit, LOW);
  156.       digitalWrite(SwPolar, LOW);
  157.       if (EingangsWert == '1' && FernLicht == HIGH)
  158.         Z_Frontscheinwerfer = Z_SwBreit;
  159.       if (EingangsWert == '2' && FernLicht == HIGH)
  160.         Z_Frontscheinwerfer = Z_SwBreit_SwWeit;
  161.       if (EingangsWert == '3' && FernLicht == HIGH)
  162.         Z_Frontscheinwerfer = Z_SwBreit_SwWeit_SwPolar;
  163.       if (EingangsWert == '0' || Zuendung == LOW)
  164.         Z_Frontscheinwerfer = Z_Aus;
  165.       break;
  166.  
  167.     case Z_SwBreit:
  168.       analogWrite(SwBreit, 255);
  169.       digitalWrite(SwWeit, LOW);
  170.       digitalWrite(SwPolar, LOW);
  171.       if (FernLicht == LOW)
  172.         Z_Frontscheinwerfer = Z_TFL;
  173.       Serial.print("   (1 Paar dazu)   ");
  174.       break;
  175.  
  176.     case Z_SwBreit_SwWeit:
  177.       analogWrite(SwBreit, 255);
  178.       digitalWrite(SwWeit, HIGH);
  179.       digitalWrite(SwPolar, LOW);
  180.       if (FernLicht == LOW)
  181.         Z_Frontscheinwerfer = Z_TFL;
  182.       Serial.print("   (2 Paar dazu)   ");
  183.       break;
  184.  
  185.     case Z_SwBreit_SwWeit_SwPolar:
  186.       analogWrite(SwBreit, 255);
  187.       digitalWrite(SwWeit, HIGH);
  188.       digitalWrite(SwPolar, HIGH);
  189.       if (FernLicht == LOW)
  190.         Z_Frontscheinwerfer = Z_TFL;
  191.       Serial.print("   (3 Paar dazu)   ");
  192.       break;
  193.  
  194.     case Z_Aus:
  195.       analogWrite(SwBreit, LOW);
  196.       digitalWrite(SwWeit, LOW);
  197.       digitalWrite(SwPolar, LOW);
  198.       Serial.print("Alles aus");
  199.       if (Zuendung == HIGH && EingangsWert != '0')
  200.         Z_Frontscheinwerfer = Z_TFL;
  201.       break;
  202.   }
  203.   //**********************************************************************************************************//
  204.  
  205.   switch (Z_SeitenWs) {
  206.  
  207.     case Z_SeitenWs_AUS:
  208.       digitalWrite(SeitenWs, LOW);
  209.       if (EingangsWert == '5')
  210.         Z_SeitenWs = Z_SeitenWs_AN;
  211.       break;
  212.  
  213.     case Z_SeitenWs_AN:
  214.       digitalWrite(SeitenWs, HIGH);
  215.       if (EingangsWert == '6')
  216.         Z_SeitenWs = Z_SeitenWs_AUS;
  217.       break;
  218.   }
  219.   //*******************************************************************************************************//
  220.  
  221.   switch (Z_FrontBl) {
  222.  
  223.     case Z_FrontBl_AUS:
  224.       digitalWrite(FrontBl, LOW);
  225.       if ((EingangsWert == '7') || (EingangsWert == '20'))
  226.         Z_FrontBl = Z_FrontBl_AN;
  227.       break;
  228.  
  229.     case Z_FrontBl_AN:
  230.       digitalWrite(FrontBl, HIGH);
  231.       if ((EingangsWert == '8') || (EingangsWert == '21') || (EingangsWert == '50'))
  232.         Z_FrontBl = Z_FrontBl_AUS;
  233.       break;
  234.   }
  235.  
  236.   //*******************************************************************************************************//
  237.  
  238.   switch (Z_FrontGb) {
  239.  
  240.     case Z_FrontGb_AUS:
  241.       digitalWrite(FrontGb, LOW);
  242.       if (EingangsWert == '9')
  243.         Z_FrontGb = Z_FrontGb_AN;
  244.       break;
  245.  
  246.     case Z_FrontGb_AN:
  247.       digitalWrite(FrontGb, HIGH);
  248.       if (EingangsWert == 'A')
  249.         Z_FrontGb = Z_FrontGb_AUS;
  250.       break;
  251.   }
  252.  
  253.   //*******************************************************************************************************//
  254.  
  255.   switch (Z_HeckGb) {
  256.  
  257.     case Z_HeckGb_AUS:
  258.       digitalWrite(HeckGb, LOW);
  259.       if (EingangsWert == 'B')
  260.         Z_HeckGb = Z_HeckGb_AN;
  261.       break;
  262.  
  263.     case Z_HeckGb_AN:
  264.       digitalWrite(HeckGb, HIGH);
  265.       if (EingangsWert == 'C')
  266.         Z_HeckGb = Z_HeckGb_AUS;
  267.       break;
  268.   }
  269.  
  270.   //*******************************************************************************************************//
  271.  
  272.   switch (Z_FrontOg) {
  273.  
  274.     case Z_FrontOg_AUS:
  275.       digitalWrite(FrontOg, LOW);
  276.       if (EingangsWert == 'D')
  277.         Z_FrontOg = Z_FrontOg_AN;
  278.       break;
  279.  
  280.     case Z_FrontOg_AN:
  281.       analogWrite(FrontOg, 4);  //Anpassung Helligkeit
  282.       if ((EingangsWert == 'E') || (Zuendung == LOW))
  283.         Z_FrontOg = Z_FrontOg_AUS;
  284.       break;
  285.   }
  286.  
  287.  
  288.   //*******************************************************************************************************//
  289.  
  290.   switch (Z_SeitenOg) {
  291.  
  292.     case Z_SeitenOg_AUS:
  293.       digitalWrite(SeitenOg, LOW);
  294.       if (EingangsWert == 'F')
  295.         Z_SeitenOg = Z_SeitenOg_AN;
  296.       break;
  297.  
  298.     case Z_SeitenOg_AN:
  299.       analogWrite(SeitenOg, 4);  //Anpassung Helligkeit
  300.       if ((EingangsWert == 'G') || (Zuendung == LOW))
  301.         Z_SeitenOg = Z_SeitenOg_AUS;
  302.       break;
  303.   }
  304. }
  305.  
  306.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement