How to Add Outputs to an

  Рет қаралды 71,845

element14 presents

element14 presents

Күн бұрын

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
@malcolmhodgson7540 3 жыл бұрын
Karen, by far the clearest explanation on the internet. Really grateful for your clear teaching style.
@malgailany
@malgailany 3 жыл бұрын
I like the clear and concise explanation of the shift register as well as the Arduino code. Thank you, Karen!
@kugodx9
@kugodx9 2 жыл бұрын
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
@reasonablebeing5392 3 жыл бұрын
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
@chasem7889 3 жыл бұрын
This is a great explanation, and helped me get past an issue I had daisy-chaining two of these together! Thank You!
@rewanderson5541
@rewanderson5541 3 жыл бұрын
Hey, exactly what I need for one of my projects! Thanks.
@mnavarrotube
@mnavarrotube 2 жыл бұрын
Extremely clear and detailed explanation. Thanks
@jasonree
@jasonree 3 жыл бұрын
Thanks Karen, excellent as always!
@joegoetz3705
@joegoetz3705 3 жыл бұрын
Nice. I was having a hard time cascading these and you made it clear. thank you
@mitchellhw2006
@mitchellhw2006 3 жыл бұрын
You did great. Very good presentation. APPLAUSE
@edwarnick3427
@edwarnick3427 Жыл бұрын
I agree with the previous comment.... your's is simply the best explanation I've seen! Nice job!
@robertrobert5583
@robertrobert5583 3 жыл бұрын
Such a clear and helpful explanation. Thank you.
@marios_ideas
@marios_ideas 3 жыл бұрын
Very nice explanations. I did similar video and it is great to see a slightly diffrent angle when explaining this topic
@jabmd32
@jabmd32 3 жыл бұрын
easy to understand thank you karen
@trif169
@trif169 5 күн бұрын
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.
@iot_enthusiast
@iot_enthusiast 3 жыл бұрын
Very well explained!
@krzysztofbaranowicz7735
@krzysztofbaranowicz7735 3 жыл бұрын
I am very happy, you come 😄🤗🤗 back
@brandontay2053
@brandontay2053 6 ай бұрын
Great explanation!
@scry7293
@scry7293 2 жыл бұрын
Easy to understand. It helped a lot. Thx
@OmeedNOuhadi
@OmeedNOuhadi 3 жыл бұрын
Thank you Karen!
@mioritic6798
@mioritic6798 3 жыл бұрын
Possibly the best Karen out there, congrats :)
@sithummethmika1676
@sithummethmika1676 3 жыл бұрын
thanks a lot and i love your tutorials
@zoltanmeksz7625
@zoltanmeksz7625 6 ай бұрын
Very good teacher.
@howardc2452
@howardc2452 Жыл бұрын
Very nice project. Thank you.
@TheBic4
@TheBic4 3 жыл бұрын
awesome stuff keep it up!
@Mostafa-cv8jc
@Mostafa-cv8jc 2 ай бұрын
Very good explanation
@gauravsr4439
@gauravsr4439 3 жыл бұрын
thanks.. its really helpful 🙏
@kuczaq69
@kuczaq69 2 жыл бұрын
Very good content, thx!
@anokhautomation4453
@anokhautomation4453 2 жыл бұрын
Nice tutorial 🎉🎉🎉👍
@valdisblack1541
@valdisblack1541 3 жыл бұрын
<a href="#" class="seekto" data-time="310">05:10</a> 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.
@schedarr
@schedarr 3 жыл бұрын
That was epic!
@AlbertoGuitarrista
@AlbertoGuitarrista 2 жыл бұрын
This amazing explanation has really helped me. Thank you very much, indeed! Oh! And that smile... :-)
@h2o40fpv
@h2o40fpv Жыл бұрын
Thank u for this video.
@mdanisurrahman101
@mdanisurrahman101 3 жыл бұрын
owesome project
@nicholasglover7636
@nicholasglover7636 3 жыл бұрын
Great video! How would you go about controlling the shift register without using the shiftOut function?
@4BohrKid
@4BohrKid 3 жыл бұрын
this was probably one of the best videos I've ever watched
@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 <a href="#" class="seekto" data-time="70">1:10</a>
@michaelzajac5284
@michaelzajac5284 3 жыл бұрын
I finally you have arduino!
@matreive5917
@matreive5917 3 жыл бұрын
Great video, very clear. Thanks for posting.
@sandeepgupta6526
@sandeepgupta6526 Жыл бұрын
Thanks,nice
@MrCardeso
@MrCardeso 3 жыл бұрын
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!
@ArponRoy
@ArponRoy 3 жыл бұрын
<a href="#" class="seekto" data-time="520">8:40</a> 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
@farosrohmangeloraramadan3897 3 жыл бұрын
great animation, georgeus girl
@awo1fman
@awo1fman 3 жыл бұрын
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!
@mustafasaad2128
@mustafasaad2128 3 жыл бұрын
عاشت ايدج
@GerardWassink
@GerardWassink 3 жыл бұрын
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
@EntruvWriting 3 жыл бұрын
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!
@Enigma758
@Enigma758 Жыл бұрын
@Maker_Karen I'm glad you used 470 ohm resistors as the 74HC595 has a max chip current of 70mA
@amandakleisnerova7473
@amandakleisnerova7473 3 жыл бұрын
Hello, how to make 16bit D/A converter with two 74HC595 and resistor ladder ?
@josegregoriocontrerasvarga5693
@josegregoriocontrerasvarga5693 3 ай бұрын
Hi . The same proces work tp the 74LS259 ?
@masoudjafarzadeh
@masoudjafarzadeh 2 жыл бұрын
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
@williefleete
@williefleete 3 жыл бұрын
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)
@boopeshkumarprabhakaran
@boopeshkumarprabhakaran 3 жыл бұрын
How to Take outputs? Can I use 16 channel relay with this?
@goodwill7643
@goodwill7643 3 жыл бұрын
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.
@animongahajime9302
@animongahajime9302 2 жыл бұрын
How do select only a specific pin on the register and set it's value?
@xselectroniccircuits6290
@xselectroniccircuits6290 Жыл бұрын
👌👌
@williefleete
@williefleete 3 жыл бұрын
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.
@sanketjadhav2255
@sanketjadhav2255 3 жыл бұрын
Why is 2nd shift reg 1 bit behind???
@elionehme4870
@elionehme4870 2 ай бұрын
i did the same thing but my shift register outputsb are turning off sometimes is my shift register perhaps falty?
@faysalahmed613
@faysalahmed613 3 жыл бұрын
Mem,Can you describe 4094be shift register with detailed
@wtun8660
@wtun8660 Жыл бұрын
Is it possible to find a code to control 170 outputs using Arduino Uno and shift register number 22
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. ;-)
@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
@canlobin2240 3 жыл бұрын
i like you
@artstechnology7809
@artstechnology7809 2 ай бұрын
Please teach how its work a game atari tetris or another please 😊😊😊😊
@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.😂
@lacourarieeric7650
@lacourarieeric7650 3 жыл бұрын
dommage vidéo en anglais rien compris mais le visuel semblais être bien
@heemagauss8691
@heemagauss8691 2 жыл бұрын
understand what i want and apply in 10 minutes instead of 3 hours
@alfredkaserekasivanzire9488
@alfredkaserekasivanzire9488 3 жыл бұрын
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.
@Khujandiho
@Khujandiho 2 жыл бұрын
I think she deserves Starbucks gift card. :) thank you
@OMNI_INFINITY
@OMNI_INFINITY 11 ай бұрын
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.
@zdenkokovac4557
@zdenkokovac4557 3 жыл бұрын
😁👋💞
@arnelcondino2634
@arnelcondino2634 3 жыл бұрын
Hi Karen
@user-dz7jo5eb5j
@user-dz7jo5eb5j 11 ай бұрын
Don't they teach you to keep your indentation nice and tidy in electrical engineering?
@Calphool222
@Calphool222 3 жыл бұрын
<a href="#" class="seekto" data-time="357">05:57</a> 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
@lucsonnelson8037 2 жыл бұрын
Not safe for the arduino period....🤞🤔
@budward7846
@budward7846 3 жыл бұрын
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.
Arduino Multiplexor - MUX INPUTS & OUTPUTS - ANALOG and PWM
13:21
Electronoobs
Рет қаралды 102 М.
How Shift Registers Work!
11:50
Kevin Darrah
Рет қаралды 403 М.
74HC595 & 74HC165 Shift Registers with Arduino
40:38
DroneBot Workshop
Рет қаралды 395 М.
555 Timer Modes Explained - The Learning Circuit
10:29
element14 presents
Рет қаралды 180 М.
Controlling a BIG LED Matrix?! How Shift Registers work! || EB#39
12:33
Not enough Arduino Pins? Try this I2C Port Expander! | Chip Tips #1: PCF8574
7:59
How Shift Registers Work - The Learning Circuit
10:44
element14 presents
Рет қаралды 119 М.
555 Timers - How A One Shot Timer Works - The Learning Circuit
10:33
element14 presents
Рет қаралды 54 М.
INFINITE Pins for ARDUINO?  |  74595 Shift Register
9:45
Eureka!
Рет қаралды 36 М.
Мой новый мега монитор!🤯
1:00
Корнеич
Рет қаралды 244 М.
Сколько реально стоит ПК Величайшего?
0:37
iPhone 15 Pro в реальной жизни
24:07
HUDAKOV
Рет қаралды 489 М.
Looks very comfortable. #leddisplay #ledscreen #ledwall #eagerled
0:19
LED Screen Factory-EagerLED
Рет қаралды 11 МЛН