I2C run off of resister regulated supply ok?

http://www.sparkfun.com/products/9418 This is powered off of 3.3 v, but in my application, daisy chained with 2 other i2c devices it would be inconvenient to get the 3.3 pin off the UNO. Can I just feed this with the 5 v supply all my other I2C devices are fed with and put a resister in to drop the voltage? What size would work? It only uses 10 uA. And runs at 1.4 - 3.6 v. If I aimed at 2 to be safe? Thanks.

I’m no electrical engineer, but I know one. What you need is a voltage divider. It’s two resistors. I watched him calculate the resistor values by hand one time, so it shouldn’t be too hard. I’ll let you do the Googling.

BTW, interfacing w/software on the computer ??

I see where a voltage divider would work to connect the 3.3 v sensor pin to the 5 volt Uno, but what about actually powering the sensor... ?

To make everything reliable you should use a voltage regulator to provide 3.3v for your I2C device.

Things are going to get difficult when you try to connect SCL and SDA from your 3.6v MAX chip to the 5v Arduino. The SCK shouldn't be too bad since it is always from the Arduino to the chip and a voltage divider can to drop the signal voltage. The problem is the SDA pin which is bi-directional. You can't just throw in a voltage divider because then the 3.3v chip might not be able to drive the Arduino input.

Good luck.

Thanks, i'll switch to a different sensor...

You can convert the bi-directional data signal's voltage level with two transistors or FETs. Try searching for level shifting schematics. But you can't power anything off a resistor or voltage regulator.

Wait, wait, wait. Just read the datasheet.

3.3v will be above the threshold for logic high, and completely out of the “gray area”.

Section 29.1.9

Whoops, that's the 168. I'll check the 328 next...

Yes but the 3v3 device's input will be being pulled up to 5v and that will kill it.

So why not run SDA and SCL both at 3.3v?

You need to hack into the library and not enable the internal pull up resistors.

Can’t you just pinMode them as INPUTs and write LOW?


Yes if you are not using the I2C library buti suspect you are.