Advertisement
Coolkuh

Lichtsteuerung

May 26th, 2023
845
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 8.39 KB | None | 0 0
  1.  
  2. #include <SoftwareSerial.h>
  3.  
  4. char EingangsWert = '3';
  5.  
  6. /*
  7. const byte rxPin_K = 2;
  8. const byte txPin_K = 3;
  9. SoftwareSerial mySerial_K = SoftwareSerial(rxPin_K, txPin_K);  //Kabelschnittstelle
  10. */
  11.  
  12. const byte rxPin_B = 12;
  13. const byte txPin_B = 13;
  14. SoftwareSerial mySerial_B = SoftwareSerial(rxPin_B, txPin_B);  //Bluetoothschnittstelle
  15.  
  16. //Welches Signal an welchem Pin
  17. #define FrontBl 3
  18. #define SwWeit 4
  19. #define FrontOg 5   //analogPin für Anpassung Helligkeit
  20. #define SeitenOg 6  //analogPin für Anpassung Helligkeit
  21. #define FrontGb 7
  22. #define HeckGb 8
  23. #define SeitenWs 9
  24. #define SwPolar 10
  25. #define SwBreit 11  // analogPin für Anpassung Heligkeit über Standlichtwert
  26.  
  27. //Welcher EingangsWert welche Funktion auslöst
  28. #define Z_Aus 0
  29. #define Z_TFL 1
  30. #define Z_SwBreit 2
  31. #define Z_SwBreit_SwWeit 3
  32. #define Z_SwBreit_SwWeit_SwPolar 4
  33. #define Z_SeitenWs_AN 5
  34. #define Z_SeitenWs_AUS 6
  35. #define Z_FrontBl_AN 7
  36. #define Z_FrontBl_AUS 8
  37. #define Z_FrontGb_AN 9
  38. #define Z_FrontGb_AUS 'A'
  39. #define Z_HeckGb_AN 'B'
  40. #define Z_HeckGb_AUS 'C'
  41. #define Z_FrontOg_AN 'D'
  42. #define Z_FrontOg_AUS 'E'
  43. #define Z_SeitenOg_AN 'F'
  44. #define Z_SeitenOg_AUS 'G'
  45.  
  46. //Ausgangszustand bei Programmstart
  47. int Z_Frontscheinwerfer = Z_TFL;  //Ausgangszustand alle Zusatzscheinwerfer möglich auf HIGH und TFL HIGH
  48. int Z_SeitenWs = Z_SeitenWs_AUS;  //Ausgangszustand SeitenWs auf LOW
  49. int Z_FrontBl = Z_FrontBl_AUS;    //Ausgangszustand SeitenBl auf LOW
  50. int Z_FrontGb = Z_FrontGb_AUS;    //Ausgangszustand FrontGb auf LOW
  51. int Z_HeckGb = Z_HeckGb_AUS;      //Ausgangszustand HeckGb auf LOW
  52. int Z_FrontOg = Z_FrontOg_AUS;    //Ausgangszustand SeitenBl auf LOW
  53. int Z_SeitenOg = Z_SeitenOg_AUS;  //Ausgangszustand SeitenBl auf LOW
  54.  
  55. int LDRPin = A3;
  56. int LDRWert = 0;
  57. int TagNacht = 300;  //bei welcher Helligkeit TagNacht unterschieden wird
  58. int TagModus = 0;
  59.  
  60. int Standlichtwert = 2;  //Wie hell ein Paar Scheinwerfer im TagModus als Tagfahrlicht mitleuchen
  61. int K15Pin = A0;         //Hier wird K15 Zustand eingelesen
  62. int FernLichtPin = A1;   //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_K.begin(9600);  //meine serielle Schnittstelle A wird geöffnet- Fernbedienung
  75.   mySerial_B.begin(9600);  //meine serielle Schnittstelle B wird geöffnet- Bluetooth
  76.  
  77.  
  78.   pinMode(3, OUTPUT);   //blau
  79.   pinMode(4, OUTPUT);   //weit
  80.   pinMode(5, OUTPUT);   //FrontOg
  81.   pinMode(6, OUTPUT);   //SeiteOg
  82.   pinMode(7, OUTPUT);   //FrontGb
  83.   pinMode(8, OUTPUT);   //SeiteGb
  84.   pinMode(9, OUTPUT);   //SeiteWs
  85.   pinMode(10, OUTPUT);  //polar
  86.   pinMode(11, OUTPUT);  //breit
  87.   pinMode(A0, INPUT);   //K15Pin
  88.   pinMode(A2, INPUT);   //FernLicht
  89.   pinMode(A3, INPUT);   //LDRSensor
  90.  
  91.   //pinMode(rxPin_K, INPUT);
  92.   //pinMode(txPin_K, OUTPUT);
  93.  
  94.   pinMode(rxPin_B, INPUT);
  95.   pinMode(txPin_B, OUTPUT);
  96. }
  97. //____________________________________________________________________________________________________________________________
  98.  
  99. void loop() {
  100.  
  101.   Serial.println(EingangsWert);
  102.  
  103.   Zuendung = digitalRead(K15Pin);
  104.   FernLicht = digitalRead(FernLichtPin);
  105.  
  106.   /*
  107.   if ((mySerial_K.available()) && (Zuendung == HIGH)) {  //Wenn Zuendung HIGH und Werte vom Display empfangen werden...
  108.     EingangsWert = mySerial_D.read();                    //und in EingangsWert geschrieben werden
  109.   }
  110. */
  111.  
  112.   if ((mySerial_B.available()) && (Zuendung == LOW)) {  //wenn Zuendung LOW und Werte über Bluetooth empfangen werden...
  113.     EingangsWert = mySerial_B.read();                   //und in EingangsWert geschrieben werden
  114.   }
  115.   //____________________________________________________________________________________________________________________________
  116.  
  117.   LDRWert = analogRead(LDRPin);  //Hier wird der Wert vom LDR eingelesen und in die Variable LDRWert geschrieben
  118.  
  119.   if (LDRWert > TagNacht) {
  120.     TagModus = HIGH;
  121.   }
  122.  
  123.   else {
  124.     TagModus = LOW;
  125.   }
  126.  
  127.   switch (Z_Frontscheinwerfer) {
  128.  
  129.     case Z_TFL:
  130.       analogWrite(SwBreit, Standlichtwert);
  131.       digitalWrite(SwWeit, LOW);
  132.       digitalWrite(SwPolar, LOW);
  133.       if (EingangsWert == '1' && FernLicht == HIGH)
  134.         Z_Frontscheinwerfer = Z_SwBreit;
  135.       if (EingangsWert == '2' && FernLicht == HIGH)
  136.         Z_Frontscheinwerfer = Z_SwBreit_SwWeit;
  137.       if (EingangsWert == '3' && FernLicht == HIGH)
  138.         Z_Frontscheinwerfer = Z_SwBreit_SwWeit_SwPolar;
  139.       if (EingangsWert == '0' || Zuendung == LOW)
  140.         Z_Frontscheinwerfer = Z_Aus;
  141.       // Serial.println("TFL");
  142.       break;
  143.  
  144.     case Z_SwBreit:
  145.       analogWrite(SwBreit, 255);
  146.       digitalWrite(SwWeit, LOW);
  147.       digitalWrite(SwPolar, LOW);
  148.       if (FernLicht == LOW)
  149.         Z_Frontscheinwerfer = Z_TFL;
  150.       Serial.println("1 Paar dazu");
  151.       break;
  152.  
  153.     case Z_SwBreit_SwWeit:
  154.       analogWrite(SwBreit, 255);
  155.       digitalWrite(SwWeit, HIGH);
  156.       digitalWrite(SwPolar, LOW);
  157.       if (FernLicht == LOW)
  158.         Z_Frontscheinwerfer = Z_TFL;
  159.       Serial.println("2 Paar dazu");
  160.       break;
  161.  
  162.     case Z_SwBreit_SwWeit_SwPolar:
  163.       analogWrite(SwBreit, 255);
  164.       digitalWrite(SwWeit, HIGH);
  165.       digitalWrite(SwPolar, HIGH);
  166.       if (FernLicht == LOW)
  167.         Z_Frontscheinwerfer = Z_TFL;
  168.       Serial.println("3 Paar dazu");
  169.       break;
  170.  
  171.     case Z_Aus:
  172.       analogWrite(SwBreit, LOW);
  173.       digitalWrite(SwWeit, LOW);
  174.       digitalWrite(SwPolar, LOW);
  175.       Serial.println("Alles aus");
  176.       if (Zuendung == HIGH && EingangsWert != '0')
  177.         Z_Frontscheinwerfer = Z_TFL;
  178.       break;
  179.   }
  180.   //**********************************************************************************************************//
  181.  
  182.   switch (Z_SeitenWs) {
  183.  
  184.     case Z_SeitenWs_AUS:
  185.       digitalWrite(SeitenWs, LOW);
  186.       if (EingangsWert == '5')
  187.         Z_SeitenWs = Z_SeitenWs_AN;
  188.       break;
  189.  
  190.     case Z_SeitenWs_AN:
  191.       digitalWrite(SeitenWs, HIGH);
  192.       if (EingangsWert == '6')
  193.         Z_SeitenWs = Z_SeitenWs_AUS;
  194.       break;
  195.   }
  196.   //*******************************************************************************************************//
  197.  
  198.   switch (Z_FrontBl) {
  199.  
  200.     case Z_FrontBl_AUS:
  201.       digitalWrite(FrontBl, LOW);
  202.       if (EingangsWert == '7')
  203.         Z_FrontBl = Z_FrontBl_AN;
  204.       break;
  205.  
  206.     case Z_FrontBl_AN:
  207.       digitalWrite(FrontBl, HIGH);
  208.       if (EingangsWert == '8')
  209.         Z_FrontBl = Z_FrontBl_AUS;
  210.       break;
  211.   }
  212.  
  213.   //*******************************************************************************************************//
  214.  
  215.   switch (Z_FrontGb) {
  216.  
  217.     case Z_FrontGb_AUS:
  218.       digitalWrite(FrontGb, LOW);
  219.       if (EingangsWert == '9')
  220.         Z_FrontGb = Z_FrontGb_AN;
  221.       break;
  222.  
  223.     case Z_FrontGb_AN:
  224.       digitalWrite(FrontGb, HIGH);
  225.       if (EingangsWert == 'A')
  226.         Z_FrontGb = Z_FrontGb_AUS;
  227.       break;
  228.   }
  229.  
  230.   //*******************************************************************************************************//
  231.  
  232.   switch (Z_HeckGb) {
  233.  
  234.     case Z_HeckGb_AUS:
  235.       digitalWrite(HeckGb, LOW);
  236.       if (EingangsWert == 'B')
  237.         Z_HeckGb = Z_HeckGb_AN;
  238.       break;
  239.  
  240.     case Z_HeckGb_AN:
  241.       digitalWrite(HeckGb, HIGH);
  242.       if (EingangsWert == 'C')
  243.         Z_HeckGb = Z_HeckGb_AUS;
  244.       break;
  245.   }
  246.  
  247.   //*******************************************************************************************************//
  248.  
  249.   switch (Z_FrontOg) {
  250.  
  251.     case Z_FrontOg_AUS:
  252.       digitalWrite(FrontOg, LOW);
  253.       if (EingangsWert == 'D')
  254.         Z_FrontOg = Z_FrontOg_AN;
  255.       break;
  256.  
  257.     case Z_FrontOg_AN:
  258.       analogWrite(FrontOg, 200);  //Anpassung Helligkeit
  259.       if (EingangsWert == 'E')
  260.         Z_FrontOg = Z_FrontOg_AUS;
  261.       break;
  262.   }
  263.  
  264.  
  265.   //*******************************************************************************************************//
  266.  
  267.   switch (Z_SeitenOg) {
  268.  
  269.     case Z_SeitenOg_AUS:
  270.       digitalWrite(SeitenOg, LOW);
  271.       if (EingangsWert == 'F')
  272.         Z_SeitenOg = Z_SeitenOg_AN;
  273.       break;
  274.  
  275.     case Z_SeitenOg_AN:
  276.       analogWrite(SeitenOg, 200);  //Anpassung Helligkeit
  277.       if (EingangsWert == 'G')
  278.         Z_SeitenOg = Z_SeitenOg_AUS;
  279.       break;
  280.   }
  281. }
  282.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement