• Home
  • pcDuino
  • WiKi
  • Store
  • Distributors
  • Home
  • pcDuino
  • WiKi
  • Store
  • Distributors
HomepcDuinoExperiment of 4 digit segment display
Previous Next

Experiment of 4 digit segment display

Posted by: Yang , December 23, 2013

[vc_row][vc_column width=”1/1″][vc_column_text]We used 1 digit segment display to show 0-9 in previous tutorial, if we want to show more number or letters, we will need to use multi digit segment display. We’re going to use 4 digit in one Common-Anode display to show stopwatch in this experiment.

The inner schematic diagram of the segment display is as following:

four-7-seg-1

Pin definition:

four digit

Pin order: Look from the front side of the segment display, it starts from Pin 1, it goes in a counterclockwise way.

12 – 9 – 8 – 6 — public pin

A-11 B-8 C-4 D-2 E-1 F-10 G-5 DP-3

[/vc_column_text][vc_tour][vc_tab title=”Parts List” tab_id=”1387769429-1-69″][vc_column_text]pcDuino kit x1

4 digit  Common-Anode display x1

220 ohm resistor x8

male to male jumper wire x 18

[/vc_column_text][/vc_tab][vc_tab title=”Wire diagram” tab_id=”1387769429-2-78″][vc_column_text]QQ图片20131115222058-1024x768

Arduino Pin

Segment display Pin

5

6(units)

4

8(tens)

3

9(hundreds)

2

12(thousands)

Arduino Pin

Segment display Pin

6

A(11)

7

B(7)

8

C(4)

9

D(2)

10

E(1)

11

F(10)

12

G(5)

13

DP(3)

[/vc_column_text][/vc_tab][vc_tab title=”Simple Code” tab_id=”1387776844988-2-2″][vc_column_text]All code can be downloaded from here.

Please save “sevseg” from the zip file into /home/ubuntu/Arduino/libraries

After that reopen Arduino IDE.

Main code is as below:

//Written by Dean Reading, 2012.  deanreading@hotmail.com
/*
This example is a centi-second counter to demonstrate the
use of my SevSeg library.
*/
#include "SevSeg.h"
//Create an instance of the object.
SevSeg sevseg;
//Create global variables
unsigned long timer;
int CentSec=0;
void setup() {
//I am using a common anode display, with the digit pins connected
//from 2-5 and the segment pins connected from 6-13
sevseg.Begin(1,2,3,4,5,6,7,8,9,10,11,12,13);
timer=millis();
}
void loop() {
//Produce an output on the display
sevseg.PrintOutput();
//Check if 10ms has elapsed
unsigned long mils=millis();
if (mils-timer>=10) {
timer=mils;
CentSec++;
if (CentSec==10000) { // Reset to 0 after counting for 100 seconds.
CentSec=0;
}
//Update the number to be displayed, with a decimal
//place in the correct position.
sevseg.NewNum(CentSec,(byte) 2);
}
}

[/vc_column_text][/vc_tab][/vc_tour][/vc_column][/vc_row]

Tags: pcDuino, pcDuino Hardware Experiments

Share!
Tweet

Yang

About the author

Leave a Reply Cancel reply

You must be logged in to post a comment.

Category

  • Home
  • pcDuino
  • WiKi
  • Store
  • Distributors