I guess youre new to electronics. Im not indian but the electronics online community has always been led by the indian community. From the most basic arduino projects to detailed electrical and electronics lecture theres always a good indian video of it.
74HC595 is only output shift register and you can only extend output pins so GPIO means input and output. so You can't say 595 is a GPIO extender its only a output pins extender
i think if latch gate supports binary data input, then we can use the clock to check the state of that latch and use it as input too, just reverse it. imagine you touch a latch gate-oupout with 3v, now the it saves the binary data, now using the system clock to mesure the latch state and use if-else statment or any other function we can use it as input too, but i guess we will need 2 clocks, one for checking latch state and another for retriving data/state of the gate
shift registers are fine if its a slow driven output so an alternative is do parellel latching, a chip I have used a lot for large GPIO expansion is 74HC373
Random ask: You wouldn't like to make a UA-cam video of that would you Mr Driscoll? Everyone with a phart smone has got at least one UA-cam video in them. ;)
simply write 8 bits in one go to port D, then toggle pc0 low and back to high to latch the pattern to U2 Q0-Q7 then do another write to Port D and toggle pc1 low and back high to latch that pattern to U3 Q0-Q7 .... you could add a 3rd latch and so on if you need more lines just add its LE to the next PC port (pc2) and so on - each latch uses the same pins PD0-PD7 as the inputs and LE as the latch toggle .. low sets the Q lines to match D lines High keeps them in that state. if someone really wants to get this up and running im happy to help just buzz me here
I was working on shift register today to control 16 LEDs Using the adafruit Io platform And boom I got your notification on shift register Thanks for sharing
You should look into the 74322 and compatible replacements. It gives you 8 I/O pins that you can control as a bank. It doesn't quite give you full GPIO, but it's perfect for talking to a wide bus from a limited number of GPIO pins
It might be worth mentioning that there is such a thing as an "analog shift register," which works like a digital shift register, except you can shift in analog *voltage* levels, and that voltage level is retained on an output pin until the next voltage is sent, and then the voltage level shifts to another output pin. Of course that's sort of irrelevant with an Arduino UNO, since they don't have a DAC built in. They can be useful with a DAC shield though.
Using this technique with an absolutely minimal MCU like the ESP-01 is absolutely a great solution where you need intelligent output patterns on a large number of LEDs. Once you get over 16 outputs though a chip like the M5450 or the TL5940 or MAX7209 does a better job and provides brightness control too.
The 74HCT595 or variations thereof is a very good choice for expending many outputs with only three output pins from the processor. Of course there's a parallel in inversion of this which works well since when you load the inputs it captures the data at that moment in time. What makes this chip great is that you can shift in the data first in the shift register but will not go to the output until you hit the load line. Theoretically you could have unlimited outputs your limit is only how fast you want to refresh an output bit. For example I use these to create a 3D LED cube meeting 16 outputs.
I am using a 74HC595 shift register with the same connections but with manual control at its input (not connected to any controller). However, when I turn off the power supply and then turn it back on, I get random values at the shift register outputs. Is there a solution to avoid these garbage values at power-up?
Nice video! But I would recommend (when available on the MCU) to use GPIO expanders with an I2C interface. By changing the address of multiple I2C GPIO expanders you could control a massive amount of GPIO (example IC: MCP23017) (Edit: Thus as a addon controlling pins using I2C is very simple, not bitshifting and so on!)
Great video great sound great font size. Only issue is edge of screen is truncated by my 1080p TV that I watch on so for example it's an or loop and not a for loop while you are showing code.
like a the input of the keyboard. requires keyboard.drv pre loaded. along the mouse.drv. on the msdos operating system. so i believe a omni gpio hardware. requires also. gpio.drv preloaded in the memory from boot of. but i dont know. since also the ram space need to be limited to make room for other hardware. and also a irq or a cpu cycle need to be resident reserved for that. hahahaha. i did not even see the whole video. maybe you just explained that the arduino compiler took care of that. while writeing the file away.
You might take a look at my Serial Wombat project. It basically fills the same niche of adding GPIO to Arduino, but it's firmware running on a microcontroller, so it does a bunch of smart stuff (rotary encoders, PWM, Servo, ADC, etc) that a MCP23017 or pca9685 can't over an I2C interface.
you can use a 595 directly on an SPI bus with the proper clocking and phase. most microcontroller have hardware SPI. Often even with DMA. That is the most efficient and fastest way to IO expand with a serial to parallel shift register...
In Dots matrix or running text led, 7 segment, ic shift register is usefull of that projects, but for projects with need multi input/output, more efficient use ic expander PCF8574 (8bit) or MCP23017 (16bit) with i2c communication (2 wire only)
@@CristiNeagu BECAUSE I2C is unreliable compared to SPI and Direct accessing Shift Registers. You will get to notice only if u have multi modules in to MC.
1. This lacks 'I' in 'GPIO' ;) 2. This is not that 'unlimited', although we used an alike approach in order to get 96 outputs without issues. 3. Too slow, mostly useful for static LEDs or relay driving or alike, yet that is the limit.
You might be able to get away with controlling multiple things with a MUX if you're using latch gates to hold them 'on' once they're going. Still, I've been wondering about the shift register doingthis as well.
Not a new idea, but there is a trick: try to order PCA9505, my favorite port expander, then see MOQ and lead time! Americans screw up badly going against Russia and forgot where raw materials are coming from, so "all american-made chips" actually made in Taiwan cannot be produced any more... Does not matter if you are after Arduino-grade projects, but even Arduino (Atmega) chips where produced by Microchip and NOT available any more, all what is left is stock in some places. Unless something changes dramatically, we will end up using transistors... As for some comments below, India has a lot of very good engineers as well as large hobby community.
Sir please make a project that can control home appliances using NODEMCU ESP8266 with Manual, Blynk App, IR Remote, Alexa voice command, EEPROM. I am waiting for many months for this project. I hope you will upload video soon
It would be cool if it used i2c protocol, them it has to use only 2 pins for data communication. There is a small delay tho but it doesn't matter really because it is really small
Yes but it then takes up your I2C pins. It maybe better to bit bang the device and have another line for chip select. That way your clock and data lines can be connected to several devices.
I'm glad you have subtitles because you can't speak English. Thanks for the video. Maybe consider an accent neutralization course so we can understand you better.
There is no such thing 'unlimited'. a) adress block/range is limited. b) MCU's flow capacity may not be capable of handling all of those requests fast enough.
I'm sure this would be very interesting to some but the title is a lye so ... What you show is about adding digital output, not GPIO. GPIO does much more than just digital outputs. Title promesse you might present a chip that allows actual gpio extensions, and you don't deliver on that. Hint : MCP23s17 ;c)
Sir esp32 project use for smart home control 10 appliances with physical switch and with & without internet..... Arduino cloud iot.... Because there 10 devices in arduino cloud.... Shit register use 👏
Shift registers won't get you unlimited GPIO. It will only get you outputs, but no inputs. Why not just use multiple MCP23017 IO expanders? That will give you true unlimited GPIO.
@@CristiNeagu Better or not it really depends on your needs. MCP23017 is more expensive, harder to find in stock, much slower and more difficult to isolate. It might be a more compact solution though.
🤔🤔🤔🤔 what is the thing bro. I couldn't get the whole point. Can you please make a vedio that uses this shift register setup to control something more simpler & straight forward. Something like iot control
Indian videos usually are great. I've solved severa problems with them. But, but... Their pronuctiation is not very well 😅🥺. If only indias could improove their english, their videos would be sooo much better. I understan their mother thounge has different sounds than english. But it is just a friendly advice 😊👏🏻
asking people to pause and comment for something you're about to explain is insulting. As if we don't realize we're watching a pre-recorded video or that comments help your channel. "jump through my hoop!" Just make good content and skip that.
Should we make 5x1 Home Automation using CHOTA vala ESP8266(generic esp8266)???
Yes, please
Yessssssssssssssssssssssss🔄
Yes
defiantly yes. please
Yes please
I am happy to see Indian electronics community popping out and making the lives of engineering students easier .. hats off to you sir.. keep it up🔥👏👏
I guess youre new to electronics. Im not indian but the electronics online community has always been led by the indian community. From the most basic arduino projects to detailed electrical and electronics lecture theres always a good indian video of it.
74HC595 is only output shift register and you can only extend output pins so GPIO means input and output. so You can't say 595 is a GPIO extender its only a output pins extender
i think if latch gate supports binary data input, then we can use the clock to check the state of that latch and use it as input too, just reverse it.
imagine you touch a latch gate-oupout with 3v, now the it saves the binary data, now using the system clock to mesure the latch state and use if-else statment or any other function we can use it as input too, but i guess we will need 2 clocks, one for checking latch state and another for retriving data/state of the gate
shift registers are fine if its a slow driven output so an alternative is do parellel latching, a chip I have used a lot for large GPIO expansion is 74HC373
Random ask: You wouldn't like to make a UA-cam video of that would you Mr Driscoll? Everyone with a phart smone has got at least one UA-cam video in them. ;)
@@WintonMc corrected the part number - my head is full of a cold and mixed up my chips lol
simply write 8 bits in one go to port D, then toggle pc0 low and back to high to latch the pattern to U2 Q0-Q7 then do another write to Port D and toggle pc1 low and back high to latch that pattern to U3 Q0-Q7 .... you could add a 3rd latch and so on if you need more lines just add its LE to the next PC port (pc2) and so on - each latch uses the same pins PD0-PD7 as the inputs and LE as the latch toggle .. low sets the Q lines to match D lines High keeps them in that state.
if someone really wants to get this up and running im happy to help just buzz me here
@@WintonMc Never done a You-Tube Video .. life keeps me busy as it is... but here is all the details.
I was working on shift register today to control 16 LEDs
Using the adafruit Io platform
And boom I got your notification on shift register
Thanks for sharing
Amazing...
I have been trying to find a video all morning which is recent enough and includes all the code. Finally found yours. Thank you so much.
Happy Making 😇
You should look into the 74322 and compatible replacements. It gives you 8 I/O pins that you can control as a bank. It doesn't quite give you full GPIO, but it's perfect for talking to a wide bus from a limited number of GPIO pins
It might be worth mentioning that there is such a thing as an "analog shift register," which works like a digital shift register, except you can shift in analog *voltage* levels, and that voltage level is retained on an output pin until the next voltage is sent, and then the voltage level shifts to another output pin. Of course that's sort of irrelevant with an Arduino UNO, since they don't have a DAC built in. They can be useful with a DAC shield though.
Use MCP(Ex. MCP23017) only two pin is required for expanding GPIOs, what you think using MCPs....
Using this technique with an absolutely minimal MCU like the ESP-01 is absolutely a great solution where you need intelligent output patterns on a large number of LEDs. Once you get over 16 outputs though a chip like the M5450 or the TL5940 or MAX7209 does a better job and provides brightness control too.
The 74HCT595 or variations thereof is a very good choice for expending many outputs with only three output pins from the processor. Of course there's a parallel in inversion of this which works well since when you load the inputs it captures the data at that moment in time.
What makes this chip great is that you can shift in the data first in the shift register but will not go to the output until you hit the load line.
Theoretically you could have unlimited outputs your limit is only how fast you want to refresh an output bit.
For example I use these to create a 3D LED cube meeting 16 outputs.
I am using a 74HC595 shift register with the same connections but with manual control at its input (not connected to any controller). However, when I turn off the power supply and then turn it back on, I get random values at the shift register outputs. Is there a solution to avoid these garbage values at power-up?
will this work for sensor that make use of digital pins as signal
of course, also commonly available are the PCF8574 and MCP23008/MCP23017 that work over i2c
Can we use hc165 for inputs and hc595 for outputs so that we can only 7 pins controlling multiple outputs and inputs. Is it work?
i also worked on shift register , controlled 6 seven segment and make a digital clock
Are you able to read analog inputs with these shift registers?
Is it possible to use the Shift Registers along with Rainmaker App?
Using addresable led can be use
Really wow
May I know which tool you use for those electronic animations
Is it the same as SerDes ?
so you put the latch low (prepares it to receive data), send the data, and put the latch high to receive the data??
But we cannot use this multiplexer to read sensor data because this module generates some offset value
Nice video! But I would recommend (when available on the MCU) to use GPIO expanders with an I2C interface. By changing the address of multiple I2C GPIO expanders you could control a massive amount of GPIO (example IC: MCP23017) (Edit: Thus as a addon controlling pins using I2C is very simple, not bitshifting and so on!)
How can I connect an SD Card Module to this register?
Great video great sound great font size. Only issue is edge of screen is truncated by my 1080p TV that I watch on so for example it's an or loop and not a for loop while you are showing code.
what will you use as gpio software driver ? on your operating system.
like a the input of the keyboard. requires keyboard.drv pre loaded. along the mouse.drv. on the msdos operating system. so i believe a omni gpio hardware. requires also. gpio.drv preloaded in the memory from boot of. but i dont know. since also the ram space need to be limited to make room for other hardware. and also a irq or a cpu cycle need to be resident reserved for that. hahahaha. i did not even see the whole video. maybe you just explained that the arduino compiler took care of that. while writeing the file away.
Dear can you please make a video with WT32-SC01
how to program it's with your previous home automation project
Thanks
Will I be able to control relay with it
Yes
@@techiesms actually i was asking because you said it will trigring again and again
You might take a look at my Serial Wombat project. It basically fills the same niche of adding GPIO to Arduino, but it's firmware running on a microcontroller, so it does a bunch of smart stuff (rotary encoders, PWM, Servo, ADC, etc) that a MCP23017 or pca9685 can't over an I2C interface.
Can someone explain me purpose of siso and pipo shift resistors. I feel like they are useless
Your excitement is huge, that is great 👍
you can use a 595 directly on an SPI bus with the proper clocking and phase. most microcontroller have hardware SPI. Often even with DMA. That is the most efficient and fastest way to IO expand with a serial to parallel shift register...
In Dots matrix or running text led, 7 segment, ic shift register is usefull of that projects, but for projects with need multi input/output, more efficient use ic expander PCF8574 (8bit) or MCP23017 (16bit) with i2c communication (2 wire only)
Microchip makes an 8-bit one too, the MCP23008.
I don't get why people are so fascinated with shift registers when IO expanders are a thing...
@@jnharton MCP23017 can be controlled in both 8 and 16 bit modes.
@@CristiNeagu That’s interesting, haven’t read the datasheet in depth. My point was just that there were options.
@@CristiNeagu BECAUSE I2C is unreliable compared to SPI and Direct accessing Shift Registers. You will get to notice only if u have multi modules in to MC.
this video was full of knowledge😎❤🔥
Before watching, 2^3=8, so use the pin as binary. The con is, that it can work with LEDs, but not very good if the output needs to be precisely timed.
Thank you , great video 👍👍👍
11:44 great idea, do it please.
Is anyone getting device not found error while scanning QR code in esp rainmaker app,??
I used to use a cheap large 40 pin chip that was a large shift register and 32 outputs that could drive small relays.
Excellent video !! May God bless you !
1. This lacks 'I' in 'GPIO' ;)
2. This is not that 'unlimited', although we used an alike approach in order to get 96 outputs without issues.
3. Too slow, mostly useful for static LEDs or relay driving or alike, yet that is the limit.
I see u used the old V of arduino IDE, btw it work slow on my laptop, hello from Morocco 👋😊
Very well and clearly explained.
Excellent project, Make the project in ESP 01 as well. Do a project with multiple inputs. Thanks.
Can I use Esp01 in place of Esp32 with this code?
Yes
Just change the PIN number
I love this tutorial!! All your wiring diagrams are upside down though 🤣
Why don't you use SPI to control the shift registers and get rid of all that show code?
I love how you speak English !!!!
Damn, this video is clean and informative.
Jahanpanah tussi great ho 🙇♂️
🙌🏻🙌🏻
Wow that's awesome. Thanks indeed
Glad you liked it!
You might be able to get away with controlling multiple things with a MUX if you're using latch gates to hold them 'on' once they're going.
Still, I've been wondering about the shift register doingthis as well.
I want make audio 8 in 8 out matrix. Please make a helpful video about this.
I guess the only downside is that you can't use shiftreg to read analog signal like an analog demux can
good sean it on another vid but can you show how to take inputs from shift reg. so it can scan 8 inputs and show if one has changed? please
you need a parallel in serial out type of register.
@@duality4y thanks had that idea but would need software for reading the inputs then I can send it out to another SIPO reg
¡Guau! Que bien explicado todo. ¡Gracias por compartir su conocimiento!
Not a new idea, but there is a trick: try to order PCA9505, my favorite port expander, then see MOQ and lead time! Americans screw up badly going against Russia and forgot where raw materials are coming from, so "all american-made chips" actually made in Taiwan cannot be produced any more...
Does not matter if you are after Arduino-grade projects, but even Arduino (Atmega) chips where produced by Microchip and NOT available any more, all what is left is stock in some places. Unless something changes dramatically, we will end up using transistors...
As for some comments below, India has a lot of very good engineers as well as large hobby community.
very clear and concise video!
Sir please make a project that can control home appliances using NODEMCU ESP8266 with Manual, Blynk App, IR Remote, Alexa voice command, EEPROM. I am waiting for many months for this project. I hope you will upload video soon
can you do it - esp8266 with mcp23017
Just use a pca9685 you get 16 pwm capable gpio. Each 9685 has 4 i2c address sel bits so 0000 to 1111. That means 256gpio per i2c in theory.
And you can also use i2c mux which gives even more possibilities
Excellent explanation
Glad it was helpful!
Just Share it with others as well!!
dont use 595, use serial led driver , it the same logic, but every output have up to 70mA
Amazing explanation
It would be cool if it used i2c protocol, them it has to use only 2 pins for data communication. There is a small delay tho but it doesn't matter really because it is really small
Yes but it then takes up your I2C pins. It maybe better to bit bang the device and have another line for chip select. That way your clock and data lines can be connected to several devices.
Excellent project 👌
Thank you! Cheers!
I'm glad you have subtitles because you can't speak English. Thanks for the video. Maybe consider an accent neutralization course so we can understand you better.
I was made 512 pin harness tester device with mcp23017 with i2c connection with 8ch i2c multiplexer.
74XX595 is the worst choice, ns-level spike changes all outputs (ns:nanosecond)
Great tutorial, only the title is not accurate. The problem is that you can only use shift registers only for outputs. So it's not GPIO.
There is no such thing 'unlimited'. a) adress block/range is limited. b) MCU's flow capacity may not be capable of handling all of those requests fast enough.
I'm sure this would be very interesting to some but the title is a lye so ...
What you show is about adding digital output, not GPIO. GPIO does much more than just digital outputs. Title promesse you might present a chip that allows actual gpio extensions, and you don't deliver on that.
Hint : MCP23s17 ;c)
Yes we are waiting..............
Sir esp32 project use for smart home control 10 appliances with physical switch and with & without internet..... Arduino cloud iot.... Because there 10 devices in arduino cloud.... Shit register use 👏
How to join premium member I don't have credit card
I've been using the 74HC597 piso for a keyboard input. I've been needing a good explanation for how these work.
Doesn't work. Might help if a readable copy of the circuit diagram was provided.
Good explanation of shift registers, but this aint GPIOs (General Purpose Input Output). There is only output here, no input.
Shift registers won't get you unlimited GPIO. It will only get you outputs, but no inputs. Why not just use multiple MCP23017 IO expanders? That will give you true unlimited GPIO.
No, that's not true. You can cascade multiple hc165 with hc595 and have all the GPIOs you want, or only inputs or only outputs.
@@HelderParracho Ok, fair enough. MCP23017 is still the better choice.
@@CristiNeagu Better or not it really depends on your needs. MCP23017 is more expensive, harder to find in stock, much slower and more difficult to isolate. It might be a more compact solution though.
Hindi ka ek channel creat karo our same video usme bhi upload krdo.
Dekhte h, aisa kuch socha nai h abhi
A bit like a USB hub accepting eight inputs into one.
why are pin labels upside down? is this some kind of neck excercise community service? 🤣
It's okay. Give more videos like this
🤔🤔🤔🤔 what is the thing bro. I couldn't get the whole point. Can you please make a vedio that uses this shift register setup to control something more simpler & straight forward. Something like iot control
Sure.
I'll making a practical working project out of it
Even though I have used these ICs a lot of times but still I got to know some new information 👍
Glad to hear that
amazing
what is a GPIO and why is a pin on that register NOT a GPIO
Rapaz não entendi nada do que ele falou mais deu pra entender com a imagens
it's a bit of nagging, but it's not unlimited. Eventually you'll run out of frequency for your serial coms.
Indian videos usually are great. I've solved severa problems with them. But, but... Their pronuctiation is not very well 😅🥺. If only indias could improove their english, their videos would be sooo much better. I understan their mother thounge has different sounds than english. But it is just a friendly advice 😊👏🏻
Thx
another word for simultaniously is on some place "real time".
So.. no pwm
What's your views on MCP23017 ?
You just made outputs, not general purpose input and output
No shit the MUX will only control one-output at a time.
Just MUX to PsuedoDAC-R2R, problem solved, plebes
asking people to pause and comment for something you're about to explain is insulting. As if we don't realize we're watching a pre-recorded video or that comments help your channel. "jump through my hoop!" Just make good content and skip that.
kool
No
Plz meke video in hindi language bro ,