ARDUINO SEVEN SEGIMENTS COUNTDOWN

If this is your first Arduino project, first go through our “Arduino: GettingStarted” tutorial


Use our LED resistor calculator to calculate the resistor value that won't destroy your LED!  Connecting these LEDs directly to Arduino IO pins will eventually burn them out!  Connect LED pins 3 and 8 to GND.  Use a resistor between each of the other connections to your Arduino.

Here are the pin mappings of the display, note that common anode displays will have reversed wiring:

Use your solderless breadboard to make the connections between the seven segment LED and your Arduino board:

Arduino Pin
7 Segment Pin Connection
 2
7 (A)
 3
6 (B)
 4
4 (C)
 5
2 (D)
 6
1 (E)
 7
9 (F)
 8 
 10 (G)
 9 
5 (DP)


Software

This Arduino software example counts down from 9 to 0.  This is a nice, compact version that uses a 2 dimensional array to hold the LED bit patterns, and "for" loops to get things done.  If you want a longer, more verbose method, scroll down for that.


// Arduino 7 segment display example software

// http://www.hacktronics.com/Tutorials/arduino-and-7-segment-led.html

// License: http://www.opensource.org/licenses/mit-license.php (Go crazy)


// Define the LED digit patters, from 0 - 9

// Note that these patterns are for common cathode displays

// For common anode displays, change the 1's to 0's and 0's to 1's

// 1 = LED on, 0 = LED off, in this order:

//                                    Arduino pin: 2,3,4,5,6,7,8
byte seven_seg_digits[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,0,0,1,1 }   // = 9

                                                           };

void setup() {                
  pinMode(2, OUTPUT);   
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  writeDot(0);  // start with the "dot" off
}

void writeDot(byte dot) {
  digitalWrite(9, dot);
}
    
void sevenSegWrite(byte digit) {
  byte pin = 2;
  for (byte segCount = 0; segCount < 7; ++segCount) {
    digitalWrite(pin, seven_seg_digits[digit][segCount]);
    ++pin;
  }
}

void loop() {
  for (byte count = 10; count > 0; --count) {
   delay(1000);
   sevenSegWrite(count - 1); 
  }
  delay(4000);
}


Another version but complicated Codes


// Longer, more obvious example for Arduino 7 segment display
// http://www.hacktronics.com/Tutorials/arduino-and-7-segment-led.html

// License: http://www.opensource.org/licenses/mit-license.php (Go crazy)



void setup() {               

  pinMode(2, OUTPUT);  

  pinMode(3, OUTPUT);

  pinMode(4, OUTPUT);

  pinMode(5, OUTPUT);

  pinMode(6, OUTPUT);

  pinMode(7, OUTPUT);

  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  digitalWrite(9, 0);  // start with the "dot" off
}

void loop() {
 // write '9'
 digitalWrite(2, 1);
 digitalWrite(3, 1);
 digitalWrite(4, 1);
 digitalWrite(5, 0);
 digitalWrite(6, 0);
 digitalWrite(7, 1);
 digitalWrite(8, 1);
 delay(1000);
 // write '8'
 digitalWrite(2, 1);
 digitalWrite(3, 1);
 digitalWrite(4, 1);
 digitalWrite(5, 1);
 digitalWrite(6, 1);
 digitalWrite(7, 1);
 digitalWrite(8, 1);
 delay(1000);
 // write '7'
 digitalWrite(2, 1);
 digitalWrite(3, 1);
 digitalWrite(4, 1);
 digitalWrite(5, 0);
 digitalWrite(6, 0);
 digitalWrite(7, 0);
 digitalWrite(8, 0);
 delay(1000);
 // write '6'
 digitalWrite(2, 1);
 digitalWrite(3, 0);
 digitalWrite(4, 1);
 digitalWrite(5, 1);
 digitalWrite(6, 1);
 digitalWrite(7, 1);
 digitalWrite(8, 1);
 delay(1000);
 // write '5'
 digitalWrite(2, 1);
 digitalWrite(3, 0);
 digitalWrite(4, 1);
 digitalWrite(5, 1);
 digitalWrite(6, 0);
 digitalWrite(7, 1);
 digitalWrite(8, 1);
 delay(1000);
 // write '4'
 digitalWrite(2, 0);
 digitalWrite(3, 1);
 digitalWrite(4, 1);
 digitalWrite(5, 0);
 digitalWrite(6, 0);
 digitalWrite(7, 1);
 digitalWrite(8, 1);
 delay(1000);
 // write '3'
 digitalWrite(2, 1);
 digitalWrite(3, 1);
 digitalWrite(4, 1);
 digitalWrite(5, 1);
 digitalWrite(6, 0);
 digitalWrite(7, 0);
 digitalWrite(8, 1);
 delay(1000);
 // write '2'
 digitalWrite(2, 1);
 digitalWrite(3, 1);
 digitalWrite(4, 0);
 digitalWrite(5, 1);
 digitalWrite(6, 1);
 digitalWrite(7, 0);
 digitalWrite(8, 1);
 delay(1000);
 // write '1'
 digitalWrite(2, 0);
 digitalWrite(3, 1);
 digitalWrite(4, 1);
 digitalWrite(5, 0);
 digitalWrite(6, 0);
 digitalWrite(7, 0);
 digitalWrite(8, 0);
 delay(1000);
 // write '0'
 digitalWrite(2, 1);
 digitalWrite(3, 1);
 digitalWrite(4, 1);
 digitalWrite(5, 1);
 digitalWrite(6, 1);
 digitalWrite(7, 1);
 digitalWrite(8, 0);
 delay(4000);
}



I HOPE YOU LIKE MY PROJECT? PLEASE SHARE AND SUBSCRIBE TO MY YOUTUBE CHANNEL ON https://www.youtube.com/user/gemtechtv1
LIKE MY FACEBOOK PAGE here
Previous
Next Post »
3IG