The article will be more of a guide on how to use Arduinos and I2C for expanding I/O ports. Read on to know more about this.
The article describes a very simple way to expand I/O ports using a couple of Atmega microcontrollers. This is a better approach than using an Arduino Mega because all smaller shields can be utilized at the same time.
The design may not be as cheap as using a multiplexer, shift registers, MuxShield or any other components, but it is quite simple and definetly is pocket friendly. This would be really useful incase a lot of ports are required. All that is needed is a couple of Atmega328 that have been lying around more quite some time.
The connections are very similar to that used for interfacing two Arduinos using I2C. The circuit allows the master Arduino to gain access over the I/O pins of the remote. This increases the actual I/O capacity. The I/O capacity can be further increased by adding more Arduinos in parallel to the existing circuit.
This setup helps to duplicate the processing capabilities. This enables software watchdogs to be added thus making it a crash-self-recover system.
A barebones Atmega can also be used instead of two ardunios and this would prove to be a much cheaper option.