0% found this document useful (0 votes)
85 views5 pages

Introduction To Arduino Microcontroller: Experiment 4: Leds and 74Hc595 Shift Register

This document describes an experiment using an Arduino microcontroller and 74HC595 shift register to control LEDs. The circuit connects the Arduino to the shift register and LEDs. The code uses three pins on the Arduino - data, clock, and latch - to serially shift bits out to the shift register. This allows controlling 256 LEDs using only 3 pins. The code loops through the numbers 0-255, sending each value to the shift register to light up the corresponding LED pattern. It also includes a function to individually control each LED.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
85 views5 pages

Introduction To Arduino Microcontroller: Experiment 4: Leds and 74Hc595 Shift Register

This document describes an experiment using an Arduino microcontroller and 74HC595 shift register to control LEDs. The circuit connects the Arduino to the shift register and LEDs. The code uses three pins on the Arduino - data, clock, and latch - to serially shift bits out to the shift register. This allows controlling 256 LEDs using only 3 pins. The code loops through the numbers 0-255, sending each value to the shift register to light up the corresponding LED pattern. It also includes a function to individually control each LED.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Introduction to Arduino Microcontroller

Experiment 4: LEDs and 74HC595 Shift Register

The Circuit

Schematic Diagram

8/16/2018 1
Introduction to Arduino Microcontroller
The components

8/16/2018 2
Introduction to Arduino Microcontroller
The Code

//The 74HC595 uses a serial communication link which has three pins
int data = 2;
int clock = 3;
int latch = 4;
Declaration //Used for single LED manipulation
int ledState = 0;
const int ON = HIGH;
const int OFF = LOW;
void setup()
{
pinMode(data, OUTPUT);
pinMode(clock, OUTPUT);
pinMode(latch, OUTPUT);
Void Setup
}

void loop()
{
int delayTime = 100; //the number of milliseconds to delay between LED updates

Void Loop for(int i = 0; i < 256; i++){


updateLEDs(i);
delay(delayTime);
}
}

8/16/2018 3
//updateLEDs() - sends the LED states set in ledStates to the 74HC595 sequence void updateLEDsLong(int value){
void updateLEDs(int value){ digitalWrite(latch, LOW); //Pulls the chips latch low
digitalWrite(latch, LOW); //Pulls the chips latch low for(int i = 0; i < 8; i++){ //Will repeat 8 times (once for each bit)
shiftOut(data, clock, MSBFIRST, value); //Shifts out the 8 bits to the shift register int bit = value & B10000000; //We use a "bitmask" to select only the eighth bit in our number (the one we are addressing this ti
digitalWrite(latch, HIGH); //Pulls the latch high displaying the data me through
} value = value << 1; //we move our number up one bit value so next time bit 7 will be bit 8 and we will do our math on it
if(bit == 128){digitalWrite(data, HIGH);} //if bit 8 is set then set our data pin high
else{digitalWrite(data, LOW);} //if bit 8 is unset then set the data pin low
digitalWrite(clock, HIGH); //the next three lines pulse the clock pin
delay(1);
digitalWrite(clock, LOW);
/*
}
* changeLED(int led, int state) - changes an individual LED
digitalWrite(latch, HIGH); //pulls the latch high shifting our data into being displayed
* LEDs are 0 to 7 and state is either 0 - OFF or 1 - ON
}
*/
void changeLED(int led, int state){
ledState = ledState & masks[led]; //clears ledState of the bit we are addressing
if(state == ON){ledState = ledState | bits[led];} //if the bit is on we will add it to le
dState
updateLEDs(ledState); //send the new LED state to the shift register
}

8/16/2018 4
8/16/2018 DEPARTMENT OF COMPUTER AND COMMUNICATIONS SYSTEMS ENGINEERING , UPM 5

You might also like