Advertisement
Guest User

elsen

a guest
Dec 10th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.10 KB | None | 0 0
  1. #include <SoftwareSerial.h>
  2. SoftwareSerial mySerial(10, 11); // RX, TX
  3. #define RedLed 13
  4. #define YellowLed A0
  5. #define GreenLed A1
  6. #define SlaveStatePin A3
  7. void TrafficLight();
  8. long long int current=0, privent=0;
  9.  
  10. byte SlaveState = 0, i;
  11. char c_Arr[2];
  12. void setup() {
  13.   Serial.begin(9600);
  14.   mySerial.begin(9600);
  15.   pinMode(RedLed, OUTPUT);
  16.   pinMode(YellowLed, OUTPUT);
  17.   pinMode(GreenLed, OUTPUT);
  18.   pinMode(SlaveStatePin, INPUT);
  19.   if (digitalRead(SlaveStatePin) == HIGH)
  20.     SlaveState = 1;
  21. }
  22. void loop() {  
  23.    delay(75); //75
  24.     if (mySerial.available())
  25.   {
  26.     for (i = 0; i < 2; i++)
  27.       c_Arr[i] = (char)mySerial.read();
  28.       privent=current;
  29.   }
  30.   for (i = 0; i < 2; i++) {
  31.     Serial.print(c_Arr[i]);
  32.   }
  33.   Serial.println();
  34. //    if (!mySerial.available())
  35. //  {
  36. //    
  37. //    current=millis()/1000;
  38. //    if((current-privent)>=5){
  39. //    for (i = 0; i < 2; i++)
  40. //      c_Arr[i] = '0';
  41. //      digitalWrite(YellowLed, LOW);
  42. //      digitalWrite(GreenLed, LOW);
  43. //      digitalWrite(RedLed, LOW);
  44. //      }
  45. //  }
  46.   TrafficLight();
  47. }
  48.  
  49. void TrafficLight()
  50. {
  51.   if (SlaveState == 0) {
  52.     if (strstr(c_Arr, "0G") != NULL) {
  53.       digitalWrite(GreenLed, HIGH);
  54.       digitalWrite(YellowLed, LOW);
  55.       digitalWrite(RedLed, LOW);
  56.     }
  57.     if (strstr(c_Arr, "HT") != NULL) {
  58.       digitalWrite(GreenLed, HIGH);
  59.       digitalWrite(YellowLed, LOW);
  60.       digitalWrite(RedLed, LOW);
  61.     }
  62.      if (strstr(c_Arr, "LT") != NULL) {
  63.       digitalWrite(GreenLed, LOW);
  64.       digitalWrite(YellowLed, LOW);
  65.       digitalWrite(RedLed, LOW);
  66.     }
  67.     if (strstr(c_Arr, "0Y") != NULL) {
  68.       digitalWrite(YellowLed, HIGH);
  69.       digitalWrite(RedLed, LOW);
  70.       digitalWrite(GreenLed, LOW);
  71.     }
  72.     if (strstr(c_Arr, "0R") != NULL) {
  73.       digitalWrite(RedLed, HIGH);
  74.       digitalWrite(YellowLed, LOW);
  75.       digitalWrite(GreenLed, LOW);
  76.     }
  77.   }
  78.   if (SlaveState == 1) {
  79.     if (strstr(c_Arr, "1G") != NULL) {
  80.       digitalWrite(GreenLed, HIGH);
  81.       digitalWrite(YellowLed, LOW);
  82.       digitalWrite(RedLed, LOW);
  83.     }
  84.     if (strstr(c_Arr, "1T") != NULL) {
  85.       digitalWrite(GreenLed, !digitalRead(GreenLed));
  86.       delay(500);
  87.       digitalWrite(YellowLed, LOW);
  88.       digitalWrite(RedLed, LOW);
  89.     }
  90.     if (strstr(c_Arr, "1Y") != NULL) {
  91.       digitalWrite(YellowLed, HIGH);
  92.       digitalWrite(RedLed, LOW);
  93.       digitalWrite(GreenLed, LOW);
  94.     }
  95.     if (strstr(c_Arr, "1R") != NULL) {
  96.       digitalWrite(RedLed, HIGH);
  97.       digitalWrite(YellowLed, LOW);
  98.       digitalWrite(GreenLed, LOW);
  99.     }
  100.   }
  101.         if (strstr(c_Arr, "RT") != NULL) {
  102.           ledToggle(RedLed);
  103.     }
  104.         if (strstr(c_Arr, "YT") != NULL) {
  105.       ledToggle(YellowLed);
  106.     }
  107.         if (strstr(c_Arr, "GT") != NULL) {
  108.           ledToggle(GreenLed);
  109.     }
  110.       if (strstr(c_Arr, "FF") != NULL) {
  111.       digitalWrite(GreenLed, LOW);
  112.       digitalWrite(YellowLed, LOW);
  113.       digitalWrite(RedLed, LOW);
  114.     }
  115.  
  116. }
  117. void ledToggle(int pin)
  118. {
  119.   digitalWrite(pin, HIGH);
  120.   delay(500);                      // delay 500 olacaq
  121.   digitalWrite(pin, LOW);
  122.   delay(500);
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement