ModuLab logo ModuLab Build • Play • Explore
Classroom Login Register

Device Note - Potentiometer Module

A rotary potentiometer module is a variable resistor on a small breakout board. Turning the knob changes the resistance between its wiper and one end terminal, which changes the voltage on the output pin from near-zero to near-supply.

In This Lesson

Device Note - Potentiometer Module

What It Is

A rotary potentiometer module is a variable resistor on a small breakout board. Turning the knob changes the resistance between its wiper and one end terminal, which changes the voltage on the output pin from near-zero to near-supply.

Why It Is Used

Potentiometers give a smooth analogue input — a continuous range of values rather than just on or off. They let students explore how a physical action (turning a knob) maps to a number inside the microcontroller.

Pin Overview

This module uses a 3-pin header:

  • VCC — supply voltage (3.3 V or 5 V)
  • GND — ground
  • OUT — analogue output (wiper voltage, varies with knob position)

Connection in this course:

  • OUT -> PA6 (ADC1 channel 6 on the Bluepill)

Control Behavior

  • The output voltage tracks knob position from ~0 V (fully anticlockwise) to ~VCC (fully clockwise).
  • The STM32 ADC converts this to a 12-bit number: 0–4095 counts (pot_raw).
  • The firmware also reports a percentage: 0–100% (pot_percent).
  • Command GET_POT returns both values.
  • Both values stream automatically in the compact USB telemetry frame every 120 ms.

Wiring Rules

  • Use 3.3 V for VCC so the ADC input stays within the STM32's safe analogue input range (0 V to VDDA = 3.3 V).
  • Keep the signal wire away from motor supply wires if a motor driver is also connected.
  • No pull-up or pull-down resistor is needed — the wiper drives the ADC pin directly.

Common Failure Modes

  • Wrong VCC (5 V instead of 3.3 V) — pot_raw pegs at 4095, may stress the ADC input.
  • Wiper pin swapped with VCC or GND — reads fixed 0 or fixed 4095.
  • Loose connection on OUT — ADC floats and gives unstable readings.
  • Knob at an extreme mechanical stop — normal; pot_raw will be 0 or near 4095.

Classroom Notes

  • Let students turn the knob while watching pot_raw change live in the watch strip — the immediate feedback makes ADC values feel real.
  • Ask students to predict what value they expect before turning, then check.
  • Relate pot_percent to real-world controls: speaker volume, heating thermostat, light dimmer.
  • A good early automation exercise: use pot_percent as a condition threshold — e.g. "if pot is above 50%, turn green LED on".

Integration With This Course

  • Pairs well with Lesson 3 (Commands, Modes & State) when introducing analogue input alongside digital GPIO.
  • Pairs well with Lesson 10 (Automation Tool & Control Logic) — use {pot_percent} as a live variable in automation conditions and text expressions.
  • Telemetry keys: pot_raw (0–4095), pot_percent (0–100%)
  • Automation variable tokens: {pot_raw}, {pot_percent}