Hi,
I'm happy to finally announce my first Exhibition Post ;0)
Alright, its nothing shiny, its nothing great, but i think its a worthy newbie project somehow ;0)
Anyhow, to the description:
The PCF8574A (http://focus.ti.com/docs/prod/folders/print/pcf8574a.html) is an I2C I/O Expander which you can add with just two analog Pins to the Arduino. You can adjust the address of the chip with the three AN pins and so could add 8 PCFs or 64 digital IO Ports to the Arduino - with just two Pins used. Seems like a nice trade, doesnt it?
The thing just is that the output voltage is not high enough to drive LEDs in a large scale - even without any resistors my LEDs dont show much more than a quarter of their possible light. So i guess the whole chip is far more useful for attaching to buttons or driving other stuff.
Alright, back to the library. As it is right now its quite simple and missing a few important things - i try to add them later, so in the beginning it just has the most important functions included.
It also contains a small example app - nothing fancy but useful ;0)
The PCF8574 and the PCF8574A have different address ranges, so you can hook up 128 ports if you can get eight of each package.
Also, these ports can sink more current than they can source. If I read the datasheet of one manufacturer correctly, it can sink 50mA per pin, but only source 4mA per pin. Typical LEDs expect about 20mA at peak brightness and no more than that, so 50mA is plenty while 4mA is quite weak.
If you wire the LEDs from I/O through resistors to GND (and writing HIGH to the pin), you are asking the port to source the current. The light will be dim.
If instead you wire the LEDs from I/O through resistors to VCC (and write LOW to the pin), you are asking the port to sink the current. The light will be much brighter.
Hi, thanks for that info.. havent thought of this yet.. that IS quite nice for now my LEDs shine the way they are supposed to..
Well i gonna spend some more time on this library this weekend. I want at least to be able to call each pin directly or receive its data directly...
the r-networks were hacked in on the pin outputs (1k; but I would use 10k if I had them) and this allows the TI part to now function. it either works or does not and this made all the diff.
drove me nuts trying to figure it out. it was NOT an addressing of -a vs non-a chips; it was the pullups!