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

Пікірлер: 103

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

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

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

    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
    @reasonablebeing53923 жыл бұрын

    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
    @rewanderson55413 жыл бұрын

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

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

    You did great. Very good presentation. APPLAUSE

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

    Extremely clear and detailed explanation. Thanks

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

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

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

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

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

    Thanks Karen, excellent as always!

  • @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

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

    Such a clear and helpful explanation. Thank you.

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

    easy to understand thank you karen

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

    Easy to understand. It helped a lot. Thx

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

    Very well explained!

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

    thanks a lot and i love your tutorials

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

    Great explanation!

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

    I am very happy, you come 😄🤗🤗 back

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

    Very nice project. Thank you.

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

    Very good teacher.

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

    Very good explanation

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

    Thank you Karen!

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

    thanks.. its really helpful 🙏

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

    Possibly the best Karen out there, congrats :)

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

    Very good content, thx!

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

    awesome stuff keep it up!

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

    Thank u for this video.

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

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

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

    owesome project

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

    That was epic!

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

    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

    3 жыл бұрын

    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

    3 жыл бұрын

    @@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

    3 жыл бұрын

    @@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.

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

    Nice tutorial 🎉🎉🎉👍

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

    Thanks, Karen!

  • @maker_karen1785

    @maker_karen1785

    3 жыл бұрын

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

  • @MrCardeso

    @MrCardeso

    3 жыл бұрын

    @@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

    3 жыл бұрын

    @@MrCardeso Haha. Aww thank you!

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

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

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

    I finally you have arduino!

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

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

  • @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

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

    Thanks,nice

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

    Great video, very clear. Thanks for posting.

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

    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

    3 жыл бұрын

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

  • @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

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

    great animation, georgeus girl

  • @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.

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

    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!

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

    عاشت ايدج

  • @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.

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

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

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

    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)

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

    👌👌

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

    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

  • 3 жыл бұрын

    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

    3 жыл бұрын

    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.

  • 3 жыл бұрын

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

  • @maker_karen1785

    @maker_karen1785

    3 жыл бұрын

    @ 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. ;-)

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

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

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

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

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

    Hi . The same proces work tp the 74LS259 ?

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

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

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

    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

    3 жыл бұрын

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

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

    Mem,Can you describe 4094be shift register with detailed

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

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

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

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

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

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

  • @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.

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

    i like you

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

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

  • @jobbe-wijnen
    @jobbe-wijnen11 ай бұрын

    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.😂

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

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

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

    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

    3 жыл бұрын

    Yup, that’s next!

  • @maker_karen1785

    @maker_karen1785

    3 жыл бұрын

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

  • @alfredkaserekasivanzire9488

    @alfredkaserekasivanzire9488

    3 жыл бұрын

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

  • @maker_karen1785

    @maker_karen1785

    3 жыл бұрын

    @@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.

  • @artstechnology7809
    @artstechnology7809Ай бұрын

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

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

    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.

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

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

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

    Hi Karen

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

    😁👋💞

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

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

  • @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

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

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

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

    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

    3 жыл бұрын

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

  • @budward7846

    @budward7846

    3 жыл бұрын

    @@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.

Келесі