Arduino - Calculating Resistance
Think of it this way, the ESP8266 can be modeled as a resistor, but it does not have a fixed value. Does the power draw from the ESP8266 stay constant, NO! You can think of it as a variable resistor. The supply rail for the ESP8266 needs to stay constant, if it isn't constant, then bad things can happen like latchups or bad calculations. If you look at the figure below, the resistance will be about 3.3V if you have a 3Ω resistance but if the resistance of R2 goes to 6Ω then the voltage between the resistors will no longer be +3.3V. The regulating resistor needs to change with the resistance of the loading resistor.

So what can you do? The loading resistor needs to vary with the current of the microprocessor to keep it at a constant 3.3V. There are these things called transistors that can function as a variable resistor (when people invented transistors, they got really excited). We give the transistor a reference voltage to track and an op amp (there are lots of transistors in an op amp) in negative feedback to keep the transistor at the right resistance to keep 3.3V across the loading resistor.

There is something even better, people invented IC's that have all this in the same package, its called a voltage regulator. They even make fancier versions of a voltage regulator that make the "control" resistor switch on and off millions of times a second to give the right voltage, these are called step down DC to DC converters.







simulate this circuit &ndash; Schematic created using CircuitLab