For eBay Purchase Click Here For Led Labs For Hobby Or Education

Led Labs
Led Labs
  • Home
  • Assembly AND PARTS LIST
  • PROJECTS
  • BUY
  • EMF, MONOSTABLE, COUNTER
  • PIC BASIC EXAMPLE PROGRAM
  • LOGIC GATE EXPERIMENT
  • LDR AND VCO VIDEO
  • LAB VIDEOS
  • MORE
    • ARDUINO
    • CONNECTION TO WS2811 LEDS
    • 24 BIT SHIFT REG CODE
    • 24 BIT SHIFT REG CODE (2)
    • USING SHIFT REGISTERS
    • DRIVING A STEPPER MOTOR
    • CASCADED DOT MATRIX DISP
    • LED LABS SILK SCREEN
    • SOME EXPLAINED SCHEMATICS
    • LOGIC TRUTH TABLES
    • LEDLABS VIDEO
    • LED LAB & GOLDEN SPIRAL
    • SIGNAL DEGRADATION
    • TRANSISTOR OUTPUT TEST
    • LOGIC GATES
    • CHOOSING POTENTIOMETERS
    • LOTTERY GENERATOR IDEA
  • More
    • Home
    • Assembly AND PARTS LIST
    • PROJECTS
    • BUY
    • EMF, MONOSTABLE, COUNTER
    • PIC BASIC EXAMPLE PROGRAM
    • LOGIC GATE EXPERIMENT
    • LDR AND VCO VIDEO
    • LAB VIDEOS
    • MORE
      • ARDUINO
      • CONNECTION TO WS2811 LEDS
      • 24 BIT SHIFT REG CODE
      • 24 BIT SHIFT REG CODE (2)
      • USING SHIFT REGISTERS
      • DRIVING A STEPPER MOTOR
      • CASCADED DOT MATRIX DISP
      • LED LABS SILK SCREEN
      • SOME EXPLAINED SCHEMATICS
      • LOGIC TRUTH TABLES
      • LEDLABS VIDEO
      • LED LAB & GOLDEN SPIRAL
      • SIGNAL DEGRADATION
      • TRANSISTOR OUTPUT TEST
      • LOGIC GATES
      • CHOOSING POTENTIOMETERS
      • LOTTERY GENERATOR IDEA
  • Home
  • Assembly AND PARTS LIST
  • PROJECTS
  • BUY
  • EMF, MONOSTABLE, COUNTER
  • PIC BASIC EXAMPLE PROGRAM
  • LOGIC GATE EXPERIMENT
  • LDR AND VCO VIDEO
  • LAB VIDEOS
  • MORE
    • ARDUINO
    • CONNECTION TO WS2811 LEDS
    • 24 BIT SHIFT REG CODE
    • 24 BIT SHIFT REG CODE (2)
    • USING SHIFT REGISTERS
    • DRIVING A STEPPER MOTOR
    • CASCADED DOT MATRIX DISP
    • LED LABS SILK SCREEN
    • SOME EXPLAINED SCHEMATICS
    • LOGIC TRUTH TABLES
    • LEDLABS VIDEO
    • LED LAB & GOLDEN SPIRAL
    • SIGNAL DEGRADATION
    • TRANSISTOR OUTPUT TEST
    • LOGIC GATES
    • CHOOSING POTENTIOMETERS
    • LOTTERY GENERATOR IDEA

24 BIT SHIFT REGISTER ARDUINO CODE

COPY AND PASTE CODE TO ARDUINO ENVIRONMENT

 

//this is a 24 bit shift register routine for the led labs led propagatiom fountain.
// download this code to atmega328p on ledlabs using ardunio uno board with the atmega removed from uno board,
// connect rx,tx,rst,and 0v,to ledlabs board to program. or program in uno board then remove chip from uno board
// and install in led labs.
//and connect pins 9,10,11 to input of shift registers
//and it cyles through various displays.

//The latch pin is the same as the ce (chip enable) strobe pin on shift registers//

//If any trouble compiling this code omit this and the above lines, and copy and paste everything below into arduino //environment. Also try spi pins , clock 13,   11 data in, and 10, latch/strobe.

//Arduino 24 bit shift register
//24 BIT Shift Register, using Arduino source code

int dataPin = 9; //Define which pins will be used for the Shift Register
int latchPin = 10;
int clockPin = 11;
int counter = 0;

int seq1[14] = {1,2,4,8,16,32,64,128,64,32,16,8,4,2}; //The array for storing the // byte #1 value
int seq2[14] = {128,64,32,16,8,4,2,1,2,4,8,16,32,64}; //The array for storing the // byte #2 value

int seq3[17] = {1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65535};
int seq4[14] = {128,64,32,16,8,4,2,1,2,4,8,16,32,64}; //

int seq5[17] = {3,12,48,142,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65535}; //The array for storing the// byte
int seq6[14] = {3,12,48,142,8,4,2,1,2,4,8,16,32,64}; //The array for storing the


int seq7[8] = {1,2,4,8,16,32,64,128}; //The array for storing the // byte #1 value
int seq8[8] = {128,64,32,16,8,4,2,1}; //The array for storing the // byte #2 value

int seq9[8] = {1,2,4,8,16,32,64,128}; //The array for storing the // byte #1 value
int seq10[8] = {1,2,4,8,16,32,64,128}; //The array for storing the // byte #1 value
int seq11[8] = {128,64,32,16,8,4,2,1}; //The array for storing the // byte #2 value
int seq12[8] = {128,64,32,16,8,4,2,1}; //The array for storing the // byte #2 value
int seq13[8] = {128,64,32,16,8,4,2,1}; //The array for storing the // byte #2 value
int seq14[8] = {128,64,32,16,8,4,2,1}; //The array for storing the // byte #2 value
int seq15[8] = {128,64,32,16,8,4,2,1}; //The array for storing the // byte #2 value

void setup()
{
pinMode(dataPin, OUTPUT); //Configure each IO Pin
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
}

void loop()
{
for (counter = 0; counter <10; counter++)
{

for (int x = 0; x < 14; x++) //Array Index
{
digitalWrite(latchPin, LOW); //Pull latch LOW to start sending data
shiftOut(dataPin, clockPin, MSBFIRST, seq1[x]); //Send the data byte 1
shiftOut(dataPin, clockPin, MSBFIRST, seq2[x]); //Send the data byte 2
digitalWrite(latchPin, HIGH); //Pull latch HIGH to stop sending data
delay(65);
}

}

for (counter = 0; counter <10; counter++)
{
for (int x = 0; x < 11; x++) //Array Index
{
digitalWrite(latchPin, LOW); //Pull latch LOW to start sending data
shiftOut(dataPin, clockPin, MSBFIRST, seq3[x]); //Send the data byte 1
shiftOut(dataPin, clockPin, MSBFIRST, seq4[x]); //Send the data byte 2
digitalWrite(latchPin, HIGH); //Pull latch HIGH to stop sending data
delay(70);
}
}

for (counter = 0; counter <10; counter++)
{
for (int x = 0; x < 14; x++) //Array Index
{
digitalWrite(latchPin, LOW); //Pull latch LOW to start sending data
shiftOut(dataPin, clockPin, MSBFIRST, seq5[x]); //Send the data byte 1
shiftOut(dataPin, clockPin, MSBFIRST, seq6[x]); //Send the data byte 2
digitalWrite(latchPin, HIGH); //Pull latch HIGH to stop sending data
delay(50);
}
}

for (counter = 0; counter <10; counter++)
{
for (int x = 0; x < 8; x++) //Array Index
{
digitalWrite(latchPin, LOW); //Pull latch LOW to start sending data
shiftOut(dataPin, clockPin, MSBFIRST, seq7[x]); //Send the data byte 1
shiftOut(dataPin, clockPin, MSBFIRST, seq8[x]); //Send the data byte 2
digitalWrite(latchPin, HIGH); //Pull latch HIGH to stop sending data
delay(50);
}
}

for (counter = 0; counter <10; counter++)
{
for (int x = 0; x < 8; x++) //Array Index
{
digitalWrite(latchPin, LOW); //Pull latch LOW to start sending data
shiftOut(dataPin, clockPin, MSBFIRST, seq9[x]); //Send the data byte 1

digitalWrite(latchPin, HIGH); //Pull latch HIGH to stop sending data
delay(50);
}
}

for (counter = 0; counter <10; counter++)
{
for (int x = 0; x < 8; x++) //Array Index
{
digitalWrite(latchPin, LOW); //Pull latch LOW to start sending data
shiftOut(dataPin, clockPin, MSBFIRST, seq10[x]); //Send the data byte 1

digitalWrite(latchPin, HIGH); //Pull latch HIGH to stop sending data
delay(25);
}
}

for (counter = 0; counter <10; counter++)
{
for (int x = 0; x < 8; x++) //Array Index
{
digitalWrite(latchPin, LOW); //Pull latch LOW to start sending data

shiftOut(dataPin, clockPin, MSBFIRST, seq11[x]); //Send the data byte 2
digitalWrite(latchPin, HIGH); //Pull latch HIGH to stop sending data
delay(25);
}
}

for (counter = 0; counter <10; counter++)
{
for (int x = 0; x < 8; x++) //Array Index
{
digitalWrite(latchPin, LOW); //Pull latch LOW to start sending data

shiftOut(dataPin, clockPin, MSBFIRST, seq12[x]); //Send the data byte 2
digitalWrite(latchPin, HIGH); //Pull latch HIGH to stop sending data
delay(50);
}
}

for (counter = 0; counter <10; counter++)
{
for (int x = 0; x < 8; x++) //Array Index
{
digitalWrite(latchPin, LOW); //Pull latch LOW to start sending data

shiftOut(dataPin, clockPin, MSBFIRST, seq13[x]); //Send the data byte 2
digitalWrite(latchPin, HIGH); //Pull latch HIGH to stop sending data
delay(75);
}
}

for (counter = 0; counter <10; counter++)
{
for (int x = 0; x < 8; x++) //Array Index
{
digitalWrite(latchPin, LOW); //Pull latch LOW to start sending data

shiftOut(dataPin, clockPin, MSBFIRST, seq14[x]); //Send the data byte 2
digitalWrite(latchPin, HIGH); //Pull latch HIGH to stop sending data
delay(90);
}
}

for (counter = 0; counter <1; counter++)
{
for (int x = 0; x < 8; x++) //Array Index
{
digitalWrite(latchPin, LOW); //Pull latch LOW to start sending data

shiftOut(dataPin, clockPin, MSBFIRST, seq15[x]); //Send the data byte 2
digitalWrite(latchPin, HIGH); //Pull latch HIGH to stop sending data
delay(500);
}
}

}

Copyright © 2025 Led Labs - All Rights Reserved.