Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp
- Committer:
- alvaro75
- Date:
- 2019-11-29
- Revision:
- 0:6cba4a800507
File content as of revision 0:6cba4a800507:
/************************************************************ * University of Dundee * * ME21001 - Software Applications for Engineering Design * * Traffic Intersection Project * * Group 3 * * Alvaro Almeida Arencibia * * Adams Boyd * * Qiushuhao * * * * This progam will control 4 traffic lights * * with the intervention of a train * * * * For this program we will have 7 leds as outputs and 3 * * inputs; 2 Ldrs and 1 switch * ************************************************************/ #include "mbed.h" // We include the library called "mbed.h" DigitalOut redled1 (p23); // pin 23 is declared as an output with the name of redled1 (this led wiill be for the cars) DigitalOut redledp (p21); // pin 21 is declared as an output with the name of redledp (this led will be for the pedestrians) DigitalOut greenled1 (p24); // pin 24 is declared as an output with the name of greenled1 (this led will be for the cars) DigitalOut greenledp (p27); // pin 27 is declared as an output with the name of greenledp (this led will be for the pedestrians) DigitalOut yellowled1 (p22); // pin 22 is declared as an output with the name of yellowled1 (this led will be for the cars) DigitalIn switchstate (p10); // pin 10 is declared as an input with the name of switchstate (this switch will be used by the pedestrians) DigitalIn LDR1 (p17); // pin 17 is declared as an input with the name of LDR1 (this LDR will be in charge to see if there are cars in the middle of the junctions) DigitalIn LDR2 (p18); // pin 18 is declared as an input with the name of LDR2 (this LDR will observe if there are is any train coming) DigitalOut myspeaker (LED1); // LED1 is declared as an output with the name of myspeaker as this led will simulate an alarm DigitalOut LED(LED2); // LED2 is declared as an output with the name of LED2 int alarm=0; // A variable named as "alarm", with an initial value of 0, is defined int state=1; // A variable named as "state", with an initial value of 1, is defined void train () { // A new function named as "train" is declared greenled1=0; // greenled1 is turned off yellowled1=1; // yellowled1 is turned on wait(5); // wait for 5 seconds redled1=1; // redled1 is turned on yellowled1=0; // yellowled1 is turned off wait(1); // wait for 1 second redledp=0; // redledp is turned off greenledp=1; // greenledp is turned on wait(3); // wait for 3 seconds if(LDR1.read()) { // An "if" function is defined, this will make an action if LDR1 detects a lack of light if(LDR1.read()) { // An "if" function is defined, this will make an action if LDR1 detects a lack of light alarm= alarm+1; // This comand will increase the value of the variable "alarm" by 1 wait(2); // wait for 2 seconds } if(LDR1.read()) { // An "if" function is defined, this will make an action if LDR1 detects a lack of light alarm= alarm+1; // This comand will increase the value of the variable "alarm" by 1 wait(2); // wait for 2 seconds } if(LDR1.read()) { // An "if" function is defined, this will make an action if LDR1 detects a lack of light alarm= alarm+1; // This comand will increase the value of the variable "alarm" by 1 wait(2); // wait for 2 seconds } if(alarm==3) { // An "if" function is defined, this will make an action if the value of the variable "alarm" is equal to 3 myspeaker= 1; // myspeaker1 is turned on greenled1=0; // greenled1 is turned off redled1=1; // redled1 is turned on redledp=1; // redledp is turned on greenledp=0; // greenledp is turned off wait(50); // wait for 50 seconds } } } void pedestrian() { // A new funtion named as "pedestrian" is declared if (LDR2.read()) { // An "if" function is defined, this will make an action if LDR2 detects a lack of light train(); // This will do the function "train" } greenled1=0; // greenled1 is turned off LED=0; // LED is turned off yellowled1=1; // yellowled1 is turned on wait(5); // Wait for 5 seconds redled1=1; // redled1 is turned on wait(2); // Wait for 2 seconds yellowled1=0; // yellowled1 is turned off wait(1); // Wait for 1 second redledp=0; // redledp is turned off greenledp=1; // greenledp is turned on wait(5); // Wait for 5 seconds greenledp=0; // greenledp is turned off redledp=1; // redledp is turned on wait(1); // Wait for 1 second yellowled1=1; // yellowled1 is turned on wait(1); // wait for 1 second yellowled1=0; // yellowled1 is turned off redled1=0; // redled1 is turned off greenled1=1; // greenled1 is turned on LED=1; // LED is turned on wait(1); // wait for 1 second state= state+1; // This comand will increase the value of the variable "state" by 1 } int main() { while(1) { // Command that creates an infinite loop greenled1=1; // greenled1 is turned on redledp=1; // redledp is turned on if(switchstate.read()) { // An "if" function is defined, this will make an action if switch detects it is being pressed state=state+1; // This comand will increase the value of the variable "state" by 1 } if (state>1){ // An "if" function is defined, this will make an action if the variable "state" is higher than 1 state=0; // This comand will define the value of the variable "state" to 0 } if(state==0) { // An "if" function is defined, this will make an action if the value of the variable "state" is 0 pedestrian (); // The function "pedestrian" will be done } if(LDR2.read()) { // An "if" function is defined, this will make an action if LDR2 detects a lack of light train(); // The function "train" will be done wait(3); // Wait for 3 seconds redledp=1; // redledp is turned on greenledp=0; // greenledp is turned off wait(1); // Wait for 1 second yellowled1=1; // yellowled1 is turned on wait(1); // Wait for 1 second redled1=0; // redled1 is turned off yellowled1=0; // yellowled1 is turned off greenled1=1; // greenled1 is turned on wait(5); // Wait for 5 seconds } } }