Step 4Soldering The Matrix
The first one is the one I used and this way takes a lot of time and effort but the end result is very nice and pretty.You need to connect all the positive leads of the LEDs in columns and the negative lead in rows.
Now you do this by taking the positive lead of the first LED and bend it down to the other LEDs, solder the pins which touch each other, from here take the last lead that you soldered and bend it again down and repeat till you have all the positive leads connected in the column. snip the leads that you didn't use.
Now the tricky part is connecting the negative pins in a row because you can't bend them and solder like you did with the positive leads. Now I used little jumpers from solid core wire and connect them like you can see in the picture below( this takes lots of time and work).
The second way is to start the same way as in the first way but the only difference is in connecting the negative pins. This method saves lots of time and is a lot simpler.
The trick is to put some tape or another thing on the columns connections to isolate them from the negative pins and if you do that you can bend the negative leads too and connect them like you did with the positive ones.
Without the shift register:
Via a resistor you connect each column to the arduino(pins 0-7).
The reset pin of the 4017 goes to pin 8 on the arduino and the clock pin goes to pin 9 on the arduino.
With the shift register:
Now if you connect every thing like shown in the schematic you will need to connect the control pins like so:
The shift register:
Data Pin = arduino pin9
Latch Pin = arduino pin 11
Clock Pin = arduino pin 10
The 4017:
clock pin = arduino pin 13
reset pin = arduino pin12
| « Previous Step | Download PDFView All Steps | Next Step » |














































int DataPin = 9;
int LatchPin = 11;
int ClockPin = 10;
int clock = 13;
int Reset = 12;
//x,y for the loop
int x;
int y;
// here the definion of all the letter(big and small) and numbers
#define A {B01111110,B01000010,B01000010,B01000010,B01111110,B01000010,B01000010,B01000010} //done
#define B {B01111000,B01000100,B01000100,B01000100,B01111000,B01000100,B01000100,B01111000} //done
#define C {B00111000,B01000100,B01000010,B01000000,B01000000,B01000010,B01000100,B00111000} //done
#define D {B01111000,B01000100,B01000010,B01000010,B01000010,B01000010,B01000100,B01111000} //done
#define E {B01111110,B01000000,B01000000,B01000000,B01111100,B01000000,B01000000,B01111110} //done
#define F {B01111110,B01000000,B01000000,B01111000,B01000000,B01000000,B01000000,B01000000} //done
#define G {B00111100,B01000010,B01000000,B01000000,B01000110,B01000010,B01000100,B00111000} //done
#define H {B01000010,B01000010,B01000010,B01000010,B01111110,B01000010,B01000010,B01000010} //done
#define I {B01111110,B00011000,B00011000,B00011000,B00011000,B00011000,B00011000,B01111110} //done
#define J {B01111110,B00001000,B00001000,B00001000,B00001000,B01001000,B01001000,B00110000} //done
#define K {B01000100,B01001000,B01010000,B01100000,B01010000,B01001000,B01000100,B01000010} //done
#define L {B00100000,B00100000,B00100000,B00100000,B00100000,B00100000,B00100000,B00111110} //done
#define M {B01000010,B01100110,B01011010,B01011010,B01000010,B01000010,B01000010,B01000010} //done
#define N {B00000000,B01000010,B01100010,B01010010,B01001010,B01001010,B01001010,B01000110}
#define O {B00000000,B00111100,B01000010,B01000010,B01000010,B01000010,B01000010,B01000010}
#define P {B00000000,B00111100,B01000010,B01000010,B01000010,B01111100,B01000000,B01000000}
#define Q {B00000000,B00111100,B01000010,B01000010,B01000010,B01000010,B01000010,B01000110}
#define R {B01111000,B01000100,B01000100,B01000100,B01111000,B01010000,B01001000,B01001000} //done
#define S {B00000000,B00111100,B01000010,B01000000,B01000000,B00111100,B00000010,B01000010}
#define T {B01111110,B00011000,B00011000,B00011000,B00011000,B00011000,B00011000,B00011000} //done
#define U {B01000010,B01000010,B01000010,B01000010,B01000010,B01000010,B00100100,B00011000} //done
#define V {B00000000,B01000010,B01000010,B01000010,B01000010,B01000010,B01000010,B00100100}
#define W {B00000000,B10000010,B10000010,B10000010,B10000010,B10010010,B10010010,B10101010}
#define X {B00000000,B01000010,B01000010,B00100100,B00011000,B00011000,B00100100,B01000010}
#define Y {B00000000,B10000010,B01000100,B00101000,B00010000,B00010000,B00010000,B00010000}
#define Z {B00000000,B01111110,B00000010,B00000100,B00001000,B00010000,B00100000,B01000000}
#define lit_a {B00000000,B01111110,B00000010,B01111110,B01000010,B01000010,B01111110,B00000000} //done
#define lit_b {B00000000,B00100000,B00100000,B00100000,B00111100,B00100100,B00111100,B00000000} //done
#define lit_c {B00000000,B00000000,B00000000,B00000000,B00111100,B01000000,B01000000,B01000000}
#define lit_d {B00000000,B00000100,B00000100,B00000100,B00111100,B00100100,B00111100,B00000000} //done
#define lit_e {B00000000,B00000000,B00000000,B00111000,B01000100,B01000100,B01111000,B01000000}
#define lit_f {B00000000,B00011000,B00100100,B00100000,B00100000,B01110000,B00100000,B00100000}
#define lit_g {B00000000,B00011100,B00100010,B00100010,B00011110,B00000010,B00000010,B00010010}
#define lit_h {B00000000,B01000000,B01000000,B01000000,B01000000,B01111000,B01000100,B01000100}
#define lit_i {B00000000,B00000000,B00010000,B00000000,B00010000,B00010000,B00010000,B00010000}
#define lit_j {B00000000,B00000000,B00010000,B00000000,B00010000,B00010000,B00010000,B01010000}
#define lit_k {B00000000,B00000000,B00000000,B01001000,B01010000,B01100000,B01100000,B01010000}
#define lit_l {B00000000,B01000000,B01000000,B01000000,B01000000,B01000000,B01000000,B01000000}
#define lit_m {B00000000,B00000000,B00000000,B00110100,B01001010,B01001010,B01001010,B01001010}
#define lit_n {B00000000,B01000000,B01111100,B01000100,B01000100,B01000100,B01000100,B00000000} //done
#define lit_o {B00000000,B00000000,B00000000,B00000000,B00011100,B00100010,B00100010,B00100010}
#define lit_p {B00000000,B00000000,B00000000,B00011100,B00100010,B00100010,B00111100,B00100000}
#define lit_q {B00000000,B00000000,B00000000,B00111000,B01000100,B01000100,B00111100,B00000100}
#define lit_r {B00000000,B00000000,B00000000,B00111000,B01000000,B01000000,B01000000,B01000000}
#define lit_s {B00000000,B00000000,B00111000,B01000100,B01000000,B00111000,B00000100,B01000100}
#define lit_t {B00000000,B00100000,B00100000,B00100000,B01111000,B00100000,B00100000,B00100010}
#define lit_u {B00000000,B00000000,B00000000,B00000000,B01000100,B01000100,B01000100,B01000100}
#define lit_v {B00000000,B00000000,B00000000,B01000100,B01000100,B01000100,B01000100,B00101000}
#define lit_w {B00000000,B00000000,B00000000,B00000000,B01000100,B01000100,B01010100,B01010100}
#define lit_x {B00000000,B00000000,B00000000,B00000000,B00000000,B00100100,B00011000,B00011000}
#define lit_y {B00000000,B00000000,B01000100,B01000100,B00111100,B00000100,B00000100,B00000100}
#define lit_z {B00000000,B00000000,B00000000,B00000000,B01111100,B00001000,B00010000,B00100000}
#define space {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000}
#define num_0 {B00000000,B00111100,B01000110,B01001010,B01001010,B01001010,B01010010,B01100010}
#define num_1 {B00000000,B00001000,B00011000,B00001000,B00001000,B00001000,B00001000,B00001000}
#define num_2 {B00000000,B00111100,B01000010,B00000100,B00001000,B00010000,B00100000,B01000000}
#define num_3 {B00000000,B01111110,B00000010,B00000010,B00011100,B00000010,B00000010,B01000010}
#define num_4 {B00000000,B00000100,B00001100,B00010100,B00100100,B01000100,B01111110,B00000100}
#define num_5 {B00000000,B01111110,B01000000,B01000000,B00111100,B00000010,B00000010,B00000010}
#define num_6 {B00000000,B00111100,B01000000,B01000000,B01111100,B01000010,B01000010,B01000010}
#define num_7 {B00000000,B01111110,B00000010,B00000100,B00001000,B00010000,B00010000,B00010000}
#define num_8 {B00000000,B00111100,B01000010,B01000010,B00111100,B01000010,B01000010,B01000010}
#define num_9 {B00000000,B00111100,B01000010,B01000010,B01000010,B00111110,B00000010,B00000010}
#define times {B00000000,B00000000,B01000010,B00100100,B00011000,B00011000,B00100100,B01000010}
const int numPatterns = 17;//this is the number of patterns you want to display
byte patterns[numPatterns][8]={H, A, ,P, P, Y };// the patterns order
void setup(){
pinMode(DataPin,OUTPUT);
pinMode(ClockPin,OUTPUT);
pinMode(LatchPin,OUTPUT);
//simple stuff here
pinMode(clock,OUTPUT);
pinMode(Reset,OUTPUT);
//reseting the 4017 IC, you have to do this
digitalWrite(Reset,HIGH);
delayMicroseconds(5);
digitalWrite(Reset,LOW);
}
void display_pattern(int loops)//int loop acts like a delay, it take 8 mSecands to scan all of the rows so int loops = 15 is a good time for it
{
for(x=0;x for (int z=0;z<8;z++){ //scrolls one bite at a time
for(int t=0;t for(y=0;y<10;y++){// loops over the array of bytes
byte temp = patterns[x][y];
byte temp_2=patterns[x+1][y];
digitalWrite(LatchPin, 0);
shiftOut(DataPin, ClockPin,MSBFIRST,((temp<>7-z)));//writes digital outputs, Z is for how much bites it need to scroll
digitalWrite(LatchPin, 1);
delayMicroseconds(800);
digitalWrite(LatchPin, 0);
shiftOut(DataPin, ClockPin,MSBFIRST,0);
digitalWrite(LatchPin, 1);
digitalWrite(clock,HIGH); digitalWrite(clock,LOW);
}
}
}
}
}
void loop(){
display_pattern(15);// calls for the display_pattern function and says that int loop = 15(if you do more loop the pattern whould scrrol slower).
}
So you can say they are all connected together to the same ground.
Cheers,
Joe
Common ground is the GND pin on the arduino. So you connect everything there.
Joe