7 Segment 4 Digits Display
1. Objective
The objective of this project is talk about, how to use 7 segment 4 digits and display count up from 0 to 9999.2. Electronic Requirement
- Arduino UNO
- USP Cable
- 7 Segment 4 digits (Cathode Type)
- Breadboard
- Electronic Wire
- Resistor x4 (330Ohm or 220Ohm)
- Arduino pin 5 --> R1 --> 7 Segment D1
- Arduino pin 4 --> R2 --> 7 Segment D2
- Arduino pin 3 --> R3 --> 7 Segment D3
- Arduino pin 2 --> R4 --> 7 Segment D4
3. How to Build it?
The first build circuit like below on Fig 1.1 automatic count up number.Fig 1. 7 segment 4 digits display automatic count up number 0 to 9999 |
// Write code by Tann Thona (25/02/2017), Adviser: Chann Tola
int PIN_A = 12;
int PIN_B = 11;
int PIN_C = 10;
int PIN_D = 9;
int PIN_E = 8;
int PIN_F = 7;
int PIN_G = 6;
int DL4 = 5;
int DL3 = 4;
int DL2 = 3;
int DL1 = 2;
int i = 0;
int j = 0;
int n = 0;
int k = 0;
int h = 0;
int Arduino_Pins[7] = {PIN_A, PIN_B, PIN_C, PIN_D, PIN_E, PIN_F, PIN_G}; // an array of pin numbers to which LEDs
int Segment_Pins[10][7] = {{1,1,1,1,1,1,0}, // 0
{0,1,1,0,0,0,0}, // 1
{1,1,0,1,1,0,1}, // 2
{1,1,1,1,0,0,1}, // 3
{0,1,1,0,0,1,1}, // 4
{1,0,1,1,0,1,1}, // 5
{1,0,1,1,1,1,1}, // 6
{1,1,1,0,0,0,0}, // 7
{1,1,1,1,1,1,1}, // 8
{1,1,1,1,0,1,1}, // 9
};
int DELAY = 1;
int TIME = 0;
void digit4()
{
digitalWrite(DL1,0);
digitalWrite(DL2,1);
digitalWrite(DL3,1);
digitalWrite(DL4,1);
for(j=0;j<7;j++) {
digitalWrite(Arduino_Pins[j],Segment_Pins[i][j]);
}
delay(DELAY);
}
//=============================
void digit3()
{
digitalWrite(DL1,1); // change 1 to 0 and 0 to 1 (for 7segment anoth type)
digitalWrite(DL2,0);
digitalWrite(DL3,1);
digitalWrite(DL4,1);
for(j=0;j<7;j++)
{
digitalWrite(Arduino_Pins[j],Segment_Pins[n][j]);
} // end loop j
delay(DELAY);
}
//==============================
void digit2()
{
digitalWrite(DL1,1);
digitalWrite(DL2,1);
digitalWrite(DL3,0);
digitalWrite(DL4,1);
for(j=0;j<7;j++)
{
digitalWrite(Arduino_Pins[j],Segment_Pins[k][j]);
} // end loop k
delay(DELAY);
}
//==============================
void digit1()
{
digitalWrite(DL1,1);
digitalWrite(DL2,1);
digitalWrite(DL3,1);
digitalWrite(DL4,0);
for(j=0;j<7;j++)
{
digitalWrite(Arduino_Pins[j],Segment_Pins[h][j]);
} // end loop j
delay(DELAY);
}
void setup()
{
// put your setup code here, to run once:
pinMode(PIN_A, OUTPUT);
pinMode(PIN_B, OUTPUT);
pinMode(PIN_C, OUTPUT);
pinMode(PIN_D, OUTPUT);
pinMode(PIN_E, OUTPUT);
pinMode(PIN_F, OUTPUT);
pinMode(PIN_G, OUTPUT);
pinMode(DL1, OUTPUT);
pinMode(DL2, OUTPUT);
pinMode(DL3, OUTPUT);
pinMode(DL4, OUTPUT);
}
void loop()
{
for(i=0;i<10;i++)
{
for(TIME=0;TIME<=250;TIME++)// Simulation (TIME=0;TIME<=250;TIME++)
{
digit4();
digit3();
digit2();
digit1();
//delay(1);
}
// Condition Count Up
if(i==9)
{
n++;
//----------------
if(n>9)
{
k++;
//----------------
if(k>9)
{
h++;
//----------------
if(h>9)
{
h = 0;
} // end if(h>9)
} // end if(k==9)
//----------------
if(k>9)
{
k = 0;
}
} // end if(n==9)
//----------------
if(n>9)
{
n = 0;
} // end if (n>9)
} // end if (i==9)
} // end time
} // End Void Loop
4. Result
Now we get a result that 7 segment 4 digits display are started from 0 to 9999 with count up one by one per second in automatically like video below.Royal University of Phnom Penh
Faculty of Engineering
Dep. Telecommunication and Electronic Engineering
Group Member:
1. Tann Thona
2. Thach Soveasna
3. Chhoy Noreath
4. Neth Channa
5. Mok Vira
Instructor: Prof. Chann Tola
Date: 25 February 2017
No comments:
Post a Comment