Skip to Content

FZ0430 voltage sensor module with Arduino-based PLC: wiring and sketch

Reading DC voltages up to 25 V on M-Duino with a resistive voltage divider module
June 18, 2026 by
FZ0430 voltage sensor module with Arduino-based PLC: wiring and sketch
Joan F. Aubets - Industrial Shields

The FZ0430 is a resistive voltage divider module that scales DC voltages up to 25 V down to the 0–5 V range readable by an Arduino analog input. Connecting one to an Arduino-based PLC gives you direct voltage monitoring with no additional signal conditioning — useful anywhere you need to track DC bus voltage, battery state, or panel output without breaking the circuit.

This post covers the module specifications, wiring to an M-Duino PLC, and a working Arduino sketch that converts the raw ADC reading to the actual measured voltage.

FZ0430 voltage sensor module

FZ0430 specifications

ParameterValue
Input voltage range0–25 V DC
Output voltage range0–5 V
Voltage divider ratio5:1 (R1 = 30 kΩ, R2 = 7.5 kΩ)
Supply voltage3.3–5 V
InterfaceAnalog output (SIG pin)

The module applies a fixed voltage divider: Vout = Vin × R2 / (R1 + R2) = Vin / 5. Reversing this in the sketch gives the actual input voltage: Vin = Vout × 5.

FZ0430 voltage sensor module schematic and pinout

Requirements

  • Arduino-based PLC with analog inputs (M-Duino 21+, 42+, 58+, or Ardbox Analog)
  • FZ0430 voltage sensor module
  • Arduino IDE with the Industrial Shields board library installed
  • DC voltage source to measure (battery, bus, panel output — max 25 V)

No additional libraries required.

Wiring

The FZ0430 has two sets of connections: signal pins (VCC, GND, SIG) for the Arduino side, and screw terminals (VIN+, VIN−) for the voltage being measured.

FZ0430 pinM-Duino connection
VCC5 V pin
GNDGND
SIGI0.12 (analog input, pin A0)
VIN+Positive of the voltage source
VIN−GND / negative of the voltage source

Do not exceed 25 V on the VIN+ terminal. The VIN− terminal must share the same ground reference as the M-Duino.

FZ0430 voltage sensor wiring connection to Arduino PLC

Arduino sketch

The sketch reads the SIG output, converts it to voltage, then applies the divider ratio to recover the actual input voltage. Adjust DIV_RATIO if you calibrate against a reference meter.

// FZ0430 voltage sensor — Arduino-based PLC
// Reads DC voltage up to 25 V on M-Duino analog input

#define SENSOR_PIN   A0      // I0.12 on M-Duino
#define DIV_RATIO    5.0     // FZ0430 divides input voltage by 5
#define NUM_SAMPLES  50      // Samples to average per reading

void setup() {
  Serial.begin(9600);
}

void loop() {
  long sum = 0;
  for (int i = 0; i < NUM_SAMPLES; i++) {
    sum += analogRead(SENSOR_PIN);
    delay(2);
  }
  float avgADC = sum / (float)NUM_SAMPLES;

  // M-Duino 0–10 V input: full ADC range (0–1023) = 10 V
  float vout = (avgADC / 1023.0) * 10.0;

  // Recover actual input voltage using the divider ratio
  float vin = vout * DIV_RATIO;

  Serial.print("Vout: ");
  Serial.print(vout, 3);
  Serial.print(" V  |  Vin: ");
  Serial.print(vin, 3);
  Serial.println(" V");

  delay(500);
}

The FZ0430 outputs 0–5 V for a 0–25 V input. On the M-Duino 0–10 V analog input, this uses roughly half the ADC range (ADC ≈ 512 at Vin = 25 V). For tighter resolution on a known voltage range, add a software calibration factor against a reference meter.

Industrial use cases

DC voltage monitoring with the FZ0430 applies to a range of field instrumentation tasks:

  • Battery state monitoring — track 12 V or 24 V battery voltage on UPS and backup systems
  • DC bus monitoring — watch inverter and drive DC bus voltage for out-of-range conditions
  • Solar panel output — measure open-circuit and operating voltage per string
  • Generator output verification — confirm DC output is within spec before connecting to load
  • Power supply health — log voltage drift over time as an early indicator of PSU degradation

For AC voltage measurement, a dedicated AC voltage transducer with 4–20 mA output is the appropriate choice. The FZ0430 is DC only.

Running this on Industrial Shields hardware

The M-Duino and Ardbox families from Industrial Shields are programmable controllers built on original Arduino boards — the same hardware and IDE you are already using. M-Duino PLCs (21+, 42+, 58+) are DIN-rail mounted controllers based on the Arduino Mega, with industrial-grade I/O protection, 12–24 VDC power input, and relay, analog, and digital I/Os ready for panel installation. The Ardbox series brings the same industrial hardening to a more compact form factor based on the Arduino Leonardo.

Both families run standard Arduino sketches without modification. The FZ0430 example above works as-is — wire the module to the analog input, upload via the Arduino IDE, and the PLC reads and reports voltage inside an IP20-rated enclosure ready for industrial cabinet installation.

​Search in our Blog

FZ0430 voltage sensor module with Arduino-based PLC: wiring and sketch
Joan F. Aubets - Industrial Shields June 18, 2026
Share this post
Tags

Looking for your ideal Programmable Logic Controller?

Take a look at this product comparison with other industrial controllers Arduino-based. 

We are comparing inputs, outputs, communications and other features with the ones of the relevant brands.

PLC Comparison