The standard potentiometer value for Arduino analog inputs is 10kΩ linear (marked B10K). To verify a potentiometer before wiring it to your microcontroller, measure across the two outer lugs for total resistance (expect 10kΩ ±20%), then measure from the center wiper to an outer lug while rotating the shaft to confirm a smooth sweep from 0Ω to 10kΩ. Using the correct resistance and taper prevents erratic ADC (Analog-to-Digital Converter) readings and ensures your code maps the physical rotation accurately.
Multimeter Setup and Probe Placement for Pot Testing
Before testing, you must configure your digital multimeter (DMM) correctly and isolate the component. Testing a potentiometer while it is still wired to a powered or unpowered breadboard will yield wildly inaccurate results due to parallel resistance paths.
- Dial Position: Ohms (Ω) / Resistance.
- Lead Jacks: Black lead to
COM, Red lead toVΩmA(orVΩ). - Range: Auto-ranging preferred. If manual, set to the 20kΩ range for a standard 10kΩ pot, or 200kΩ for a 100kΩ pot.
Safety Category (CAT Rating): Because Arduino and ESP32 potentiometer circuits operate at low-voltage DC (5V or 3.3V), a CAT I or CAT II rated multimeter is perfectly adequate. You are not measuring mains voltage here. Never wire a standard carbon-track potentiometer directly to 120V/240V AC mains to dim a load; they are not rated for mains isolation and will cause a fire or shock hazard. Use a TRIAC-based dimmer module for AC loads.
Probe Placement by Test Point:
- Total Resistance (Lugs 1 & 3): Place one probe on the left outer lug and the other on the right outer lug. The center wiper (Lug 2) is ignored for this measurement.
- Wiper Sweep (Lugs 1 & 2): Place one probe on an outer lug (Lug 1) and the second probe on the center wiper (Lug 2). Rotate the shaft fully counter-clockwise, then slowly sweep it clockwise while watching the meter display.
Expected Readings: Good vs. Bad Potentiometer Values
A standard carbon-composition potentiometer has a manufacturing tolerance of ±20%. This means a '10kΩ' pot might legally measure anywhere from 8kΩ to 12kΩ out of the box. Below is the data-dense reference table for evaluating a 10kΩ linear (B10K) potentiometer.
| Test Point / Action | Expected Good Reading | Failing / Bad Reading | Failure Mode / Diagnosis |
|---|---|---|---|
| Total R (Lug 1 to Lug 3) | 8.00kΩ to 12.00kΩ | < 7.5kΩ, > 12.5kΩ, or OL | Resistive track degraded, burned out, or wrong value pot installed. |
| Wiper Min (Lug 1 to 2, fully CCW) | 0Ω to 5Ω | > 50Ω | Dirty wiper contacts or end-stop mechanical failure. |
| Wiper Max (Lug 1 to 2, fully CW) | Matches Total R (±20%) | Significantly lower than Total R | Wiper is not reaching the end of the carbon track. |
| Wiper Mid (Lug 1 to 2, 50% rotation) | ~5.00kΩ (Linear taper) | ~1.5kΩ or ~8.5kΩ | Wrong taper installed (Audio/Log 'A' taper instead of Linear 'B'). |
| Contact Noise (Wiggle shaft at 50%) | Stays within ±10Ω of mid | Spikes to >100Ω or reads OL | 'Scratchy' pot. Wiper is losing physical contact with the track. |
Common Measurement Mistakes and Misleading Readings
Even with a perfectly calibrated Fluke or Brymen meter, operator error can make a good potentiometer look dead, or a dead one look fine. Watch out for these three bench pitfalls:
Never measure resistance while the potentiometer is soldered or plugged into a breadboard. If your Arduino circuit includes a 10kΩ pull-down resistor wired in parallel with your 10kΩ potentiometer, your multimeter will read 5kΩ ($R_{eq} = \frac{R_1 \times R_2}{R_1 + R_2}$). Always remove the component from the circuit, or at least lift one leg off the breadboard, before testing resistance.
1. Finger Contact Resistance: When holding the small body of a 9mm breadboard potentiometer, your fingers might bridge the metal casing or the outer lugs. The human body has a resistance of roughly 10kΩ to 100kΩ depending on skin moisture. If you touch both outer lugs while measuring a 100kΩ pot, your body creates a parallel path, and the meter will read artificially low. Hold the plastic body or use alligator clips.
2. Confusing Taper Codes (A vs. B vs. C): Potentiometers are stamped with a letter indicating their taper. B10K is Linear (resistance changes at a constant rate). A10K is Audio/Logarithmic (resistance changes slowly at first, then rapidly). If you use an A10K pot for an Arduino joystick or motor speed dial, the first 70% of your physical rotation will only yield 20% of your ADC range, making the control feel completely unresponsive. Always verify the stamp reads 'B' for linear microcontroller inputs.
3. Ignoring the 'Scratch' Test: A potentiometer might read a perfect 10kΩ total resistance, but if the wiper is oxidized, it will cause erratic jumps in your Arduino serial monitor. While measuring Wiper Min or Wiper Mid, physically tap the shaft with your screwdriver handle. If the meter display jumps wildly or flashes 'OL' (Open Loop), the pot has internal contact bounce and will ruin your ADC data.
Translating Measured Resistance to Arduino ADC Codes
Once you have verified the potentiometer is healthy, you must understand how its resistance translates into the digital numbers your microcontroller reads. A potentiometer wired to an analog pin acts as a variable voltage divider. The microcontroller doesn't measure resistance; it measures the voltage at the wiper pin (0V to 5V on a 5V Arduino Uno, or 0V to 3.3V on an ESP32).
However, the source impedance (the total resistance of your pot) drastically affects ADC accuracy, particularly on modern 3.3V boards.
| Microcontroller | ADC Resolution | Max Recommended Pot Value | Why This Limit Exists |
|---|---|---|---|
| Arduino Uno (ATmega328P) | 10-bit (0-1023) | 10kΩ (Up to 50kΩ usable) | Robust internal sample-and-hold circuit. High impedance causes minor lag but rarely crashes the reading. |
| Arduino Nano 33 IoT / Mega | 10-bit to 12-bit | 10kΩ | Similar to Uno, but higher resolution makes noise from high-impedance tracks more visible in the lower bits. |
| ESP32 (ESP32-WROOM-32) | 12-bit (0-4095) | 2kΩ to 5kΩ (Max 10kΩ) | The ESP32 ADC has a notoriously low input impedance and non-linear response. High resistance pots cause the internal sampling capacitor to undercharge, resulting in readings that max out around 3000 instead of 4095. |
| Raspberry Pi Pico (RP2040) | 12-bit (0-4095) | 10kΩ to 50kΩ | Excellent ADC front-end. Can handle higher impedance pots, but 10kΩ remains the standard for low noise. |
The ESP32 ADC Gotcha: If you are migrating a project from an Arduino Uno to an ESP32 and your 10kΩ potentiometer readings seem to 'compress' or cap out at roughly 2.4V (ADC value ~3000), the issue is the RC time constant of the ESP32's internal sampling circuit. The Espressif ESP-IDF ADC documentation notes that high source impedance prevents the internal sample-and-hold capacitor from fully charging during the brief sampling window. To fix this without changing hardware, add a 100nF ceramic capacitor between the wiper pin and GND to act as an external charge reservoir, or switch to a lower value 2kΩ or 5kΩ linear potentiometer.
By combining proper bench verification with an understanding of your specific microcontroller's ADC impedance requirements, you eliminate the most common hardware causes of jittery, compressed, or non-linear sensor data. Always test the raw analog values in your serial monitor before writing complex mapping logic in your sketch.






