An inductive sensor uses a magnetic field to detect metallic objects. The magnetic field is created by a coil that conducts an electric current. By putting a metallic object in the magnetic field, the magnetic field is influenced which can be detected by measuring the change in induction of the coil.
Inductive sensors need metal in the object you are trying to detect otherwise the magnetic field in the coil is not influenced. So detecting glass, ceramics, plastic, wood or smilar is not possible. On the other hand, the non conductive material is not influencing the sensor which makes it usable in moist and dusty situations.
Component information
Merk : LEFIRCKO
Product Nr : LJ12A3-4-Z/BX
Specifications
- Measures the object at a distance of 4mm +10%
- Input voltage : 6V - 36V
- Output type : NPN, NO
- Connection : 3 wire
Typical application for Arduino
The sensor is connected to the connector J1. The Arduino label is connectoed to an Arduino digital input pin.
R1 is a pull up resistor making sure that the signal is pulled up to 5V when the sensor is not detecting any metallic object. When sensor detects a metallic object, the output pin is pulled to ground.
R2 is added to limit the currect running from the sensor to the Arduino.
Arduino sample code
//Declare pin assignment //Induction sensor uses pin 6 as input #define INDSENSORPIN 6 void setup() { //Initialize serial port Serial.begin(9600); //Set input or output modes for the used ports. //LED_BUILTIN is a standard pin assignmet for Arduino for the LED on the board. It uses pin 13. This pin is set to output pinMode(LED_BUILTIN, OUTPUT); //The sensor pin is set to input as we need to read the value of the pin. pinMode(INDSENSORPIN, INPUT); //Let the user know setup is done through the serial port Serial.println("Setup done"); } void loop() { //Input is low = active so we need to check if the port is equal to zero. if (digitalRead(INDSENSORPIN) == 0) { //The input is low so metal is detected //Let the user know we detected it through the serial port Serial.println("detection = 1"); //Swith the LED on the Arduino board on digitalWrite(LED_BUILTIN, HIGH); } else { //Let the user know no cap is detected through the serial port Serial.println("detection = 0"); //Switch the LED on the Arduino board off digitalWrite(LED_BUILTIN, LOW); } }