5v down to 3.3v for 3.3v sensitive devices

Just a simple question

If I am using a 5v arduino and my sensor or device requires 3.3v for power + data lines what is the best way to do this?

Should one just use a voltage divisor with 2 resisters?

Should one use a 3.3v regulator for the power + 2 resisters for the data lines?

Should one use a 3.3 volt regulator for eveything?

Is there something else you should use?

I am just wondering as I have really only used the 3.3v line from Arduino + 2 resisters but is that a good method? Doesn't this waste energy as heat? Especially when running from battery power?

Chris

You need a regulator for 3.3v, but the Arduino's usually provide that. You can get by with a resistor divider for data lines in some cases, but a level converter is a better general choice.

wanderson: You need a regulator for 3.3v, but the Arduino's usually provide that. You can get by with a resistor divider for data lines in some cases, but a level converter is a better general choice.

Thanks for the advise, do you have a recommendation on a particular device?

I will do some searches myself now so I can get familar.

Cheers

Chris

This is a little expensive, but it is a good general purpose converter with eight channels; http://www.adafruit.com/category/products/395

There are many other options though.

I use this but it looks like they are out of stock.

You need a regulator for 3.3v, but the Arduino's usually provide that.

Only 50mA, may be enough for an SD card, but not enough for an XBee (for example).

I did one little breadboard project with a 3.3V GPS device, the only 3.3V device I have interfaced so far. I did it with an ATMega328P so I didn't have 3.3V from an Arduino.

As for power, I used this regulator which seems to have a good reputation, works fine, multimeter says it is spot on:

http://www.jameco.com/webapp/wcs/stores/servlet/Product_10001_10001_897188_-1

Now the nice thing is that the GPS could be interfaced to the INPUTs of the ATMega328P fine - 3.3V drives the inputs without any trouble, and the GPS itself needs no input, it starts sending data once it has it. So I was set there.

If you need to send output to a 3.3V device you need to use a level converter like the one mentioned above which seems to be bidirectional and intelligent and out of stock. As an alternate, there is this not quite as elegant solution:

https://www.sparkfun.com/products/8745

But it is now out of stock too. What gives with all these level converters out of stock?

May be you can did it yourself without waiting for stock. http://www.rocketnumbernine.com/2009/04/10/5v-33v-bidirectional-level-converter

Sometimes the better choice can be to run the whole system on 3.3V. Depends on the sensors and other devices involved.

When running on batteries, an Arduino is often not a great choice. For example, an Uno board will consume 3-4 times the current/power of just the ATmega328P microcontroller alone. That is a not criticism; after all, it is a development board, and that is the price paid for the convenience it provides. While the 328P can be put to sleep, and that is a great option for battery-powered applications, certain components on the Arduino board continue to draw power regardless. I would strongly consider a custom circuit design for a battery-powered application.