A voltage source is a two-terminal device that maintains a specific electrical potential difference across its terminals regardless of the current drawn by the load, up to its physical limits. In a real circuit, it changes the behavior of the system by acting as the electromotive force (EMF) that dictates current flow through the load's resistance according to Ohm's Law ($I = V/R$). Think of it as a water pump that maintains a constant pressure regardless of how many valves you open, until the pump's mechanical limits are reached. The most common mistake makers and students make is confusing ideal voltage sources (a theoretical math construct with zero internal resistance and infinite current capability) with practical voltage sources (real-world batteries, USB ports, and power supplies that possess internal resistance and strict current ceilings). Another frequent confusion is mixing up Constant Voltage (CV) mode, where the source holds voltage steady and lets current vary, with Constant Current (CC) mode, where the source varies its voltage to force a specific current through the load.

The Math: Ideal vs. Practical Voltage Sag

To see why the 'ideal' model fails on the workbench, let's run a worked numeric example using a common 12V Sealed Lead-Acid (SLA) battery. On a multimeter with no load, this battery reads an open-circuit voltage ($V_{oc}$) of 12.6V. However, every real battery has Equivalent Series Resistance (ESR), or internal resistance ($R_{int}$). For a standard 7Ah SLA battery, $R_{int}$ is roughly 0.05 $\Omega$.

Worked Example: 12V SLA Battery Under Load
  • Open-Circuit Voltage: 12.6V
  • Internal Resistance ($R_{int}$): 0.05 $\Omega$
  • Load: 12V automotive heater element measuring 2.0 $\Omega$

If this were an ideal source, the current would be $I = 12.6V / 2.0\Omega = 6.3A$. But in reality, the internal resistance is in series with the load. Total circuit resistance is $2.0\Omega + 0.05\Omega = 2.05\Omega$.
Actual Current: $12.6V / 2.05\Omega = 6.14A$.
Voltage Sag: The battery drops $6.14A \times 0.05\Omega = 0.307V$ internally.
Terminal Voltage: $12.6V - 0.307V = 12.29V$. Your load only sees 12.29V, not 12.6V.

This voltage sag is why a car's headlights dim momentarily when the starter motor engages. The starter draws hundreds of amps, multiplying the tiny internal resistance into a massive voltage drop across the battery terminals. For a deeper dive into how these theoretical models map to real components, All About Circuits provides an excellent breakdown of source transformations.

Where You Meet Voltage Sources in Practice

You interact with practical voltage sources constantly, but they behave very differently depending on their chemistry and regulation topology:

  • USB Ports: Nominally 5V. A standard USB 2.0 port is a weak voltage source; it will sag heavily if you pull more than 500mA, and many PC motherboards will actively shut off the port (foldback current limiting) to protect the 5V rail.
  • Wall Adapters (Bricks): Unregulated 'wall warts' might output 14V at no load but drop to 12V at their rated 1A current. Modern switching adapters (like USB-C PD bricks) are tightly regulated and will hold 5V/9V/12V within $\pm$5% until they hit their current limit, then they drop to zero (hiccup mode).
  • Linear Regulators (LDOs): Devices like the LM7805 or AMS1117-3.3 act as localized voltage sources. They burn off excess voltage as heat to maintain a rock-steady output, but they require the input voltage to be at least 1.5V to 2V higher than the output (the dropout voltage).
  • Bench Power Supplies: Instruments like the Rigol DP832 or Korad KA3005P are highly precise, adjustable voltage sources that can seamlessly switch between CV and CC modes, making them indispensable for debugging.

The Decision Tree: Picking the Right Source for Your Build

Choosing the wrong voltage source topology leads to thermal runaway, brownouts, or wasted battery life. Use this decision matrix to terminate your design process with a concrete part selection.

If your requirement is... Then choose this topology... Concrete Part / Pick
Stepping 12V down to 5V at < 100mA (e.g., powering an op-amp or microcontroller sensor) Low Dropout Regulator (LDO). Cheap, zero switching noise, but inefficient at high current. AMS1117-5.0 or LM78L05 (TO-92 package)
Stepping 12V down to 5V at > 500mA (e.g., powering LED strips, servos, or Raspberry Pi) Synchronous Buck Converter. High efficiency (>85%), minimal heat, but introduces switching ripple. LM2596 module (hobbyist) or TPS5430 (custom PCB)
Need precise, adjustable lab testing with current limiting to protect prototypes Programmable Linear Bench Supply. Zero ripple, instant short-circuit protection. Korad KA3005P (~$75) or Rigol DP832 (~$400)
Need portable, high-current 12V for motors or inverters in the field 4S LiFePO4 Battery Pack. Flatter discharge curve than Li-ion, safer, handles high C-rates. 4S 12V 20Ah LiFePO4 with a 40A BMS

Practical Limits: The ESP32 Brownout War Story

The most common failure mode I see on the bench involves makers treating a weak voltage source as an ideal one, specifically when powering Wi-Fi microcontrollers. Let's look at the ESP32-WROOM-32.

The Hazard: The ESP32 draws a baseline of ~80mA, but during Wi-Fi transmission bursts, it spikes to ~500mA for milliseconds.

If you power an ESP32 dev board via a cheap, thin USB cable from a standard PC USB port, you are relying on a weak voltage source. A cheap 28AWG USB cable might have 1.0 $\Omega$ of total loop resistance. When the ESP32 pulls 500mA (0.5A), Ohm's law dictates a voltage drop across the cable: $V_{drop} = 0.5A \times 1.0\Omega = 0.5V$.

Your PC outputs 5.0V, but the dev board only sees 4.5V during the Wi-Fi spike. The onboard AMS1117-3.3 linear regulator requires a minimum input of about 4.5V to maintain a stable 3.3V output (its dropout voltage is ~1.2V). The regulator drops out, the 3.3V rail sags to 2.8V, and the ESP32 throws a brownout reset, endlessly boot-looping. The fix isn't to change the code; it's to upgrade your voltage source path. Use a heavy-gauge USB cable (22AWG or thicker) or power the board's 5V pin directly from a robust 5V 2A switching wall adapter. For a comprehensive guide on matching power supplies to microcontroller loads, refer to SparkFun's Power Supply Tutorial.

Frequently Asked Questions

Can I wire two identical voltage sources in parallel to double my current capacity?

No, not directly. Even if two batteries or power supplies are both labeled '12V 5A', minor manufacturing tolerances mean one will actually output 12.05V and the other 11.95V. The higher-voltage source will push current backward into the lower-voltage source, causing overheating or destruction. To parallel power sources safely, you must use ORing diodes (like the ideal diode controller LTC4357) to prevent backfeeding, or rely on a dedicated Battery Management System (BMS) that actively balances the cells.

What is a dependent (controlled) voltage source?

In circuit theory, a dependent source is one where the output voltage is determined by another voltage or current elsewhere in the circuit (e.g., $V_{out} = 5 \times V_{in}$). You rarely buy a 'dependent voltage source' as a standalone component; instead, this is the mathematical model used to describe how active components like operational amplifiers (op-amps) and transistors behave in small-signal analysis.

Why does my bench supply click and drop to zero when I short the leads?

Your bench supply is switching from Constant Voltage (CV) to Constant Current (CC) mode, or triggering its Over-Current Protection (OCP). If you set the current limit to 1A and short the leads, the supply cannot maintain 5V without pushing infinite current. It immediately drops the voltage to near-zero to hold the current exactly at your 1A limit. This is a feature, not a bug—it saves your traces from melting.

The Default Recommendation

While specific projects demand specific topologies, you should not overcomplicate your lab setup. If you are unsure what to use for general-purpose bench prototyping, default to a programmable switching bench supply like the Korad KA3005P (30V/5A). It covers 95% of hobbyist and student needs, provides adjustable current limiting to protect your prototypes, and eliminates the thermal waste and dropout issues of relying on fixed linear regulators for every test. Pair it with a heavy-gauge silicone wire kit, and you will eliminate voltage sag from your debugging workflow entirely.