// #include <TaskScheduler.h>
// #include <Arduino_FreeRTOS.h>
// const int RED_TIME = 3000;
// const int YELLOW_TIME = 3000;
// const int GREEN_TIME = 3000;
// const int GREEN_BLINK = 5000;
// const int GREEN_BLINK_INTERVAL = 500;
// bool redOE();
// void redOD();
// bool redPOE();
// void redPOD();
// bool yellowOE();
// void yellowOD();
// bool greenOE();
// void greenOD();
// bool greenPOE();
// void greenPOD();
// bool greenBlinkOE();
// void greenBlinkCB();
// void greenBlinkOD();
// Scheduler ts;
// Task red(RED_TIME, TASK_ONCE, NULL, &ts, false, &redOE, &redOD);
// Task redP(RED_TIME, TASK_ONCE, NULL, &ts, false, &redPOE, &redPOD);
// Task yellow(YELLOW_TIME, TASK_ONCE, NULL, &ts, false, &yellowOE, &yellowOD);
// Task green(GREEN_TIME, TASK_ONCE, NULL, &ts, false, &greenOE, &greenOD);
// Task greenP(GREEN_TIME, TASK_ONCE, NULL, &ts, false, &greenPOE, &greenPOD);
// Task greenBlink(GREEN_BLINK_INTERVAL, GREEN_BLINK / GREEN_BLINK_INTERVAL, &greenBlinkCB, &ts, false, &greenBlinkOE, &greenBlinkOD);
// bool alreadyRed = true;
// bool redToGreen = true;
// int people = 1;
// int inputPin = 3;
// void setup() {
// pinMode(8, OUTPUT);
// pinMode(11, OUTPUT);
// pinMode(9, OUTPUT);
// pinMode(7, OUTPUT);
// pinMode(5, OUTPUT);
// pinMode(inputPin, INPUT_PULLUP);
// redToGreen = true;
// red.restartDelayed();
// redP.restartDelayed();
// }
// void loop() {
// ts.execute();
// }
// //Vehicle traffic Light
// bool redOE() {
// digitalWrite(8, HIGH);
// redToGreen = true;
// alreadyRed = true;
// return true;
// }
// void redOD() {
// digitalWrite(8, LOW);
// alreadyRed = false;
// green.restartDelayed();
// }
// bool yellowOE() {
// digitalWrite(11, HIGH);
// return true;
// }
// void yellowOD() {
// digitalWrite(11, LOW);
// if (redToGreen) {
// green.restartDelayed();
// }
// else {
// red.restartDelayed();
// }
// }
// bool greenOE() {
// digitalWrite(9, HIGH);
// return true;
// }
// void greenOD() {
// digitalWrite(9, LOW);
// greenBlink.restartDelayed();
// }
// bool greenState;
// bool greenBlinkOE() {
// digitalWrite(9, HIGH);
// greenState = true;
// return true;
// }
// void greenBlinkCB() {
// greenState = !greenState;
// digitalWrite(9, greenState ? HIGH : LOW);
// }
// void greenBlinkOD() {
// digitalWrite(9, LOW);
// yellow.restartDelayed();
// redToGreen = false;
// }
// //Walking traffic Light
// bool redPOE() {
// digitalWrite(7, HIGH);
// return true;
// }
// void redPOD() {
// digitalWrite(7, HIGH);
// if (alreadyRed == true){
// greenP.restartDelayed();
// red.restartDelayed();
// }
// }
// bool greenPOE() {
// digitalWrite(5, HIGH);
// return true;
// }
// void greenPOD() {
// digitalWrite(5, LOW);
// redP.restartDelayed();
// }