Design and implement a traffic light controller, as begun in class on February 14. The traffic light operates at the intersection of an east-west (EW) highway and a lightly used north-south(NS) road. There is a sensor embedded in the NS road that tell when a car is waiting at the intersection from either direction. So long as the sensor is not activated, the light shows green for the EW direction and red for the NS direction. When a car activates the sensor, the EW light changes from green to yellow to red, and back to green. The NS light goes green when the EW light goes red, and then goes to yellow to red, and the EW light turns green again once the NS light has returned to red. Yellow lights last for 10" and red lights last for 30".
In class, we based the design on a 0.1 Hz clock, and came up with a design that required 8 states. The state table had sixteen rows consisting of the 8 states combined with the two possible values of the sensor. There were three internal outputs to control three state flip-flops, and six external outputs to control the six pairs of signal lamps on the traffic light. We named the external outputs EWG, EWY, and EWR for "east-west green," "east-west yellow," and "east-west red" respectively. Likewise, we used the names NSG, etc. for the north-south light colors.
For this assignment, you are to draw the complete state diagram and state table, which we did in class. You are then to minimize all nine output functions, and to implement the controller using CircuitMaker. Use a digital switch for the sensor input, a hex display to show the state flip-flop values, and use two of the traffic light displays for the traffic lights. (You have to browse through the digital instruments to find the traffic lights.) You will want to slow down the simulation speed to be able to watch the state transitions, but your circuit doesn't have to work in real time; you would grow old debugging it! (About ten times real-time speed would be good.) Draw your state diagram, write out your state table, show your minimized functions, and print out your circuit diagram with a timing diagram that shows the clock, sensor, and the six lights.
You should be able to minimize the functions for this assignment by hand, but you can check your work by using a program that I wrote. The web page with the link to that program also has some tutorial information on minimization, and a link to a very nice interactive minimization program at a web site in Germany. I plan to update my program "soon" to give it a graphical user interface: stay tuned.
Deadline
You may submit Basic Extra and/or Extra Extra assignments as late as March 2 (one week after the required assignment is due).