[go: up one dir, main page]

0% found this document useful (0 votes)
19 views29 pages

3rd Matrix

Uploaded by

Shane Min
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views29 pages

3rd Matrix

Uploaded by

Shane Min
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 29

Seven-Segment LED Displays

• Displays that are perfect for


displaying numbers
• used in digital alarm clocks,
speedometers, and other numeric
displays
• Each module in a seven-segment
LED display consists of eight LEDs
• The display’s LEDs are labeled A to G
and DP (for the decimal point).
Seven-Segment LED Displays
Seven-Segment LED Displays
• Common Anode 7 Segment Display:
• All the Negative terminals (Anode) of all the 8 LEDs are
connected together. All the positive terminals are left
alone.
• Common Cathode 7 Segment Display:
• All the positive terminals (Cathode) of all the 8 LEDs are
connected together. All the negative thermals are left
alone.
Seven-Segment LED Displays

Common Anode Common Cathode


Configuration Configuration
Common
Cathode
int segment_a = 7; void setup()
{
int segment_b = 6; pinMode(segment_a,OUTPUT);
pinMode(segment_b,OUTPUT);
int segment_c = 5; pinMode(segment_c,OUTPUT);
int segment_d = 4; pinMode(segment_d,OUTPUT);
pinMode(segment_e,OUTPUT);
int segment_e = 3; pinMode(segment_f,OUTPUT);
pinMode(segment_g,OUTPUT);
int segment_f = 2; pinMode(segment_dp,OUTPUT);
int segment_g = 1; }

int segment_dp =
0;
case 3:

case 1: digitalWrite(segment_a,HIGH);
digitalWrite(segment_a,LOW); digitalWrite(segment_b,HIGH);
void loop() { digitalWrite(segment_b,HIGH);
digitalWrite(segment_c,HIGH);
digitalWrite(segment_c,HIGH);
digitalWrite(segment_d,HIGH);
for (int i = 0; i < 10; i++) digitalWrite(segment_d,LOW);
{ // make count 0 - 9 digitalWrite(segment_e,LOW);
digitalWrite(segment_e,LOW);
switch(i) digitalWrite(segment_f,LOW);
digitalWrite(segment_f,LOW);
{ digitalWrite(segment_g,HIGH);
digitalWrite(segment_g,LOW);
case 0: digitalWrite(segment_dp,LOW);
digitalWrite(segment_dp,LOW);
digitalWrite(segment_a,HIGH); break;
digitalWrite(segment_b,HIGH);
break;
digitalWrite(segment_c,HIGH); case 2:
case 4:
digitalWrite(segment_d,HIGH); digitalWrite(segment_a,HIGH);
digitalWrite(segment_a,LOW);
digitalWrite(segment_e,HIGH); digitalWrite(segment_b,HIGH);
digitalWrite(segment_f,HIGH); digitalWrite(segment_c,LOW); digitalWrite(segment_b,HIGH);
digitalWrite(segment_g,LOW); digitalWrite(segment_d,HIGH); digitalWrite(segment_c,HIGH);
digitalWrite(segment_dp,LOW) digitalWrite(segment_e,HIGH); digitalWrite(segment_d,LOW);
; digitalWrite(segment_e,LOW);
digitalWrite(segment_f,LOW);
break; digitalWrite(segment_f,HIGH);
digitalWrite(segment_g,HIGH);
digitalWrite(segment_dp,LOW); digitalWrite(segment_g,HIGH);
break; digitalWrite(segment_dp,LOW);
break;
case 5: case 7: case 9:
digitalWrite(segment_a,HIGH);
digitalWrite(segment_a,HIGH);
digitalWrite(segment_b,LOW); digitalWrite(segment_a,HIGH);
digitalWrite(segment_c,HIGH); digitalWrite(segment_b,HIGH); digitalWrite(segment_b,HIGH);
digitalWrite(segment_d,HIGH); digitalWrite(segment_c,HIGH); digitalWrite(segment_c,HIGH);
digitalWrite(segment_e,LOW); digitalWrite(segment_d,LOW); digitalWrite(segment_d,HIGH);
digitalWrite(segment_f,HIGH); digitalWrite(segment_e,LOW); digitalWrite(segment_e,LOW);
digitalWrite(segment_g,HIGH);
digitalWrite(segment_f,LOW); digitalWrite(segment_f,HIGH);
digitalWrite(segment_dp,LOW);
digitalWrite(segment_g,LOW); digitalWrite(segment_g,HIGH);
break;
digitalWrite(segment_dp,LOW);
digitalWrite(segment_dp,LOW);
case 6: break;
break;
digitalWrite(segment_a,HIGH);
}
digitalWrite(segment_b,LOW);
digitalWrite(segment_c,HIGH); case 8: delay(1000);
digitalWrite(segment_d,HIGH); digitalWrite(segment_a,HIGH); }
digitalWrite(segment_e,HIGH); digitalWrite(segment_b,HIGH); }
digitalWrite(segment_f,HIGH); digitalWrite(segment_c,HIGH);
digitalWrite(segment_g,HIGH); digitalWrite(segment_d,HIGH);
digitalWrite(segment_dp,LOW); digitalWrite(segment_e,HIGH);
break; digitalWrite(segment_f,HIGH);
digitalWrite(segment_g,HIGH);
digitalWrite(segment_dp,LOW);
break;
Common Anode
int a = 13; digitalWrite(a, digitalWrite(a, LOW);
int b = 12; LOW); digitalWrite(b, digitalWrite(a, LOW );
int c = 11; digitalWrite(b, HIGH); digitalWrite(b, LOW);
int d = 10; LOW); digitalWrite(c, digitalWrite(c, LOW);
int e = 9; digitalWrite(c, LOW); digitalWrite(d, LOW);
int f = 8; HIGH); digitalWrite(d, digitalWrite(e, LOW);
int g = 7; digitalWrite(d, LOW); //Generating 8
void setup() { LOW); digitalWrite(e, digitalWrite(f, LOW);
digitalWrite(e, HIGH); digitalWrite(g, LOW);
pinMode(a, OUTPUT); LOW); digitalWrite(f, delay(1000); // wait for a
digitalWrite(f, LOW); second
pinMode(b, OUTPUT); HIGH); digitalWrite(g, digitalWrite(a, LOW);
digitalWrite(g, LOW); digitalWrite(b, LOW);
pinMode(c, OUTPUT); LOW); delay(1000); digitalWrite(c, LOW);
pinMode(d, OUTPUT); delay(1000); digitalWrite(d, HIGH);
digitalWrite(a, digitalWrite(e, HIGH);
pinMode(e, OUTPUT); digitalWrite(a, LOW); //Generating 9
LOW); digitalWrite(b, digitalWrite(f, LOW);
pinMode(f, OUTPUT); digitalWrite(b, HIGH); digitalWrite(g, LOW);
pinMode(g, LOW); digitalWrite(c, delay(1000); // wait for a
OUTPUT);} digitalWrite(c, LOW); second
void loop() { LOW); digitalWrite(d,
digitalWrite(a, digitalWrite(d, LOW);
HIGH); LOW); digitalWrite(e, LOW);
digitalWrite(e, digitalWrite(f,
LED MATRIX
• LED matrix module consists of
several rows and columns of
LEDs that you can control
individually or in groups.
• The pins on the LED matrix are
numbered clockwise, with pin 8
at the bottom left and pin 16 at
the top right.
void drawScreen(byte buffer2[]){
#define ROW_1 2 void loop() {
#define ROW_2 3
const byte rows[] = { for (byte i = 0; i < 8; i++) {
ROW_1, ROW_2, ROW_3, delay(5);
#define ROW_3 4 setColumns(buffer2[i]);
#define ROW_4 5
ROW_4, ROW_5, ROW_6, timeCount += 1;
ROW_7, ROW_8 digitalWrite(rows[i], HIGH);
#define ROW_5 6 if(timeCount < 20) {
#define ROW_6 7
}; delay(2);
byte star1[] =
drawScreen(star1);
#define ROW_7 8 digitalWrite(rows[i], LOW);
#define ROW_8 9 {B00000110,B11000010,B1010 } else if (timeCount < 80) {
0100,B00011000,B00011000,B0 }
0100101,B01000011,B0110000 drawScreen(star2);
#define COL_1 10 }
0}; } else if (timeCount < 100) {
#define COL_2 11
byte star2[] = void setColumns(byte b) {
#define COL_3 12
drawScreen(star3);
{B00110000,B00100000,B0010 digitalWrite(COL_1, (~b >> 0) &
#define COL_4 13 0111,B00011001,B10011000,B1 } else if (timeCount < 120) {
0x01); // Get the 1st bit: 10000000
#define COL_5 A0 1100100,B00000100,B0000110 drawScreen(star1);
#define COL_6 A1 0}; digitalWrite(COL_2, (~b >> 1) &
} else if (timeCount < 140) { 0x01); // Get the 2nd bit: 01000000
#define COL_7 A2 byte star3[] =
#define COL_8 A3 {B00000110,B10001000,B1001 drawScreen(star2); digitalWrite(COL_3, (~b >> 2) &
0000,B01011100,B00111010,B0 0x01); // Get the 3rd bit: 00100000
0001001,B00010001,B0110000
} else if (timeCount < 160) {
0}; drawScreen(star3); digitalWrite(COL_4, (~b >> 3) &
float timeCount = 0; } else { 0x01); // Get the 4th bit: 00010000
void setup() { // back to the start digitalWrite(COL_5, (~b >> 4) &
Serial.begin(9600); 0x01); // Get the 5th bit: 00001000
timeCount = 0;
digitalWrite(COL_6, (~b >> 5) &
} 0x01); // Get the 6th bit: 00000100
for (byte i = 2; i <= 13; i++)
pinMode(i, OUTPUT); } digitalWrite(COL_7, (~b >> 6) &
pinMode(A0, OUTPUT); 0x01); // Get the 7th bit: 00000010
pinMode(A1, OUTPUT); digitalWrite(COL_8, (~b >> 7) &
pinMode(A2, OUTPUT); 0x01); // Get the 8th bit: 00000001
pinMode(A3, OUTPUT); }
}
int one = 2;

void setup()
{
pinMode(one, OUTPUT);
}
void loop()
{
digitalWrite(one, HIGH);
}
const int row[8] = { 2, 7, 19, 5, 13, 18, 12,
16}; void readSensors() {
const int col[8] = { 6, 11, 10, 3, 17, 4, 8, 9}; pixels[x][y] = HIGH;
int pixels[8][8]; x = 7 - map(analogRead(A0), 0, 1023, 0, 7);
int x = 5; y = map(analogRead(A1), 0, 1023, 0, 7);
int y = 5; pixels[x][y] = LOW;}void refreshScreen() {
void setup() { for (int thisRow = 0; thisRow < 8; thisRow++) {
for (int thisPin = 0; thisPin < 8; thisPin++) { digitalWrite(row[thisRow], HIGH);
pinMode(col[thisPin], OUTPUT); for (int thisCol = 0; thisCol < 8; thisCol++) {
pinMode(row[thisPin], OUTPUT); int thisPixel = pixels[thisRow][thisCol];
digitalWrite(col[thisPin], HIGH); } digitalWrite(col[thisCol], thisPixel);
for (int x = 0; x < 8; x++) { if (thisPixel == LOW) {
for (int y = 0; y < 8; y++) { digitalWrite(col[thisCol], HIGH); } }
pixels[x][y] = HIGH; digitalWrite(row[thisRow], LOW); }}
} }}
void loop() {
readSensors();
refreshScreen();
}
4-Digit display
• To create a 4-digit display, four individual 7-segment
displays are usually connected, with each display
representing a single digit. To reduce the number of pins
required for a 4-digit LED display, we multiplex the pins
of each LED display block with the others. As a result,
each LED block’s segment pin is connected to all the
others LED block’s corresponding segment.
Pin out
//1
digitalWrite(pinA, LOW);
digitalWrite(pinB, LOW);
THE CODE void loop() {
digitalWrite(D1, HIGH);
digitalWrite(pinC, LOW);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, LOW);
digitalWrite(D2, LOW);
digitalWrite(pinF, LOW);
digitalWrite(D3, LOW); digitalWrite(pinG, LOW);
int pinA = 2; digitalWrite(D4, LOW);
void setup() { delay(1000);
int pinB = 3; pinMode(pinA, //0 digitalWrite(D1, LOW);
digitalWrite(pinA, LOW); digitalWrite(D2, LOW);
int pinC = 4; OUTPUT); digitalWrite(pinB, HIGH); digitalWrite(D3, HIGH);
pinMode(pinB,
int pinD = 5; OUTPUT); digitalWrite(pinC, LOW); digitalWrite(D4, LOW);
digitalWrite(pinD, LOW); //2
int pinE = 6; pinMode(pinC, digitalWrite(pinA, HIGH);
OUTPUT); digitalWrite(pinE, HIGH);
digitalWrite(pinB, HIGH);
int pinF = 7; pinMode(pinD, digitalWrite(pinF, LOW); digitalWrite(pinC, LOW);
int pinG = 8; OUTPUT); digitalWrite(pinG, LOW); digitalWrite(pinD, HIGH);
delay(1000); digitalWrite(pinE, LOW);
int D1 = 9; pinMode(pinE, digitalWrite(D1, LOW); digitalWrite(pinF, HIGH);
OUTPUT);
int D2 = 10; pinMode(pinF, digitalWrite(D2, HIGH); digitalWrite(pinG, LOW);
digitalWrite(D3, LOW); delay(1000);
int D3 = 11; OUTPUT); digitalWrite(D4, LOW); digitalWrite(D1, LOW);
pinMode(pinG, digitalWrite(D2, LOW);
int D4 = 12; OUTPUT); digitalWrite(D3, LOW);
pinMode(D1, OUTPUT); digitalWrite(D4, HIGH);
pinMode(D2, OUTPUT);
//3 //5 //7 //9
digitalWrite(pinA, LOW); digitalWrite(pinA, LOW); digitalWrite(pinA, LOW); digitalWrite(pinA, LOW);
digitalWrite(pinB, HIGH); digitalWrite(pinB, HIGH); digitalWrite(pinB, LOW); digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW); digitalWrite(pinC, LOW); digitalWrite(pinC, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, LOW); digitalWrite(pinD, HIGH);digitalWrite(pinD, HIGH);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, HIGH);
digitalWrite(pinE, LOW); digitalWrite(pinE, HIGH); digitalWrite(pinE, HIGH);
digitalWrite(pinF, LOW);
digitalWrite(pinF, LOW); digitalWrite(pinF, HIGH); digitalWrite(pinF, LOW);
digitalWrite(pinG, LOW);
digitalWrite(pinG, HIGH); digitalWrite(pinG, HIGH); digitalWrite(pinG, LOW);
delay(1000);
delay(1000); delay(1000); delay(1000);
//6
//4 //8 }
digitalWrite(pinA, LOW);
digitalWrite(pinA, HIGH); digitalWrite(pinA, LOW);
digitalWrite(pinB, HIGH);
digitalWrite(pinB, LOW); digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinC, LOW); digitalWrite(pinC, LOW);
digitalWrite(pinD, LOW);
digitalWrite(pinD, HIGH); digitalWrite(pinD, LOW);
digitalWrite(pinE, LOW);
digitalWrite(pinE, HIGH); digitalWrite(pinE, LOW);
digitalWrite(pinF, LOW);
digitalWrite(pinF, LOW); digitalWrite(pinF, LOW);
digitalWrite(pinG, LOW);
digitalWrite(pinG, LOW); digitalWrite(pinG, LOW);

You might also like