Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Arduino.h>
- //Arduino Pins for Segments
- int A=2; //BCD pin 11
- int B=3; //BCD pin 7
- int C=4; //BCD pin 4
- int D=5; //BCD pin 2
- int E=6; //BCD pin 1
- int F=7; //BCD pin 10
- int G=8; //BCD pin 5
- int DP=9; //BCD pin 3
- //Arduino Digit Pins
- double D1=10; //BCD pin 12
- double D2=11;//BCD pin 9
- double D3=12;//BCD pin 8
- double D4=13; //BCD pin 6
- double digitsarray[4]={0,0,0,0};
- unsigned long time_now = 0;
- double start_time=1234;
- double current_time=start_time;
- double end_time=9999;
- void mydelay(int y);
- void displaynumber(double num);
- void displayoff();
- void selectdigit(double d);
- void setup() {
- Serial.begin(9600);
- //Pin Set up
- pinMode(A,OUTPUT);
- pinMode(B,OUTPUT);
- pinMode(C,OUTPUT);
- pinMode(D,OUTPUT);
- pinMode(E,OUTPUT);
- pinMode(F,OUTPUT);
- pinMode(G,OUTPUT);
- pinMode(DP,OUTPUT);
- pinMode(D1,OUTPUT);
- pinMode(D2,OUTPUT);
- pinMode(D3,OUTPUT);
- pinMode(D4,OUTPUT);
- }
- void loop() {
- //digits
- digitalWrite(D1,HIGH);
- digitalWrite(D2,HIGH);
- digitalWrite(D3,HIGH);
- digitalWrite(D4,HIGH);
- //variables for storing individual digits of current time/value
- int value;
- int firstdigit;
- int seconddigit;
- int thirddigit;
- int fourthdigit;
- Serial.print("Current Time:\n");
- Serial.print(current_time);
- value=current_time;
- //divides number into individual digits
- fourthdigit=value%10;
- value=value/10;
- thirddigit=value%10;
- value=value/10;
- seconddigit=value%10;
- value=value/10;
- firstdigit=value%10;
- digitsarray[0]=firstdigit;
- digitsarray[1]=seconddigit;
- digitsarray[2]=thirddigit;
- digitsarray[3]=fourthdigit;
- displayoff();
- selectdigit(1);
- displaynumber(digitsarray[0]);
- mydelay(100);
- displayoff();
- selectdigit(2);
- displaynumber(digitsarray[1]);
- mydelay(100);
- displayoff();
- selectdigit(3);
- displaynumber(digitsarray[2]);
- mydelay(100);
- displayoff();
- selectdigit(4);
- displaynumber(digitsarray[3]);
- mydelay(100);
- mydelay(600);
- current_time=current_time+1;
- }
- void mydelay(int y)
- {
- time_now = millis();
- while(millis() < time_now + y){
- }
- }
- void displaynumber(double num)
- {
- //mumbers 0-9
- if(num==0)
- {
- digitalWrite(A,HIGH);
- digitalWrite(B,HIGH);
- digitalWrite(C,HIGH);
- digitalWrite(D,HIGH);
- digitalWrite(E,HIGH);
- digitalWrite(F,HIGH);
- digitalWrite(G,LOW);
- }
- if(num==1)
- {
- digitalWrite(A,LOW);
- digitalWrite(B,HIGH);
- digitalWrite(C,HIGH);
- digitalWrite(D,LOW);
- digitalWrite(E,LOW);
- digitalWrite(F,LOW);
- digitalWrite(G,LOW);
- }
- if(num==2)
- {
- digitalWrite(A,HIGH);
- digitalWrite(B,HIGH);
- digitalWrite(C,LOW);
- digitalWrite(D,HIGH);
- digitalWrite(E,HIGH);
- digitalWrite(F,LOW);
- digitalWrite(G,HIGH);
- }
- if(num==3)
- {
- digitalWrite(A,HIGH);
- digitalWrite(B,HIGH);
- digitalWrite(C,HIGH);
- digitalWrite(D,HIGH);
- digitalWrite(E,LOW);
- digitalWrite(F,LOW);
- digitalWrite(G,HIGH);
- }
- if(num==4)
- {
- digitalWrite(A,LOW);
- digitalWrite(B,HIGH);
- digitalWrite(C,HIGH);
- digitalWrite(D,LOW);
- digitalWrite(E,LOW);
- digitalWrite(F, HIGH);
- digitalWrite(G,HIGH);
- }
- if(num==5)
- {
- digitalWrite(A,HIGH);
- digitalWrite(B,LOW);
- digitalWrite(C,HIGH);
- digitalWrite(D,HIGH);
- digitalWrite(E,LOW);
- digitalWrite(F,HIGH);
- digitalWrite(G,HIGH);
- }
- if(num==6)
- {
- digitalWrite(A,HIGH);
- digitalWrite(B,LOW);
- digitalWrite(C,HIGH);
- digitalWrite(D,HIGH);
- digitalWrite(E,HIGH);
- digitalWrite(F,HIGH);
- digitalWrite(G,HIGH);
- }
- if(num==7)
- {
- digitalWrite(A,HIGH);
- digitalWrite(B,HIGH);
- digitalWrite(C,HIGH);
- digitalWrite(D,LOW);
- digitalWrite(E,LOW);
- digitalWrite(F,HIGH);
- digitalWrite(G,LOW);
- }
- if(num==8)
- {
- digitalWrite(A,HIGH);
- digitalWrite(B,HIGH);
- digitalWrite(C,HIGH);
- digitalWrite(D,HIGH);
- digitalWrite(E,HIGH);
- digitalWrite(F,HIGH);
- digitalWrite(G,HIGH);
- }
- if(num==9)
- {
- digitalWrite(A,HIGH);
- digitalWrite(B,HIGH);
- digitalWrite(C,HIGH);
- digitalWrite(D,HIGH);
- digitalWrite(E,LOW);
- digitalWrite(F,HIGH);
- digitalWrite(G,HIGH);
- }
- }
- void displayoff()
- {
- //turns all segments off
- digitalWrite(A,LOW);
- digitalWrite(B,LOW);
- digitalWrite(C,LOW);
- digitalWrite(D,LOW);
- digitalWrite(E,LOW);
- digitalWrite(F,LOW);
- digitalWrite(G,LOW);
- }
- void selectdigit(double d)
- {
- digitalWrite(D1,HIGH);
- digitalWrite(D2,HIGH);
- digitalWrite(D3,HIGH);
- digitalWrite(D4,HIGH);
- //switches the selected digit to turn on
- switch((int) d)
- {
- case 1:
- digitalWrite(D1, LOW);
- break;
- case 2:
- digitalWrite(D2, LOW);
- break;
- case 3:
- digitalWrite(D3, LOW);
- break;
- case 4:
- digitalWrite(D4, LOW);
- break;
- }
- }
Add Comment
Please, Sign In to add comment