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
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'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)
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.
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 RU-vid video of that would you Mr Driscoll? Everyone with a phart smone has got at least one RU-vid 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
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.
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?
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.
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!)
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.
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.
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'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.
Yaar Agar English me samajhna itna hi asan hota to seedhe Kisi Gore ki video dekh len ham. Tumhari video kyun dekhe. Agar ham Indians ki help karna hai to please Hindi English ko mix karke bataya karo. Aur point ki chize Hindi me hi bolo. Thank you 😊
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
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.
Don't take it wrong, but it'd be nice to put a little effort on pronouncing english better. The strong indian accent makes it very hard to understand these, otherwise, great videos.
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.
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 👏
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 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...
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.
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.
🤔🤔🤔🤔 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
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.