3 Wire Inductive Sensor and LeoStick

Introduction: 3 Wire Inductive Sensor and LeoStick

About: In a continuous learning process.

3 wire inductive metal sensor used with LeoStick. On Serial Monitor or Serial Plotter you will get indication if sensor is activated (close) or inactive (open).

Step 1: Parts List

Parts list:

- Arduino (or any compatible board; I am using an LeoStick for this project)

- 3 wire inductive metal sensor (I am using an Contrinex DW-AD-403-M5E 10-30 VDC 200mA PNP)

- External power supply 10-30 V for sensor (NOT SHOWN IN THIS PICTURES)

- LED (optional; I am using only for extra indication that sensor is working when activated)

- Voltage divider from 12V to 5V (made from one 15k and one 10k resistors)

- Wires

Step 2: ​Prepare Voltage Divider As Follow

- Solder 15k and 10k resistors together.

- Solder an wire same place where you solder the two resistors

Usage: 15k resistor free end will be input from sensor, 10k resistor free end will be ground connected to Arduino GND pin and external power supply GND; middle wire will be output to Arduino digital input pin (D2 in my case)

Step 3: Connect Sensor to Voltage Divider and Power Supply

- Connect sensor positive cable (brown in my case) to 10-30 V power supply

- Connect sensor negative cable (blue in my case) to power supply ground

- Connect sensor data cable (black in my case) to 15k free end of voltage divider.

Step 4: Connect LED (optional)

- Connect LED positive terminal to middle voltage divider wire

- Connect negative terminal to ground

In my case I've been using same external power supply for this LED due to extra 5V output.

Step 5: Upload Code to Arduino

- Upload code to Arduino

/* DigitalReadSerial Reads a digital input on pin 2, prints the result to the serial monitor/serial plotter

This example code is in the public domain.


// digital pin 2 has a PNP sensor attached to it.

int metalSensor = 2;

// the setup routine runs once when you press reset:

void setup()


// initialize serial communication at 9600 bits per second:


// make the sensor's pin an input:

pinMode(metalSensor, INPUT);


// the loop routine runs over and over again forever:

void loop()


// read the input pin:

int sensorState = digitalRead(metalSensor);

// print out the state of the sensor:



// delay in between reads for stability


Full Spectrum Laser Contest 2016

Participated in the
Full Spectrum Laser Contest 2016

Digital Life 101 Challenge

Participated in the
Digital Life 101 Challenge

Be the First to Share


    • Tinkercad to Fusion 360 Challenge

      Tinkercad to Fusion 360 Challenge
    • Leather Challenge

      Leather Challenge
    • Stone Concrete Cement Contest

      Stone Concrete Cement Contest



    6 years ago

    Thanks for the information!