MyRoboPath
electronics12 min readUpdated 2026-03-10Beginner

Ohm's Law & Kirchhoff's Laws for Robotics Circuits

Master voltage, current, power calculations, and Kirchhoff’s Current/Voltage Laws (KCL/KVL) for sizing robotic motor drivers and logic rails.

Dr. Evelyn Carter
Dr. Evelyn Carter
Hardware Systems Lead

Key Engineering Takeaways

  • Ohm's Law (V = I * R) and Power formula (P = V * I = I² * R) dictate every component's thermal and electrical limits.
  • Kirchhoff's Voltage Law (KVL) ensures the sum of voltage drops across loops equals zero, crucial for multi-cell battery packs.
  • Kirchhoff's Current Law (KCL) governs current division at motor power distribution nodes.
  • Never use a pure resistive voltage divider to power high-current actuators—use active linear or buck switching regulators.
Prerequisites
  • Basic arithmetic
  • Basic understanding of electrical charge
Required Hardware / Tools
  • Digital Multimeter
  • Breadboard
  • Assorted Resistors (220Ω, 1kΩ, 10kΩ)
  • 5V / 12V DC Power Supply

Fundamental Electrical Relationships in Mobile Robotics

In any robotic system—from small educational rovers to industrial autonomous mobile robots—everything relies on three interrelated variables: **Voltage (V)**, **Current (I)**, and **Resistance (R)**. $$\text{Voltage }(V) = \text{Current }(I) \times \text{Resistance }(R)$$ $$\text{Electrical Power }(P) = V \times I = I^2 R = \frac{V^2}{R}$$ When motors spin under load, their internal coil resistance dictates stall current. If an internal resistance is $0.5\,\Omega$ at $12\,\text{V}$, the peak instantaneous stall current is: $$I_{\text{stall}} = \frac{12\,\text{V}}{0.5\,\Omega} = 24\,\text{Amperes}$$ Failing to calculate this will instantly destroy undersized motor driver MOSFETs or trip battery BMS overcurrent protections.
Stall Current ConsiderationAlways size motor drivers, trace widths, and fuses according to peak stall current, not nominal no-load current.

Kirchhoff’s Current & Voltage Laws in Action

### Kirchhoff’s Current Law (KCL) The algebraic sum of currents entering a junction (node) is equal to the sum of currents leaving the node: $$\sum I_{\text{in}} = \sum I_{\text{out}}$$ In a robot power distribution board (PDB), total current drawn from the main 3S/4S LiPo battery equals the sum of currents drawn by the single-board computer (Raspberry Pi/Jetson), motor ESCs, LiDAR, and microcontrollers. ### Kirchhoff’s Voltage Law (KVL) The directed sum of electrical potential differences (voltage) around any closed circuit loop is zero: $$\sum V = 0$$ KVL allows you to calculate trace voltage drops under high-load transients and evaluate whether logic components experience voltage brownouts.
power_budget_calculator.py
python
# Automated Python script to calculate robot power consumption and runtime
def calculate_robot_power(subsystems, battery_voltage_v, battery_capacity_mah):
    total_current_a = sum(subsystems.values())
    total_power_w = total_current_a * battery_voltage_v
    
    usable_capacity_ah = (battery_capacity_mah / 1000.0) * 0.85 # 85% safe discharge
    runtime_hours = usable_capacity_ah / total_current_a
    runtime_minutes = runtime_hours * 60.0
    
    print(f"=== ROBOT POWER ANALYSIS ===")
    print(f"Total Current Consumption: {total_current_a:.2f} A")
    print(f"Total System Power:       {total_power_w:.2f} W")
    print(f"Estimated Safe Runtime:    {runtime_minutes:.1f} minutes")

# Subsystem currents in Amperes at 12.0V
robot_subsystems = {
    "Raspberry Pi 5 (Active)": 1.8,
    "RPLiDAR A2M8": 0.45,
    "2x DC Motors (Average Cruise)": 2.4,
    "ESP32 + Sensors": 0.25,
    "RGB LED Signaling": 0.15
}

calculate_robot_power(robot_subsystems, battery_voltage_v=12.0, battery_capacity_mah=5200)

Voltage Dividers for Sensor ADC Interfacing

Microcontrollers like the ESP32 or STM32 have ADC inputs that can only safely measure up to **3.3V**. When measuring a 12V or 14.8V (4S LiPo) battery, a resistive voltage divider reduces the potential safely: $$V_{\text{out}} = V_{\text{in}} \times \frac{R_2}{R_1 + R_2}$$ For a maximum battery voltage $V_{\text{in}} = 16.8\,\text{V}$ (fully charged 4S) stepped down to $3.15\,\text{V}$: - Choose $R_1 = 43\,\text{k}\Omega$ - Choose $R_2 = 10\,\text{k}\Omega$ $$V_{\text{out}} = 16.8 \times \frac{10}{43 + 10} = 3.169\,\text{V} < 3.3\,\text{V} \quad (\text{Safe!})$$
Input Impedance RuleKeep total divider resistance around 10kΩ to 100kΩ. Too high increases ADC sampling error; too low drains battery continuously.

Frequently Asked Questions

Can I use a voltage divider to power my Raspberry Pi or motor driver?

No. Voltage dividers are only suitable for high-impedance voltage sensing signals. Under load, the current drawn alters the effective resistance and crashes the voltage. Use a DC-DC Buck Converter instead.

Why do my microcontroller inputs blow up when starting heavy motors?

DC motors generate inductive voltage spikes (back-EMF) and high-frequency noise that can spike backward into digital logic rails. Always use flyback diodes, optoisolators, and separate ground star-topologies.

Tags:#Electronics#Circuits#Ohm's Law#Power Budget#Voltage Divider