No video

How to Add Outputs to an

Serial In Parallel out (SIPO) shift registers can take data in a single input and transfer it to multiple outputs. This type of shift register can be used to expand the outputs of an Arduino. Watch as Karen shows how to create a circuit that uses only 3 I/O pins of an Arduino to create 8, 16, or more outputs: bit.ly/2QkyqhE
Engage with the element14 presents team on the element14 Community - suggest builds, find project files and behind the scenes video: bit.ly/2MFMG0v
Visit the element14 Community for more great activities and free hardware:
Tech spotlights: bit.ly/2KLz0TS
Roadtest and Reviews: bit.ly/2KH4fj3
Project14: bit.ly/2wPnajx

Пікірлер: 104

  • @malcolmhodgson7540
    @malcolmhodgson75403 жыл бұрын

    Karen, by far the clearest explanation on the internet. Really grateful for your clear teaching style.

  • @malgailany
    @malgailany4 жыл бұрын

    I like the clear and concise explanation of the shift register as well as the Arduino code. Thank you, Karen!

  • @kugodx9
    @kugodx92 жыл бұрын

    As someone who only picked up the hobby a year ago, I just want to say THANK YOU!!!!!!!!!!!! Your explanations are beyond helpful and have greatly contributed to early projects.

  • @reasonablebeing5392
    @reasonablebeing53924 жыл бұрын

    Another great video. You have a gift for explaining this stuff. I hope Element 14 recognizes this and we continue to see your videos here.

  • @chasem7889
    @chasem78893 жыл бұрын

    This is a great explanation, and helped me get past an issue I had daisy-chaining two of these together! Thank You!

  • @rewanderson5541
    @rewanderson55414 жыл бұрын

    Hey, exactly what I need for one of my projects! Thanks.

  • @marios_ideas
    @marios_ideas3 жыл бұрын

    Very nice explanations. I did similar video and it is great to see a slightly diffrent angle when explaining this topic

  • @edwarnick3427
    @edwarnick3427 Жыл бұрын

    I agree with the previous comment.... your's is simply the best explanation I've seen! Nice job!

  • @mitchellhw2006
    @mitchellhw20064 жыл бұрын

    You did great. Very good presentation. APPLAUSE

  • @joegoetz3705
    @joegoetz37053 жыл бұрын

    Nice. I was having a hard time cascading these and you made it clear. thank you

  • @mnavarrotube
    @mnavarrotube2 жыл бұрын

    Extremely clear and detailed explanation. Thanks

  • @trif169
    @trif1699 күн бұрын

    To answer your question for why is the second shift register one bit away from the first. I think it's because you would have the output from the first going to the input of the second shift register but only after the next consecutive clock pulse will the output be triggered! Quite neat.

  • @robertrobert5583
    @robertrobert55833 жыл бұрын

    Such a clear and helpful explanation. Thank you.

  • @jabmd32
    @jabmd324 жыл бұрын

    easy to understand thank you karen

  • @jasonree
    @jasonree3 жыл бұрын

    Thanks Karen, excellent as always!

  • @brandontay2053
    @brandontay20536 ай бұрын

    Great explanation!

  • @mioritic6798
    @mioritic67983 жыл бұрын

    Possibly the best Karen out there, congrats :)

  • @Mostafa-cv8jc
    @Mostafa-cv8jc3 ай бұрын

    Very good explanation

  • @krzysztofbaranowicz7735
    @krzysztofbaranowicz77354 жыл бұрын

    I am very happy, you come 😄🤗🤗 back

  • @zoltanmeksz7625
    @zoltanmeksz76256 ай бұрын

    Very good teacher.

  • @scry7293
    @scry72932 жыл бұрын

    Easy to understand. It helped a lot. Thx

  • @sithummethmika1676
    @sithummethmika16763 жыл бұрын

    thanks a lot and i love your tutorials

  • @iot_enthusiast
    @iot_enthusiast4 жыл бұрын

    Very well explained!

  • @howardc2452
    @howardc2452 Жыл бұрын

    Very nice project. Thank you.

  • @h2o40fpv
    @h2o40fpv Жыл бұрын

    Thank u for this video.

  • @valdisblack1541
    @valdisblack15414 жыл бұрын

    05:10 it's more reliable here to define constants instead of using variables. variables are stored in the RAM of the microcontroller, but constants are always in the code section and won't spend limited space in microcontroller's RAM.

  • @maker_karen1785

    @maker_karen1785

    4 жыл бұрын

    I’m still very new to Arduino coding and tbh, copied this code from someone else’s project. I had to look everything up to see how it worked. Thanks for adding your knowledge. I hope it helps someone out.

  • @MarinusMakesStuff

    @MarinusMakesStuff

    4 жыл бұрын

    @@maker_karen1785 Ah, are you the person in the video? :) It would be nice to also credit the person who has written the original code in the description.

  • @maker_karen1785

    @maker_karen1785

    4 жыл бұрын

    @@MarinusMakesStuff Hi, yes I'm Karen in the video. I do all the research, writing, filming, and editing for The Learning Circuit. (Well most of the editing. Max makes it look shiny.) That's a really good point. I got a lot of my reference material from www.arduino.cc/en/tutorial/ShiftOut. But I'm looking at their example code and it doesn't match mine at all. I tend to piecemeal information together for my videos, so I'm not sure if I directly copied code from anywhere or just borrowed bits. I move through making these videos so quickly that the information can be a blur sometimes. I always keep a References list of URLs but none of the ones for this episode have code like what I used. I will try to keep that in mind in the future and try to make sure the original code authors are referenced in the description.

  • @After_Tech_Industries

    @After_Tech_Industries

    3 жыл бұрын

    @ op, good to know

  • @ryanbareither89

    @ryanbareither89

    2 жыл бұрын

    This is one of those little coding tips that will help me for the rest of my life.

  • @nicholasglover7636
    @nicholasglover76363 жыл бұрын

    Great video! How would you go about controlling the shift register without using the shiftOut function?

  • @OmeedNOuhadi
    @OmeedNOuhadi3 жыл бұрын

    Thank you Karen!

  • @adrianschnyderch
    @adrianschnyderch Жыл бұрын

    This is the best explainer video for me, thank you for this great work. Now I have a question: what software did you use to create the animation from 1:10

  • @AlbertoGuitarrista
    @AlbertoGuitarrista2 жыл бұрын

    This amazing explanation has really helped me. Thank you very much, indeed! Oh! And that smile... :-)

  • @gauravsr4439
    @gauravsr44393 жыл бұрын

    thanks.. its really helpful 🙏

  • @4BohrKid
    @4BohrKid3 жыл бұрын

    this was probably one of the best videos I've ever watched

  • @TheBic4
    @TheBic44 жыл бұрын

    awesome stuff keep it up!

  • @kuczaq69
    @kuczaq692 жыл бұрын

    Very good content, thx!

  • @mdanisurrahman101
    @mdanisurrahman1014 жыл бұрын

    owesome project

  • @awo1fman
    @awo1fman4 жыл бұрын

    Great tutorial! 👍 I can't help but notice the LEDs are set up backward for counting up in binary LOL. 😝 Could just turn the board around or flip the video. 🤔 😁

  • @maker_karen1785

    @maker_karen1785

    4 жыл бұрын

    Haha. You’re right. I didn’t even notice that!

  • @anokhautomation4453
    @anokhautomation44532 жыл бұрын

    Nice tutorial 🎉🎉🎉👍

  • @ArponRoy
    @ArponRoy3 жыл бұрын

    8:40 Can you tell me about the swing machine sitting behind you? It looks like digital one. Can you tell me the brand or any details that I could found similar one ? BTW very good explanation of shift register. thanks

  • @sandeepgupta6526
    @sandeepgupta6526 Жыл бұрын

    Thanks,nice

  • @schedarr
    @schedarr3 жыл бұрын

    That was epic!

  • @GerardWassink
    @GerardWassink3 жыл бұрын

    When the purpose of the exercise it to explain the shift register, it suffices. When the purpose is to add more outputs, try the I2C bidirectional ic MCP23017, it’s much more versatile... You can add 8 of the to the I2C but giving you 128 ports that can individually set as input o output. Couple outputs to a ULN2803 and inputs thrugh an opto-coupler, and you’re in business.

  • @goodwill7643

    @goodwill7643

    3 жыл бұрын

    50PCS = € 49,15 / lot MCP23017 50PCS = € 4,03 / lot Hc595ag Shift Register If you need 50PCs and you don't care about 45€ being thrown away, then it doesn't matter what to use. I was always wondering about MCP23017 why it cost as MCU, but has only a tiny part of functionality.

  • @Enigma758
    @Enigma758 Жыл бұрын

    @Maker_Karen I'm glad you used 470 ohm resistors as the 74HC595 has a max chip current of 70mA

  • @michaelzajac5284
    @michaelzajac52844 жыл бұрын

    I finally you have arduino!

  • @williefleete
    @williefleete4 жыл бұрын

    also the output enable explanation is a little inaccurate. Pulling the pin high will make the outputs go high Z or essentially open circuit, it disconnects the output drivers. However you can use PWM on the pin to control LED brightness etc (I use it on the jumbo clock to control the Aux LED brightness, I use the signal from the "blanking" pin used on the CD4511 which I use to control the digit brightness, inverted using a spare ULN2003 and a pull up on the OE of the register controlling the LEDs)

  • @masoudjafarzadeh
    @masoudjafarzadeh2 жыл бұрын

    Hi Karen 🙋‍♂️ Is it possible to write a code that can be used to 0 and 1 one of the specific outputs of the shift register

  • @josegregoriocontrerasvarga5693
    @josegregoriocontrerasvarga56933 ай бұрын

    Hi . The same proces work tp the 74LS259 ?

  • @amandakleisnerova7473
    @amandakleisnerova74733 жыл бұрын

    Hello, how to make 16bit D/A converter with two 74HC595 and resistor ladder ?

  • @MrCardeso
    @MrCardeso4 жыл бұрын

    Thanks, Karen!

  • @maker_karen1785

    @maker_karen1785

    4 жыл бұрын

    Always the same comment. Always happy to see it. :D

  • @MrCardeso

    @MrCardeso

    4 жыл бұрын

    @@maker_karen1785 It was either that or "Hodor!". I may not have immediate use for the topic at hand, but I want you to know that I appreciate your work.

  • @maker_karen1785

    @maker_karen1785

    4 жыл бұрын

    @@MrCardeso Haha. Aww thank you!

  • @boopeshkumarprabhakaran
    @boopeshkumarprabhakaran3 жыл бұрын

    How to Take outputs? Can I use 16 channel relay with this?

  • @goodwill7643
    @goodwill76433 жыл бұрын

    Could you please make tutorial how to use multiple Shiftregisters with Serial Data Output pin? Thank you

  • @maker_karen1785

    @maker_karen1785

    3 жыл бұрын

    There’s a video coming out next week about adding inputs that uses the serial output.

  • @matreive5917
    @matreive59174 жыл бұрын

    Great video, very clear. Thanks for posting.

  • @elionehme4870
    @elionehme48702 ай бұрын

    i did the same thing but my shift register outputsb are turning off sometimes is my shift register perhaps falty?

  • @animongahajime9302
    @animongahajime93022 жыл бұрын

    How do select only a specific pin on the register and set it's value?

  • @EntruvWriting
    @EntruvWriting4 жыл бұрын

    Thanks for the video! Two quick questions: 1) How would you make it so that the second shift register doesn't start receiving bits (or lighting up) until the first one is full (all LEDS are lit)? 2) I know you can use bytes to tell the shift register what pattern to display (ex. 0b01001010), but does this carry over to the second shift register? If I put in a 16-bit number, would it show that pattern using both shift registers? Thanks!

  • @LandOfSigh

    @LandOfSigh

    3 жыл бұрын

    For Q1, it depends on what you wish to do. A quick and dirty way is to call serialOut() twice before the digitalWrite(latchclock, high) is called. That way the data in the first serialOut() is in the second shift register, while the second serialOut() is in the first shift register when the latch is 'activated'. For Q2, int is already 16 bit, so it is already 16 bits and no change is needed! However, if you are looking to transfer all 16 bits in one call of serialOut() you will be disappointed. From the arduino reference for shiftOut() under notes and warnings, shiftOut() only supports transferring 8 bits each time it is called.

  • @robertrobert5583

    @robertrobert5583

    3 жыл бұрын

    @@LandOfSigh thanks for this. Now I understand why she skipped over that part!

  • @sanketjadhav2255
    @sanketjadhav22553 жыл бұрын

    Why is 2nd shift reg 1 bit behind???

  • @wtun8660
    @wtun8660 Жыл бұрын

    Is it possible to find a code to control 170 outputs using Arduino Uno and shift register number 22

  • @faysalahmed613
    @faysalahmed6133 жыл бұрын

    Mem,Can you describe 4094be shift register with detailed

  • @williefleete
    @williefleete4 жыл бұрын

    I've used shift registers to drive some BCD - 7 segment decoders (CD4511), each shift register can drive 2 digits, I have cascaded 4 shift registers to drive six CD4511 7 segment display drivers which drive ULN2003 open collector drivers and and 8 extra LEDs (by omitting the 4511's and driving the ULN2003 off the shift reg outputs). Did I mention the LED displays in this are made from LED strips, one whole digit is around 130mmx220mm. I made them into a clock, which I call the "jumbo clock". I have some smaller displays that use a similar thing, 2 shift registers for 4 digits (or 3 and a few directly controlled segments). I made a few 18b20 based thermometers using some 44.5mm LED displays

  • @maker_karen1785

    @maker_karen1785

    4 жыл бұрын

    That sounds pretty frickin cool. I'd love to see pictures and a write up of what you did.

  • @mustafasaad2128
    @mustafasaad21284 жыл бұрын

    عاشت ايدج

  • @farosrohmangeloraramadan3897
    @farosrohmangeloraramadan38973 жыл бұрын

    great animation, georgeus girl

  • @jiricech4678
    @jiricech4678 Жыл бұрын

    For what is there 10k resistor (CLR pin) ?

  • @DeltaGen42

    @DeltaGen42

    Жыл бұрын

    This is a pulldown resistor. When the pin on the arduino is brought low, its possible for a voltage to remain on the pin. the resistor gives it a path to ground.

  • 4 жыл бұрын

    Please note you can use SPI to control a 595 at 16MHz! Using OE as a CS pin for it, you can share the SPI bus with the 595 and any SPI slaves.

  • @maker_karen1785

    @maker_karen1785

    4 жыл бұрын

    I’ve never messed around with SPI, but I’ve been told to add it to my list so maybe there will be a video about it in the future.

  • 4 жыл бұрын

    @@maker_karen1785 great, thanks for your answer ;-)

  • @maker_karen1785

    @maker_karen1785

    4 жыл бұрын

    @ Now I've started reading up on it. That Arduino code line "Serial.begin(9600)" makes a lot more sense now. You may have just sent me down a rabbit hole. ;-)

  • @xselectroniccircuits6290
    @xselectroniccircuits6290 Жыл бұрын

    👌👌

  • @artstechnology7809
    @artstechnology78092 ай бұрын

    Please teach how its work a game atari tetris or another please 😊😊😊😊

  • @lacourarieeric7650
    @lacourarieeric76503 жыл бұрын

    dommage vidéo en anglais rien compris mais le visuel semblais être bien

  • @jobbe-wijnen
    @jobbe-wijnen Жыл бұрын

    I broke my head thinking about that HC595, until i realised that the outputs SOURCE current when high, but also SINK current, when low. Please tell me that is correct, otherwise I will again not sleep over it.😂

  • @alfredkaserekasivanzire9488
    @alfredkaserekasivanzire94884 жыл бұрын

    There is a 74HC165. It's a shift register too. But it seems that it is used differently on arduino. I hope to see you showing how to use it too.

  • @maker_karen1785

    @maker_karen1785

    4 жыл бұрын

    Yup, that’s next!

  • @maker_karen1785

    @maker_karen1785

    4 жыл бұрын

    Ok I just checked and it's actually a 166, but they're very similar. :P

  • @alfredkaserekasivanzire9488

    @alfredkaserekasivanzire9488

    4 жыл бұрын

    74HC165 for many INPUT. You have described the one for many OUTPUT

  • @maker_karen1785

    @maker_karen1785

    4 жыл бұрын

    @@alfredkaserekasivanzire9488 This video uses a 595. There is another video coming up that uses a 166 to show adding inputs. But I made that video at the beginning of July so I forget exactly which chip I used. That video should be released in 3 weeks.

  • @heemagauss8691
    @heemagauss86912 жыл бұрын

    understand what i want and apply in 10 minutes instead of 3 hours

  • @canlobin2240
    @canlobin22404 жыл бұрын

    i like you

  • @OMNI_INFINITY
    @OMNI_INFINITY11 ай бұрын

    Really it doesn't have ANYTHING to do with decimal. They are simply switches. Using decimal representation of binary for that is simply more convenient. Those are basically dip switches.

  • @user-dz7jo5eb5j
    @user-dz7jo5eb5j11 ай бұрын

    Don't they teach you to keep your indentation nice and tidy in electrical engineering?

  • @Khujandiho
    @Khujandiho2 жыл бұрын

    I think she deserves Starbucks gift card. :) thank you

  • @arnelcondino2634
    @arnelcondino26344 жыл бұрын

    Hi Karen

  • @lucsonnelson8037
    @lucsonnelson80372 жыл бұрын

    Not safe for the arduino period....🤞🤔

  • @Calphool222
    @Calphool2223 жыл бұрын

    05:57 isn't a great explanation of how a for loop works. A for loop typically has three parts that work with a variable: 1. what should the variable be initialized to? 2) when do you want me to break out of the for loop? and 3) how quickly should I increment or decrement the variable? These three values are separated by a semicolon. Technically the rules of how you set up a for loop don't _require_ these three things, but by convention that's typically how they're coded. In the example that was given, the loop will count from 0 - 255, then terminate. Since the code is in the function loop(), it then starts over at 0 because loop() gets called by the Arduino base code over and over again.

  • @goodwill7643

    @goodwill7643

    3 жыл бұрын

    Video focused on ShiftRegister and C++ syntax is extra. On the screen you have working example of loop and for more details check book "C++ in 21 Days" Karen is more familiar with ICs and in Arduino/C++ she is relatively new. www.amazon.com/Sams-Teach-Yourself-Days-5th/dp/0672327112

  • @zdenkokovac4557
    @zdenkokovac45574 жыл бұрын

    😁👋💞

  • @budward7846
    @budward78464 жыл бұрын

    The /OE pin has nothing to do with shifting or latching, and taking it HIGH will most certainly change the parallel outputs - they will be tri-stated! Who edits this stuff?

  • @maker_karen1785

    @maker_karen1785

    4 жыл бұрын

    If you feel that what I presented is incorrect, would you like to share the correct information so we can all learn?

  • @budward7846

    @budward7846

    4 жыл бұрын

    @@maker_karen1785 Surely. www.ti.com/lit/gpn/SN74HC595 Notice that on the first-page Logic Diagram /OE is the top input, and is only connected to the output-enables of the parallel outputs - it is asynchronous to the clocks and does not interact with the shift logic. If I am incorrect my apologies; please point out my mistake.

  • @AI_Image_Master

    @AI_Image_Master

    2 жыл бұрын

    The way she said it was confusing. You are correct. The /OE pin has nothing to do with the shifting or the latching. It has everything to do with the output. She was referring to the output not changing until /OE is high. Generally if you are not waiting for other things to complete you just tie it high and your output will change when the latch changes. However you might not want to show your register change and /OE can be controlled by some other Logic input to it. Chances are that your output might be going to a bus so the high /OE is a high impedance state to make sure that you do not put your data on the bus until it is time to.