Hi. I'm a final year physics student in Sierra Leone (Africa) and completely new to the Arduino. However I have to use the arduino UNO to build something (in my case a traffic light system) for my dissertation. I'm using a particular intersection in my country for a model (see attached image). The traffic lights would run on a timed sequence. However for the intersection in question, the traffic direction 2 (indicated on image) is usually heavy in the morning (into city centre) and traffic direction 1 heavy in the evening (as people return home from their daily activities). I'd like to make provision for those two distinct traffic conditions in my code. I'm thinking of using a code that gives more time to traffic 2 for a certain period (to suggest mornings) in the cycle the reverse happening for traffic 1 in the evening. However since it is just a prototype i would be using very small time intervals. Any idea on how to include this? or how to solve this traffic problem?
Here is my code for the timed sequence. Pls note traffic 2&1 are denoted by "cgreen" and "lgreen" in code. I'd be grateful to receive as much help as i can. been cracking my head for a while on this
const int cgreen=6;
const int cyellow=5;
const int cred=7;
const int zgreen=8;
const int zyellow=9;
const int zRed=10;
const int lgreen=11;
const int lyellow=12;
const int lred=13;
const int delayTime=2000;
void setup(){
pinMode (cgreen, OUTPUT);
pinMode (cyellow, OUTPUT);
pinMode (cred, OUTPUT);
pinMode (zgreen, OUTPUT);
pinMode (zyellow, OUTPUT);
pinMode (zRed, OUTPUT);
pinMode (lgreen, OUTPUT);
pinMode (lyellow, OUTPUT);
pinMode (lred, OUTPUT);
}
void loop(){
digitalWrite (cred, HIGH);
digitalWrite (zRed, HIGH);
digitalWrite (lred, HIGH);
delay (delayTime*3);
digitalWrite (zyellow, HIGH);
digitalWrite (zRed, LOW);
delay (delayTime);
digitalWrite (zgreen, HIGH);
digitalWrite (zyellow, LOW);
delay (delayTime*4);
digitalWrite (zgreen, LOW);
digitalWrite (zyellow, HIGH);
digitalWrite (lred, LOW);
digitalWrite (lyellow, HIGH);
delay (delayTime);
digitalWrite (zyellow, LOW);
digitalWrite (zRed, HIGH);
digitalWrite (lred, LOW);
digitalWrite (lyellow, HIGH);
delay (delayTime);
digitalWrite (lyellow, LOW);
digitalWrite (lgreen, HIGH);
delay (delayTime*7);
digitalWrite (lgreen, LOW);
digitalWrite (cred, LOW);
digitalWrite (cyellow, HIGH);
digitalWrite (lyellow, HIGH);
delay (delayTime);
digitalWrite (lyellow, LOW);
digitalWrite (lred, HIGH);
digitalWrite (cyellow, HIGH);
delay (delayTime);
digitalWrite (cgreen, HIGH);
digitalWrite (cyellow, LOW);
delay (delayTime*7);
digitalWrite(cgreen, LOW);
digitalWrite(cyellow, HIGH);
delay (delayTime);
digitalWrite(cyellow,LOW);
}