Creative Commons images are CC BY-NC-SA 3.0

1.50

added to your
shopping cart

quantity
In stock 2,328 in stock
1.50 1+ units
1.35 10+ units
1.20 100+ units

Description: Simple shift register IC. Clock in data and latch it to free up IO pins on your micro. 

Check out this tutorial on how to use this product with the 7 Segment LED and Arduino. Thanks Patrick and Mycha!

Documents:

Comments 69 comments

  • Hey guys, I wrote an article for www.bildr.org that explains the shift register with some wicked analogies! It comes with Arduino and AVR example code, too!
    http://bildr.org/2011/02/74hc595/

    • Thanks dude, that article really helped me understand these things. Maybe SFE should do an ‘According to Pete’ on these things??

    • Thank you for the tutorial. Some advice: it really needs proofreading.

    • wow ty for the explination dude, now i think i can make an LED project I’m working on run on an uno instead of having to get a mega for it. Good thing these are only a $1.50. One thing I wonder though, if you had say 8 of these daisy chained (thats what 64 outputs) would that start getting towards the edge of an uno’s power output just running the cheap leds (not the really bright ones)?

      • 30ma (0.03A) max per chanel 64 chanels = 1.92A. The arduino can suply ~0.5A through USB, if you add an external power source you should be good. Caution the internal V reg on the arduino is only rated at 1.5A so you will need either an external reg, or just hook up a battery straight to the things.

      • The Arduino is only responsible for sending the data to the first SR, and clock to all of them. It doesn’t source the current to power all the shift registers; that’s why they have VSS pins. So you should be fine.

    • Wow, That’s amazingly helpful! Thanks!

    • Thank you, that helped me a lot.. it’s exactly what I was looking for, thanks for sharing.

    • I never really looked into shift registers because I didn’t know about RCLK… I always figured there would be some set up “side effects”.
      Thanks for lighting the candle, now I think I love shift registers. lol

  • There is a great tutorial over at arduino.cc that explains how to use these shift registers. Find it here http://www.arduino.cc/en/Tutorial/ShiftOut

  • The name string for this product (“Shift Register 8-Bit - 74HC595”) should probably say “SIPO” or “serial-in parallel-out.”

  • I want to make sure I understand the datasheet correctly:
    Each pin can output up to 35mA, but all together the chip can output up to 70mA?

    • That is correct. If you have two pins on, each one would be able to supply their full amount of 35mA. If you have all the pins on, each one would only be able to supply 8.75mA.

  • Here’s an Arduino code to control 16 leds with 2 chips.<br />
    <br />

    define LEDlatchPin 22 // LEDs Output C595N //<br />

    define LEDclockPin 24 // LEDs Output C595N //<br />

    define LEDdataPin 23 // LEDs Output C595N //<br />

    <br />
    class LEDs<br />
    {<br />
    public:<br />
    LEDs()<br />
    {<br />
    pinMode(LEDlatchPin, OUTPUT);<br />
    pinMode(LEDclockPin, OUTPUT);<br />
    pinMode(LEDdataPin, OUTPUT); <br />
    <br />
    Reset();<br />
    }<br />
    <br />
    void Tick(void)<br />
    {<br />
    digitalWrite(LEDlatchPin, LOW);<br />
    digitalWrite(LEDdataPin, LOW);<br />
    digitalWrite(LEDclockPin, LOW);<br />
    for (int i=15; i>=0; i–) <br />
    {<br />
    digitalWrite(LEDclockPin, LOW);<br />
    if (Value[i]) digitalWrite(LEDdataPin, HIGH); else digitalWrite(LEDdataPin, LOW);<br />
    digitalWrite(LEDclockPin, HIGH);<br />
    digitalWrite(LEDdataPin, LOW);<br />
    }<br />
    digitalWrite(LEDclockPin, LOW);<br />
    digitalWrite(LEDlatchPin, HIGH);<br />
    }<br />
    <br />
    void Reset(void) { memset(Value,false,sizeof(Value)); }<br />
    <br />
    boolean Value[16];<br />
    };

  • Any idea when these will come in stock?

  • I got one of these and it was defective. There was a resistance of 1.5 ohms (yes, I was reading the meter right. It was not megaohms or anything) across the power pins, so it would just cause a ground short.

  • Another tutorial on how to use this with Arduino is here: http://bit.ly/cwzmxN

  • These can be great on breadboard projects because all the outputs are on one side and in order.

  • Nick Poole - Best Shift Registers explanation ever. Well done! Now I understand how to use them…and will buy some!

  • will the register pins on one of these sink current? I have successfully used one to control the segments on common cathode 4-digit display but I’m still using 4 pins on my Arduino to make the digit selection with. I would like to chain two of these shift registers together and use 4 bits from the 2nd register to control the digits. Ultimately, I’d like to try using 3 of them to control 2 4-digit displays for a total of 8 digits (and, yes, I know I could get one chip to do all that, but I’m trying to design projects for my students that will make them have to do some trickier programming, and coming up with “non-standard” hardware solutions is the only way to keep them from just copying code of the Internet).

  • I am wondering m74hc595b1 is same as 74hc595 microprocessor? I cant find what these are difference?

  • This chip (and tutorial) workes great on my UNO. BUT… on my small clone Anarduino (love these…) the output is unpredictable, usually all the LEDs stay lit. The only real difference I can tell is that the Anarduino clone usues a 16MHz resonator rather than 16MHz crystal and 22pF capacitors. Would the use of a resonator cause timing issues that could make the 74HC595 chip not work? -profharris

  • In case anyone was wondering, it appears the 74HC595 makes connections before it breaks them. If you have 0-6 HIGH and you are only changing 7 between HIGH and LOW, 0-6 appear to stay stable. If it isn’t stable then it is a faster break than my teensy can detect, or my wires have enough capacitance to compensate.

    • Correct :) When viewing datasheets for these types of devices, check whether the output is ‘latched’. If it is, you’re good to go. If it isn’t, expect pitfalls :)

  • I bought this and it works great.

    just a technical question, I am using an arduino UNO and have connected the DATA, the Clock, and the Latch all to digital pins (no PMW) is that OK? (it works fine.. but its nice to have a justification) and I have noticed that some tutorials have the clock use a PMW pin others have the data… Kindly enlighten me if possible.

    Thanks :)

  • Is it possible to use one of these to drive a common anode Display module, like the 1.0" Single Digit Alphanumeric Display? If sow, how would you wire up a pair of these to drive that unit? Sorry a little lost on what I should use to avoid having to have a ton of resistors. I plan to multiplex the display to void to much draw. Or does that make sense?

  • Awesome explanation!

  • Was anybody able to get the 7 Segment Pineapple Library written by Quin to work? I tried to trouble-shoot the library and had no success.

  • Is there a higher Volts (9V) version of this IC?

  • Hello everyone, I’m really struggling with getting this shift register to control the 1 amp motor driver https://www.sparkfun.com/products/9457 . I have wired everything according to the bildr tutorials of both components but I keep coming up with the same problem. Anytime I resist the motors movement, the shift register freaks out and sends random signals to the motor controller. I feel like I’ve tried everything. Any ideas? I’d be happy to answer any questions you have about my setup because I’m at a loss. Thanks a lot for your help!

  • Can I connect the output of one into the input of another?

  • Do you see any problems running 300 74HC595 chained together? basically 100 columns of 8 RGB LEDs.

    • If you can deal with the power distribution (100 x 8 x 3 x 10mA = 24A), then no, there’s no specific reason that this shouldn’t work. You’ll want to buffer the SCK and RCK signals every 10 chips or so, as a single logic output can’t drive that many inputs (the limit is called “fanout”).

      Before you commit, consider other solutions such as addressable LED driving chips, either multiple (64) or single LED.

  • “666 in stock” Umm… Sparkfun? Is there something you want to tell us, perhaps about a demon in the basement?

  • so I suck at reading data sheets… I was wondering what the maximum voltage is that I can put through this shift register is. I am wanting to make an automated fireworks display and I need to supply 6-12 volts to the igniters. can this IC handle it or would I need to find a High voltage version?

    • The section you’re looking for is usually labeled “absolute maximum ratings”. For this part, it says that the maximum VCC is 7V, and although you can get 35mA out of a pin, you’re limited to putting 70mA into the chip as a whole. Basically, the 74HC595 is much more of a logic part than a driver part (and it’s not a great idea to run at the limits in any case).

      However, there are other solutions. We carry a version of this chip which is meant for driving larger loads, check out the TPIC6B595. Also, it’s common in cases like this to route an output from a low-power device like the 74HC595 through a FET, solid-state relay, or other high-current driver to run the big stuff. Good luck with your project!

  • Hey if I wanted, could you set up 2 of these registers in parallel so that 2 of them receive the exact same info simultaneously?

  • What does it mean in the datasheet when it says it can drive up
    to 15 LSTTL loads?

  • I ordered 3 if these and none of them worked, has anyone else had this problem?

  • Help!
    I can’t get the 3rd shift register to work properly. All of the LEDs from the 3rd shift reg light up and stay lit. The wiring looks right and the code looks right. Has anyone else had this problem?

    • Hey, talk about good timing. I had the same exact issue 2 hours ago. It’s more than likely programmer error. I proved that when I coded it for two registers & hooked it up to 2 & 3, rather than 1 & 2. That worked.
      The issue turned out to be using ints as the default. Changing to unsigned long (more than 224 bits) did the trick. This means all of the 1UL

  • what the frick is a shift register

  • Is is possible to PWM the outputs ( all of them, at the same time, freq ) by toggling Output Enable?
    Looking at the specs it appears that this works. Not sure…

  • 25 year embedded software engineer here, trying my hand at my first hardware project since high school electronics. Starting out is overwhelming with the number of controller and logic chips out there to choose from. Thank you for narrowing down my choices with related parts on your website, notes and useful comments. It is very helpful cutting through the noise and finding a starting point.
    I’m thinking of using two 74HC595 for driving your alphnumberic LED displays in my project as discussed in other comments here. Since I need 4 displays (as well as other outputs), that means 8 of these little guys which is about the same price as a few more microcontrollers. I googled the part and found it much cheaper elsewhere. Any chance of lowering the price of the 74HC595 so I can get all my parts from you?

  • Is there a though hole Eagle file for this anywhere? I have completely exhausted google.

    • I know it’s months later, but people are going to see it anyway. Eagle has one stock, look under the 74xx-us, and the 74*595 part. the DIL16 package is the one your loking for.
      even if it’s a duh, no brainer, rtfm type question, please someone toss out the answer. You know how confusing this can be for newbies.

  • Do you have an SMD version of this? It is listed in the EAGLE library. Under: 74*595 -> 74LS595D —- SOIC

  • Someone mentioned that this can be used as a PISO device? Has anyone actually been able to get it to behave that way and if you did, how did you do it?

  • How about publishing that tutorial in a PC-friendly format? I don’t have anything that will open tar.tz files.

    • tar, tgz and tar.gz originate from Linux, but you can read them easily on any Windows machine using the excellent multi format archiver 7Zip (open source) :
      http://www.7-zip.org/download.html
      This reads and writes most archive formats, including their own increasingly popular 7z format (LZMA, better compression than zip format)

  • Anyone have a good tutorial on how to get started using this with an ATMega168 (or similar AVR)? I’d like to control a 7-segment LED with just a few pins. (I’ve seen those Arduino ones, but I’m writing code in C and compiling with AVR-gcc.) Thanks.

  • Am I correct that the vcc pin is what actually puts the power to the output pins when they’re activated? For more than a few LEDs you’d need to use external power rather than the arduino. Right?

  • NEED MOAR POWA!!!!
    na, but seriously though, i tried the tutorial from the arduino site and USB is not enough to power the 8 L.E.D’s


Related Products