Large 7 Segment (2.3") Display Interfacing Using Arduino with Pin Configuration
Overview
In this tutorial, we will learn how to interfacing large 7 segments (2.3") display with Arduino. To displayed decimal number in 0 to 9, it is the most common and popular display all over the world. Also, these type of display is available in any country. They are low cost and easy to use. They are two types of display called common cathode (-) and common anode (+). Here we will discuss the common anode display(+).
You can watch the following video below:-
You can watch the following video below:-
Components Required
The required components list for this tutorial given below:-- Arduino Uno
- 7 Segment Display Common Anode
- 12V Power Supply
- Breadboard
- Some Jumper Wire
7 Segment Display Pinout
The following below figure shows 7 segment display pin configuration.Fig: Common anode 7 segments display pinout |
Circuit Diagram
The following below figure shows Arduino Uno and 7 segment display interfacing.
Fig: Arduino and 7 segments display interfacing. |
Circuit Description
Single digit 7 segment display typically have 10 pins in which one is DP pin, two common Vcc pins. In the common pin Vcc(1 and 5), we need to supply 7 to 12V. The remaining of seven pins are a,b,c,d,f,g will be connected to the Arduino according to the following below.
Arduino--------------------Seven Segment
Pin_1 ---------------- Pin_7 (Seg_a)
Pin_2 ---------------- Pin_6 (Seg_b)
Pin_3 ---------------- Pin_4 (Seg_c)
Pin_4 ---------------- Pin_3 (Seg_d)
Pin_5 ---------------- Pin_2 (Seg_e)
Pin_6 ----------------- Pin_9 (Seg_f)
Pin_7 ----------------- Pin_10 (Seg_g)
Source Code
Common anode display Arduino source code given below:- int digit[10]={B10000000,B11110010,B01001000,B01100000,B00110010,B00100100,B00000100,B11110000,B00000000,B00100000};
void setup() {
DDRD = B11111110;
}
void loop() {
for(int i=0;i<10;i++)
{
PORTD = digit[i];
delay(1000);
}
}
Alternative common cathode display Arduino source code given below:- // Common Anode 7 segment display code
int seg_a = 1;
int seg_b = 2;
int seg_c = 3;
int seg_d = 4;
int seg_e = 5;
int seg_f = 6;
int seg_g = 7;
void setup() {
pinMode(seg_a, OUTPUT);
pinMode(seg_b, OUTPUT);
pinMode(seg_c, OUTPUT);
pinMode(seg_d, OUTPUT);
pinMode(seg_e, OUTPUT);
pinMode(seg_f, OUTPUT);
pinMode(seg_g, OUTPUT);
}
void loop() {
for (int i = 0; i < 10; i++)
{
digit(i);
delay(1000);
}
}
void digit(int num)
{
switch (num) {
case 0: zero(); break;
case 1: one(); break;
case 2: two(); break;
case 3: three(); break;
case 4: four(); break;
case 5: five(); break;
case 6: six(); break;
case 7: seven(); break;
case 8: eight(); break;
case 9: nine(); break;
}
}
void Digit(int A, int B, int C, int D, int E, int F, int G)
{
digitalWrite(seg_a, A); digitalWrite(seg_b, B); digitalWrite(seg_c, C); digitalWrite(seg_d, D);
digitalWrite(seg_e, E); digitalWrite(seg_f, F); digitalWrite(seg_g, G);
}
void one()
{Digit(0,1,1,0,0,0,0);}
void two()
{Digit(1,1,0,1,1,0,1);}
void three()
{Digit(1,1,1,1,0,0,1);}
void four()
{Digit(0,1,1,0,0,1,1);}
void five()
{Digit(1,0,1,1,0,1,1);}
void six()
{Digit(1,0,1,1,1,1,1);}
void seven()
{Digit(1,1,1,0,0,0,0);}
void eight()
{Digit(1,1,1,1,1,1,1);}
void nine()
{Digit(1,1,1,1,0,1,1);}
void zero()
{Digit(1,1,1,1,1,1,0);}
No comments