Learning how to use I2C. I began with the need to drive lots of RGB LED's with an Arduino board. Arduino can easily power 6 PWM devices, which limits us to two RGB LED's. Obviously we need to be able to drive more, so John Foote recommended using I2C with a PCA9635. Each PCA9635 can drive 5 RGB LED's (16 normal LED's) and I2C allows for up to 127 devices. All things being equal, this would allow for 600+ LED's. Unlikely an Arduino could handle that number without serious tricks, but you get the idea.