You require a resistor with an LED, regardless of the voltages used.

Put simply, an LED is a semiconductor junction device. A semiconductor junction device always has a voltage drop, but doesn't have any internal resistance.

In other words, it will drop a specific amount of voltage in a circuit, but it will not affect the current flow.

Using Ohm's law, we know that I=V/R - the current is the voltage divided by the resistance. We have a known voltage - the supply voltage, 5V. Semiconductor junction devices have no resistance, so the resistance is 0.

Simple maths: I=V/R = 5/0.

What is 5 divided by 0? It's a bang, that's what.

Anything divided by 0 is infinity. That's infinity amps being drawn out of the Arduino IO pin - the pin that can only supply up to 40mA. Poor pin.

So you *have* to add some resistance to make up for the lack of resistance in the LED.

So remember kids - an LED with no resistor is like a short circuit.