To get at your question about if you can plug power directly to the pin with no resistor and have it always be high... yes, that does work.
When you have your microcontroller set to input mode you can treat the pin like there is a very large resistor inside. So using ohms law, V/R=I with V=3.3 and R=very large, lets say 10megohm gives you a current of 0.33 micro amps. The inputs are designed to act like such a high impedance so that it has a very small effect on anything externally.
Indeed, an approach would be, using the PWM capabilities of your controller. You can generate a PWM waveform by using the analogWrite() function.
Parameters for your function:
pin: the pin to write to.
value: the duty cycle: between 0 (always off) and 255 (always on).
So, if your duty cycle is 255 that means you will have 5V, for 3.3V duty cycle should be somewhere close to 168.
However remember that "On most Arduino boards (those with the ATmega168 or ATmega328), this function works on pins 3, 5, 6, 9, 10, and 11".
All you need to know about this matter, you can find here http://arduino.cc/en/Reference/analogWrite
Anyhow, don't forget that when dealing with LEDs - polarity is important and also you should (actually must) have a resistor in the circuit so that the current is limited.
Just one more thing - analogWrite, as you may already know, does not use the digital to analogue converter - it uses the PWM capabilities of you controller. This is just FYI :)
Regarding the issue that you mentioned "To avoid unnessesary power/heat (even if not too much)" as Olin mentioned above, run you LEDs at low currents.
For a standard LED 20mA would be the nominal value. However 20mA is the "recommended" maximum output for your controller outputs :)
Solution: If you think 15mA is OK for the LED and your planning on feeding it at 5V (from a digital output pin) and considering that the diode forward voltage is, as you said, 3.3V use this right here http://led.linear1.org/1led.wiz and you'll see that you're gonna need a 120 Ohm resistor :) A bigger value would lead to a less brighter LED and a smaller value to a brighter one, but keep in mind that a too low value resistor will lead to your controller port being... fried :)
Plan using a lot of LEDs? Try a LED matrix approach, either way I think that what you want is the resistor version, not the PWM.
Good luck and all the best, sorry for the rusty english,
Dan
Best Answer
Apart from Arduino Due, all Arduino's that I am aware of have an ATmega running @ 5V(DC). Check the Arduino product page Arduino Nano where it clearly states "Operating Voltage (logic level) 5V". Apart from that many Arduino boards have a 3V3 regulated output that can be used to supply an external circuit when required.
External circuit output voltage \$V_{OH}\$
When you attach a logic circuit to this 3V3 power rail, the outputs usually swing between near 0V to near 3V3 (unloaded) but you have to check the specific datasheet for exact voltages (usually called \$V_{OL}\$ and \$V_{OH}\$. It is clear from the above that any ATmega will have no problem recognizing a '0' signal, doubt comes with a logic '1'.
So the real question is: Does ATmega recognize 3V3 as a logic '1'? Again the answer is in the datasheet for the ATmega on your Arduino.
I didn't check all variations of ATmega that Arduino's come by, I picked the first datasheet I found: ATmega168. Chapter 29 has "Electrical characteristics". The symbols for "Input high voltage" you want to check are labeled \$V_{IH}\$ and there seems to be plenty of choice ( |1|2|3), but if you read carefully you'll notice that only the first two lines are relevant for GPIO pins on Arduino.
Input HIGH sensitivity \$V_{IH}\$ for Arduino's ATmega.
To answer your question: Will 3V3 logic outputs (or the regulated 3V3 supply rail) work with standard Arduino inputs?
And when attaching external circuitry:
Word of warning: Be aware that the controller pin must be configured as INPUT, otherwise you may exceed maximum current for the pin and you'll damage the controller. When experimenting it is safer to connect a \$330\Omega\$ resistor in series with the inputs.
Glossary
Let's throw in a short, slightly trivial glossary while I'm busy: