Find all your DIY electronics in the MakerShed. 3D Printing, Kits, Arduino, Raspberry Pi, Books & more!

Make: Projects

Drive a 7-Segment LED with an Arduino

Learn how to hook up and drive a 7-segment LED display using the Arduino. We will use the Arduino alone to display numbers and letters (a-f) on our LED display.

Drive a 7-Segment LED with an Arduino

Using the Arduino development platform you will learn how to display numbers and letters on a single 7-segment LED display. There are many ways to drive 7-segment displays, and this is a fairly simple method. However, using this method to drive even one LED 7-segment array "burns" (occupies) many of the digital I/O pins on your Arduino. In later projects, I’ll show you how to use a dedicated 7-segment LED driver.

Steps

Step #1:

PrevNext
Drive a 7-Segment LED with an Arduino
  • Gather up your gear:
  • Two 220-ohm resistors (close to that value is good enough)
  • 11 male-to-male jumper wires
  • 1 Breadboard
  • 1 Arduino Development Board

Step #2:

PrevNext
Drive a 7-Segment LED with an ArduinoDrive a 7-Segment LED with an ArduinoDrive a 7-Segment LED with an ArduinoDrive a 7-Segment LED with an Arduino
  • Wire up your segment. Use the Fritzing image as your guide.
  • A = 8, B = 9, C=2, D=3, E=4, F=5, G=6
  • The two middle pins (Pin 3 and Pin 8) on top and bottom go to Ground (or to the first leg of the 220 ohm resistor). These are our current-limiting resistors.

Step #3:

PrevNext
Drive a 7-Segment LED with an Arduino
  • Load the code and you're good to go:
  • Get the code from here: http://bit.ly/ia3lv7
  • If you copy and paste the code into your Arduino sketch, you will see that if everything is hooked up correctly, it will loop from A-F then 1 - 0. This is not the most interesting project. However it does lay the groundwork for displaying data on a 7-segment LED for your Arduino projects.
  • The approach we used to drive this one 7-segment LED took 8 of our digital l/O lines. This is quite a few lines to "burn" for this functionality. However in upcoming tutorials, I will post some more elegant ways to drive 7-segment displays than using 8 digital I/O lines.
  • In the code there are 15 functions that will display the letter or number represented by the function name on the LED display. For example, if you were to run seven(), this would display the number 7 on the display. If you write a Pin LOW, you are in fact turning on that LED. If you write a pin HIGH it is now turned off.
  • That's it! All you have to do now is to program it to display something useful for your project.

Comments

  1. Solar Interested says:

    Thanks for this. I’m just starting out with my Arduino and had a common cathode 7 segment display so your code was just what I wanted to get started.

  2. JI says:

    In order to multiple 7-segment LED… How can we do a dedicated 7-segment LED driver?
    Thanks.

  3. Bert says:

    I tried to verify the code and got errors… please confirm

  4. Hi,

    I was also having trouble with this code. After a little bit I finally got it working and submited a pull request on GitHub but apparently they don’t accept requests very often.

    If you’re having trouble, feel free to try my version on https://github.com/karlalopez/Make-Projects/tree/master/_7_segment

    Cheers!

  5. If you want to build it yourself and like to solder, LucidTronix has a DIY kit that makes the wiring easier: http://lucidtronix.com/products/7

  6. Chris Stamelos says:

    the code is full of bugs pfff