MQ-3 alcohol (ethanol) sensor module
MQ-3 alcohol vapour sensor module pinout, 5 V heater current, warm-up and burn-in, keeping AO under 3.3 V, and why it is a demo, not a breathalyser.
Community draft — report a mistake
3.3 V or 5 V? The heater needs 5 V. AO can reach about 5 V, so on ESP32 and Pico feed AO through a 10 kΩ / 20 kΩ divider to stay under 3.3 V. DO is driven from VCC — divide it on 3.3 V boards too.
The MQ-3 is a heated tin-dioxide sensor most sensitive to ethanol vapour (about 0.04–4 mg/L in air) and much less to petrol fumes and smoke. It’s the classic part for “drunk driving prevention” and breath-alcohol student projects.
Like every MQ sensor, it needs its heater at 5 V and about 150 mA, a 24–48 hour burn-in when new and a few minutes of warm-up after every power-on. The AO value is not calibrated: to turn it into mg/L you need the Rs/R0 curve from the datasheet and a known reference, which hobbyists rarely have. Treat it as “higher = more alcohol”.
Not a breathalyser. The reading depends on breath temperature, humidity, distance and how hard someone blows. It’s fine for a demo or an ignition-interlock project; it is not accurate enough to decide whether anyone is fit to drive.
Prices are indicative (Nov 2026) and vary by seller.
Pinout
| Pin | What it does |
|---|---|
VCC | 5 V supply — the heater draws about 150 mA |
GND | Ground |
DO | Comparator output: changes state when alcohol vapour crosses the pot setting |
AO | Analog output rising with alcohol concentration (0–~5 V) |
Use it with
Common errors
Reading jumps when you breathe on it with no alcohol
Warm, humid breath changes the reading on its own. Compare against a baseline breath taken without alcohol, and blow from a fixed distance (about 5 cm) for the same time.
Sanitiser in the room makes it read high for minutes
Hand sanitiser is mostly alcohol — that’s exactly what the MQ-3 detects. Ventilate and wait for the value to return to the clean-air baseline.
ESP32 ADC stuck at 4095
AO is above 3.3 V. Add the divider and use an ADC1 pin.