Here’s a way to expand the number of digital I/O lines on a port:
This is a JeePlug filled to the rim with tiny components and connectors. It’s based on a PCA8574A I2C 8-bit I/O expander. Each of 8 pins can be used either as inputs or as “mostly” open collector outputs. See the datasheet for details.
Here’s the bottom side of the plug:
Crowded indeed!
And here’s a demo sketch called “expander” which blinks the eight LEDs connected between PWR and the respective I/O pins:
As with yesterday’s example, this is running the I2C at maximum bit-banging speed, and seems to work fine. It’s used to make 8 leds blink:
The connector block on this plug has 8 sets of three connections: GND, PWR, I/O. Note that PWR is connected, not +3.3V. The reason for this is that I’d like to try driving a bunch of servos from this plug one day – it’ll load the JeeNode down a bit but it should be feasible.
The “expander” sketch has been added to the Ports library and is available asĀ ZIP file and in subversion.