How do determine which resistor to use?

Do I need to know the voltage and current and what a particular LED is rated at or what a servo is rated at?

And that can be the hardest question for a beginner to understand, which devices require external current limiting resistors and which do not?

An LED is a current driven device and thus requires external means to control the circuit current to at or less then the LED's maximum continuous rated value. The fact that an led has a forward voltage drop rating (Vf) is what confuses begineers a lot as while it does have a specific voltage drop rating it is not wired up as a voltage operated device, it needs the circuit current to be limited to a specific value.

A servo is on the other hand a voltage driven device, you just provide it with it's rated voltage and it will itself control how much current it will draw which can vary significanlty depending if the servo is a rest with no mechanical load (maybe 10ma draw) or turning a large mechanical load where it might draw 1 amp.

So while a formula is nice it's still more important to determine if the formula even applies to what you are wishing to wire up. Ohm's law always applies but how it applies depends on what component you are talking about and how it is going to be used in a specific circuit.

So learning electronics fundamentals in not rule based so much as having to understand the basic physics behind electronic circuits and components.

So which of the following is voltage driven or current driven devices?

A simple switch
A DC motor
A incandescent lamp
A AVR microcontroller chip

Those are not easily answered by raw beginners to electronics, as we often meet here in this forum, and while what can be obvious to many of us can be a real roadblock to others that are first starting on building their first arduino projects.

There is a reason that electronics fundamental are taught in a very logical sequence starting on what is voltage, what is current, what is resistance, and how does ohms law relate these three together. Then basic components like resistors and switches and lamps are drawn into circuits where one can see the basic properties used together in actual simple circuits. It's learning by bootstraping rather then memorizing rules and formulas.

I suspect the problem is the LEDS are so often the first component a beginner is encouraged to wire up to a arduino board, probably because the software guys need something to show off their classic 'hello world by blinking" program to introduce one to learning to program (yep it's all the software guys fault). The problem is a LED is a semiconductor and as such is never a component to start out with when learning electronic fundamentals via the classic step by step progression of learning ohms laws, simple series and parallel circuits, etc.

An Arduino with all it's software libraries and project examples makes it almost too simple for people to advance too quickly then they maybe should and assumes that the beginners will pick up good electronics fundamentals as they proceed, as needed. But that is maybe just a grumpy old hardware guy talking about the good old days, it's certainly possible to use an arduino and build impressive stuff without really having to learn much about electronics, which is what probably a lot of people want rather then any formal learning in electronics.

Lefty