Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SoftwareSerial.h>
- SoftwareSerial mySerial(10, 11); // RX, TX
- #define RedLed 13
- #define YellowLed A0
- #define GreenLed A1
- #define SlaveStatePin A3
- void TrafficLight();
- long long int current=0, privent=0;
- byte SlaveState = 0, i;
- char c_Arr[2];
- void setup() {
- Serial.begin(9600);
- mySerial.begin(9600);
- pinMode(RedLed, OUTPUT);
- pinMode(YellowLed, OUTPUT);
- pinMode(GreenLed, OUTPUT);
- pinMode(SlaveStatePin, INPUT);
- if (digitalRead(SlaveStatePin) == HIGH)
- SlaveState = 1;
- }
- void loop() {
- delay(75); //75
- if (mySerial.available())
- {
- for (i = 0; i < 2; i++)
- c_Arr[i] = (char)mySerial.read();
- privent=current;
- }
- for (i = 0; i < 2; i++) {
- Serial.print(c_Arr[i]);
- }
- Serial.println();
- // if (!mySerial.available())
- // {
- //
- // current=millis()/1000;
- // if((current-privent)>=5){
- // for (i = 0; i < 2; i++)
- // c_Arr[i] = '0';
- // digitalWrite(YellowLed, LOW);
- // digitalWrite(GreenLed, LOW);
- // digitalWrite(RedLed, LOW);
- // }
- // }
- TrafficLight();
- }
- void TrafficLight()
- {
- if (SlaveState == 0) {
- if (strstr(c_Arr, "0G") != NULL) {
- digitalWrite(GreenLed, HIGH);
- digitalWrite(YellowLed, LOW);
- digitalWrite(RedLed, LOW);
- }
- if (strstr(c_Arr, "HT") != NULL) {
- digitalWrite(GreenLed, HIGH);
- digitalWrite(YellowLed, LOW);
- digitalWrite(RedLed, LOW);
- }
- if (strstr(c_Arr, "LT") != NULL) {
- digitalWrite(GreenLed, LOW);
- digitalWrite(YellowLed, LOW);
- digitalWrite(RedLed, LOW);
- }
- if (strstr(c_Arr, "0Y") != NULL) {
- digitalWrite(YellowLed, HIGH);
- digitalWrite(RedLed, LOW);
- digitalWrite(GreenLed, LOW);
- }
- if (strstr(c_Arr, "0R") != NULL) {
- digitalWrite(RedLed, HIGH);
- digitalWrite(YellowLed, LOW);
- digitalWrite(GreenLed, LOW);
- }
- }
- if (SlaveState == 1) {
- if (strstr(c_Arr, "1G") != NULL) {
- digitalWrite(GreenLed, HIGH);
- digitalWrite(YellowLed, LOW);
- digitalWrite(RedLed, LOW);
- }
- if (strstr(c_Arr, "1T") != NULL) {
- digitalWrite(GreenLed, !digitalRead(GreenLed));
- delay(500);
- digitalWrite(YellowLed, LOW);
- digitalWrite(RedLed, LOW);
- }
- if (strstr(c_Arr, "1Y") != NULL) {
- digitalWrite(YellowLed, HIGH);
- digitalWrite(RedLed, LOW);
- digitalWrite(GreenLed, LOW);
- }
- if (strstr(c_Arr, "1R") != NULL) {
- digitalWrite(RedLed, HIGH);
- digitalWrite(YellowLed, LOW);
- digitalWrite(GreenLed, LOW);
- }
- }
- if (strstr(c_Arr, "RT") != NULL) {
- ledToggle(RedLed);
- }
- if (strstr(c_Arr, "YT") != NULL) {
- ledToggle(YellowLed);
- }
- if (strstr(c_Arr, "GT") != NULL) {
- ledToggle(GreenLed);
- }
- if (strstr(c_Arr, "FF") != NULL) {
- digitalWrite(GreenLed, LOW);
- digitalWrite(YellowLed, LOW);
- digitalWrite(RedLed, LOW);
- }
- }
- void ledToggle(int pin)
- {
- digitalWrite(pin, HIGH);
- delay(500); // delay 500 olacaq
- digitalWrite(pin, LOW);
- delay(500);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement