FIRST PROGRAM
int digit1 = 11; //PWM Display pin 1
int digit2 = 10; //PWM Display pin 2
int segA = 2; //Display pin 14
int segB = 3; //Display pin 16
int segC = 4; //Display pin 13
int segD = 5; //Display pin 3
int segE = 6; //Display pin 5
int segF = 7; //Display pin 11
int segG = 8; //Display pin 15
int start_num=60; // Number to countdown from
unsigned long time;
void setup() {
pinMode(segA, OUTPUT);
pinMode(segB, OUTPUT);
pinMode(segC, OUTPUT);
pinMode(segD, OUTPUT);
pinMode(segE, OUTPUT);
pinMode(segF, OUTPUT);
pinMode(segG, OUTPUT);
pinMode(digit1, OUTPUT);
pinMode(digit2, OUTPUT);
pinMode(13, OUTPUT);
}
void loop() {
//long startTime = millis();
time=millis();
while(millis<time+1000){
displayNumber(start_num);
}
if(start_num==0)
start_num=60;
start_num--;
/*
if((millis()/1000) < start_num){
displayNumber(start_num -(millis()/1000));
}
else {
// reached zero, flash the display
time=millis();
while(millis() < time+200) {
displayNumber(0); // display 0 for 0.2 second
}
time=millis();
while(millis() < time+200) {
lightNumber(10); // Turn display off for 0.2 second
}
//timer0_overflow_count=0;
} */
}
void displayNumber(int toDisplay) {
#define DISPLAY_BRIGHTNESS 500
#define DIGIT_ON HIGH
#define DIGIT_OFF LOW
long beginTime = millis();
for(int digit = 2 ; digit > 0 ; digit--) {
//Turn on a digit for a short amount of time
switch(digit) {
case 1:
digitalWrite(digit1, DIGIT_ON);
break;
case 2:
digitalWrite(digit2, DIGIT_ON);
break;
}
//Turn on the right segments for this digit
lightNumber(toDisplay % 10);
toDisplay /= 10;
delayMicroseconds(DISPLAY_BRIGHTNESS);
//Display digit for fraction of a second (1us to 5000us, 500 is pretty good)
//Turn off all segments
lightNumber(10);
//Turn off all digits
digitalWrite(digit1, DIGIT_OFF);
digitalWrite(digit2, DIGIT_OFF);
}
while( (millis() - beginTime) < 10) ;
//Wait for 20ms to pass before we paint the display again
}
//Given a number, turns on those segments
//If number == 10, then turn off number
void lightNumber(int numberToDisplay) {
#define SEGMENT_ON LOW
#define SEGMENT_OFF HIGH
switch (numberToDisplay){
case 0:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_ON);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_OFF);
break;
case 1:
digitalWrite(segA, SEGMENT_OFF);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_OFF);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_OFF);
digitalWrite(segG, SEGMENT_OFF);
break;
case 2:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_OFF);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_ON);
digitalWrite(segF, SEGMENT_OFF);
digitalWrite(segG, SEGMENT_ON);
break;
case 3:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_OFF);
digitalWrite(segG, SEGMENT_ON);
break;
case 4:
digitalWrite(segA, SEGMENT_OFF);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_OFF);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_ON);
break;
case 5:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_OFF);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_ON);
break;
case 6:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_OFF);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_ON);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_ON);
break;
case 7:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_OFF);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_OFF);
digitalWrite(segG, SEGMENT_OFF);
break;
case 8:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_ON);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_ON);
break;
case 9:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_ON);
break;
case 10:
digitalWrite(segA, SEGMENT_OFF);
digitalWrite(segB, SEGMENT_OFF);
digitalWrite(segC, SEGMENT_OFF);
digitalWrite(segD, SEGMENT_OFF);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_OFF);
digitalWrite(segG, SEGMENT_OFF);
break;
}
}
SECOND PROGRAM
int MaRed = 8;
int MaYellow = 9;
int MaGreen = 10;
int ArGreen = 11;
int ArYellow = 12;
int ArRed = 13;
int MhGreen = 7;
int MhYellow = 6;
int MhRed = 5;
int ledDelay = 10000;
void setup() {
pinMode(MaRed, OUTPUT);
pinMode(MaYellow, OUTPUT);
pinMode(MaGreen, OUTPUT);
pinMode(ArGreen, OUTPUT);
pinMode(ArYellow, OUTPUT);
pinMode(ArRed, OUTPUT);
pinMode(MhGreen, OUTPUT);
pinMode(MhYellow, OUTPUT);
pinMode(MhRed, OUTPUT);
}
void loop(){
digitalWrite(ArGreen, HIGH); // Vehicles bound to Bonuan are GO
digitalWrite(ArYellow, LOW);
digitalWrite(ArRed, LOW);
digitalWrite(MaRed, HIGH); // Vehicles bound to A.B Fernandez STOP
digitalWrite(MaYellow, LOW);
digitalWrite(MaGreen, LOW);
digitalWrite(MhRed,HIGH); // Vehicles from MH Del Pilar STOP
digitalWrite(MhYellow, LOW);
digitalWrite(MhGreen, LOW);
delay(ledDelay);
/for (int x=0; x<5; x++){ // ArGreen will blink 10 times
digitalWrite(ArGreen, HIGH);
digitalWrite(MaRed, HIGH); //MaRed will blink 10 times
digitalWrite(MhRed, HIGH); //MhRed will blink 10 times
delay(200);
digitalWrite(ArGreen, LOW);
digitalWrite(MaRed, LOW);
digitalWrite(MhRed, LOW);
delay(150);
}/
digitalWrite(ArYellow, HIGH); // Yellow Light ON on Arellano TL
digitalWrite(MaRed, HIGH);
digitalWrite(MhRed, LOW);
digitalWrite(ArGreen, LOW);
digitalWrite(MhYellow, HIGH); // Yellow Light ON on MH TL
delay(5000);
digitalWrite(ArGreen, LOW);
digitalWrite(ArYellow, LOW);
digitalWrite(ArRed, HIGH); //Vehicle bound to Bonuan STOP
digitalWrite(MaGreen, LOW); // Vehicle bound to Mangaldan GO
digitalWrite(MaRed, HIGH);
digitalWrite(MhGreen, HIGH);
digitalWrite(MhRed, LOW); // Vehicle from MH Del Pilar STOP
digitalWrite(MhYellow, LOW);
delay(10000);
digitalWrite(MhYellow, HIGH);
digitalWrite(ArRed, HIGH);
digitalWrite(ArYellow, LOW);
digitalWrite(MaRed, LOW);
digitalWrite(MhGreen, LOW);
digitalWrite(MaYellow, HIGH);
delay(5000);
/for (int x=0; x<5; x++){ // ArRed will Blink 10 times
digitalWrite(ArRed, HIGH);
digitalWrite(MaRed, HIGH); //MaGreen will blink 10 times
digitalWrite(MhGreen, HIGH); //MhRed will blink 10 times
delay(200);
digitalWrite(ArRed, LOW);
digitalWrite(MaRed, LOW);
digitalWrite(MhGreen, LOW);
delay(150);
}/
digitalWrite(ArGreen, LOW);
digitalWrite(ArYellow, LOW);
digitalWrite(ArRed, HIGH); //Vehicle to Bonuan STOP
digitalWrite(MaGreen, HIGH); //Vehicle from Mangaldan GO
digitalWrite(MaRed, LOW);
digitalWrite(MhGreen, LOW);
digitalWrite(MhRed, HIGH); // Vehicle from MH Del Pilar STOP
digitalWrite(MhYellow, LOW);
digitalWrite(MaYellow, LOW);
delay(ledDelay);
/for (int x=0; x<5; x++){
digitalWrite(MaGreen, HIGH);
digitalWrite(ArRed, HIGH);
digitalWrite(MhRed, HIGH);
delay(200);
digitalWrite(MaGreen, LOW);
digitalWrite(ArRed, LOW);
digitalWrite(MhRed, LOW);
delay(150);
}/
digitalWrite(MaYellow, HIGH);
digitalWrite(ArRed, LOW);
digitalWrite(MhRed, HIGH);
digitalWrite(MaGreen, LOW);
digitalWrite(ArYellow, HIGH);
delay(5000);
}
PLEASE HELP ME... =(
I REALLY NEED TO DO THIS ONE :~
THANK YOU!