3rd Matrix
3rd Matrix
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);