Robotech Innovators Kenya

How to interface 7-segment Display with Arduino

How to interface 7-segment Display with Arduino
How to interface 7 segment Display with Arduino

In this blog post, we’ll explore how to interface a 7-segment display with an Arduino. A 7-segment display is an electronic display device for displaying decimal numerals and a few alphabetic characters. It’s widely used in digital clocks, basic calculators, electronic meters, and other devices that display numerical information.

Components Needed

  1. Arduino Uno
  2. 7-segment display (common cathode)
  3. Jumper wires
  4. Breadboard
  5. Resistors (220 ohms)

Understanding the 7-Segment Display

A 7-segment display consists of seven LEDs (labeled a through g) arranged in a rectangular fashion. Each of the seven LEDs is called a segment because when illuminated, they form part of a numerical digit (both decimal and hex) to be displayed. There is also an eighth LED called the decimal point (dp).

Pin Configuration of 7-segment Display

For a common cathode 7-segment display, all the cathodes of the LEDs are connected together to a ground pin. The remaining pins are connected to the segments (a to g and dp).

Circuit Diagram

Here is the pin configuration for the display connected to the Arduino:

  • Segment a -> Pin 2
  • Segment b -> Pin 3
  • Segment c -> Pin 4
  • Segment d -> Pin 5
  • Segment e -> Pin 6
  • Segment f -> Pin 7
  • Segment g -> Pin 8
  • Common cathode -> GND

Connecting the 7-segment Display to Arduino

  1. Connect the common cathode pin of the display to the ground (GND) on the Arduino.
  2. Connect each segment pin (a to g) to digital pins 2 to 8 on the Arduino through a 220-ohm resistor.

Arduino Code

Below is the Arduino code to control the 7-segment display to show numbers from 0 to 9, each for one second.

void setup() {  // put your setup code here, to run once:pinMode(2,OUTPUT);pinMode(3,OUTPUT);pinMode(4,OUTPUT);pinMode(5,OUTPUT);pinMode(6,OUTPUT);pinMode(7,OUTPUT);pinMode(8,OUTPUT);
}
void loop() {  // put your main code here, to run repeatedly:zero();one();two();three();four();five();six();seven();eight();nine();}void zero() {  digitalWrite(2,HIGH);  digitalWrite(3,HIGH);  digitalWrite(4,HIGH);  digitalWrite(5,HIGH);  digitalWrite(6,HIGH);  digitalWrite(7,HIGH);  digitalWrite(8,LOW);  delay(1000);}void one(){  digitalWrite(2,LOW);  digitalWrite(3,HIGH);  digitalWrite(4,HIGH);  digitalWrite(5,LOW);  digitalWrite(6,LOW);  digitalWrite(7,LOW);  digitalWrite(8,LOW);  delay(1000); }
void two() {  digitalWrite(2,HIGH);  digitalWrite(3,HIGH);  digitalWrite(4,LOW);  digitalWrite(5,HIGH);  digitalWrite(6,HIGH);  digitalWrite(7,LOW);  digitalWrite(8,HIGH);  delay(1000);}
 void three() {  digitalWrite(2,HIGH);  digitalWrite(3,HIGH);  digitalWrite(4,HIGH);  digitalWrite(5,HIGH);  digitalWrite(6,LOW);  digitalWrite(7,LOW);  digitalWrite(8,HIGH);  delay(1000);  }
void four() {  digitalWrite(2,LOW);  digitalWrite(3,HIGH);  digitalWrite(4,HIGH);  digitalWrite(5,LOW);  digitalWrite(6,LOW);  digitalWrite(7,HIGH);  digitalWrite(8,HIGH);  delay(1000); }
void five() {  digitalWrite(2,HIGH);  digitalWrite(3,LOW);  digitalWrite(4,HIGH);  digitalWrite(5,HIGH);  digitalWrite(6,LOW);  digitalWrite(7,HIGH);  digitalWrite(8,HIGH);  delay(1000); }
void six() {  digitalWrite(2,HIGH);  digitalWrite(3,LOW);  digitalWrite(4,HIGH);  digitalWrite(5,HIGH);  digitalWrite(6,HIGH);  digitalWrite(7,HIGH);  digitalWrite(8,HIGH);  delay(1000);}
void seven() {  digitalWrite(2,HIGH);  digitalWrite(3,HIGH);  digitalWrite(4,HIGH);  digitalWrite(5,LOW);  digitalWrite(6,LOW);  digitalWrite(7,LOW);  digitalWrite(8,LOW);  delay(1000);  }
void eight() {  digitalWrite(2,HIGH);  digitalWrite(3,HIGH);  digitalWrite(4,HIGH);  digitalWrite(5,HIGH);  digitalWrite(6,HIGH);  digitalWrite(7,HIGH);  digitalWrite(8,HIGH);  delay(1000); }
void nine() {  digitalWrite(2,HIGH);  digitalWrite(3,HIGH);  digitalWrite(4,HIGH);  digitalWrite(5,HIGH);  digitalWrite(6,LOW);  digitalWrite(7,HIGH);  digitalWrite(8,HIGH);  delay(1000);}

Simulation files

Detailed Explanation

Initial Setup

In the setup() function, we initialize all the digital pins connected to the segments of the 7-segment display as output pins.

Main Loop

In the loop() function, we call the functions zero(), one(), two(), etc., each of which lights up the segments corresponding to the respective digit on the 7-segment display.

Segment Control Functions

Each digit function (e.g., zero(), one(), two()) sets the segments of the 7-segment display to HIGH or LOW using the digitalWrite() function to represent the respective digit. The delay(1000) function introduces a delay of 1 second between each digit display, allowing us to clearly see each number before the next one is displayed.

Conclusion

Interfacing a 7-segment display with an Arduino is a straightforward and educational project that introduces you to the basics of digital output control and component interfacing. By following this guide and using the provided code, you can display numbers on your 7-segment display, and further customize it for more complex applications such as timers, counters, or digital clocks. Experiment with the code, add more functionalities, and enjoy your journey into the world of Arduino and electronics.

Leave a Reply

Your email address will not be published. Required fields are marked *

Discover more from

Subscribe now to keep reading and get access to the full archive.

Continue reading

Verified by MonsterInsights