Hello, I am kind of newbie in arduino development and has a limited knowledge on electronic circuits. I'm using an arduino uno and a multiplexer shield to multiply its output.However, as you may know multiplexer shield losses the state when another port is selected. Is there any way to change the situation other then programing other microcontroller? For example, a relay or flip flop like a thing, that when I gave a signal to the multiplexer shields any port first time it goes high and second time I gave a signal to the same port it turns low?
Are you multiplexing outputs? If so, a serial-in/parallel-out shift register is a good solution for increasing the number of digital outputs.
An analog multiplexer isn’t a good solution for outputs for the reasons you have discovered.
I checked the shift registers concept and couple of data sheets. It's probably wouldn't work. I need to directly address which outlet I want to turn on and off.
sadoo: I checked the shift registers concept and couple of data sheets. It's probably wouldn't work. I need to directly address which outlet I want to turn on and off.
In general you do that by keeping track of which bits are on and which are off, then send all 8 bits each time. The effect is the same as controlling each bit individually.
If you need a mixture of input bits and output bits there is a device called an I/O Expander. You put it on the I2C bus.
Like John pointed out, you can really use a shift register and keep track of each bit state, changing ones you want. It's easy doing so declaring a byte variable that stores these bit states. You said that you checked some datasheets and didnt found it would work. Maybe because you checked non-latched shift registers? A non-latched one will just propagate each bit on the outputs, it means that when you update all the 8 bits, each output will flip LOW or HIGH accordingly the sequence of bits, this is true for shift registers like 74HC164. To avoid this you can use latched ones, like 74HC595 from arduino tutorial http://arduino.cc/en/Tutorial/ShiftOut . This way the output will be refreshed just after all the bits are set (or you can control this using the latch line), avoiding flickering the outputs.
I hope it helps
Thank you DanDare.
It will help definitely, but I solved it with programming and connecting 3 8051 micro-controllers. I know they are a little outdated but does the job.
Again thank you
Sometimes you have to wonder which universe communications? like that ‘last’ one came from
Gee just think… "Only 3 8051’s… I’m Glad it wasn’t serious… He Might have had to use a … “6502”…
but I solved it with programming and connecting 3 8051 micro-controllers.
It would do you more good to learn how to solve the problem correctly. This solution gives overkill a bad name.