Research On Inductive Proximity Sensors

From Open Source Ecology
Jump to: navigation, search

Inductive proximity sensors are circuits that maintain a oscillating magnetic fields while sensing the reluctance of the circuit through the voltage amplitude of the oscillation. The magnetic fields induce eddy currents in proximate ferrous materials. Since eddy currents create opposing magnetic fields, reluctance in the sensor circuit (which contains a coil) increases.[1]

Inductive proximity sensors are sorted by sensing range, which depends on field strength and field frequency. They come in normally-closed (NC) versions and normally-open (NO) versions with PNP or NPN switching. NC, NO, PNP and NPN defines the wiring interface but is not relevant to the sensing itself.[2]

Assessment Matrix Results on Inductive Sensing

Sensor weighs ~45 grams and is most often placed near print head. The added moving weight is regarded as the major drawback of that bed probe solution, as compared to the others. Other factors that help comparison with other sensors:

  • Non-invasive sensing
  • Does not detect glass surface
  • Does not detect through tip of tool head
  • Works without adding motors
  • Requires signal filtering (normally done by Schmitt trigger within ready-made sensor unit)
  • Price/unit: $3
  • Very easy to build bed probe from
  • Repeatability is good
  • Works with aluminum bed without glass (too low sensing range). Ferrous metal bed gives good enough sensing range for having glass bed above it.
  • There are detailed instructions available
  • Smartfriendz, Bq and Printrbot all use inductive sensing.
  • Less sensitive to bed irregularities than capacitive sensing.

General how to guides

Thomas Sanladerer's video

Models

LJ12A3-4-Z/BX

Sourcing

Supplied by Folgertech here.

Wiring

3 wire, NPN, NO

Needs to be supplied 6-36 V. This means we might need to build a voltage divider to interface with RAMPS logic. Some reports having gotten 6 V sensors to work by feeding them the Arduino's 5 V [3], so we should try that first.

The most robust solution has been published by Kostas Karouzos in a Youtube comment. It's not possible to link to youtube comments directly, but this link will at least place the comment at the top of the comments section of the video.

Hi. I am using an LJ12A3-4-Z/BX.(NPN, NO). I powered it from 12 Volts. Tried both the resistor voltage divider and the regulator and they both work.
However, the high value isn't exactly 5 Volts, and the LED on the sensor is always on, a little darker when the sensor is not triggered. (That has no functionality effect, I just don't like it)
The reason why that happens is because the sensor's output is actually open collector, and the only thing sourcing 12 Volts to the output when the sensor is not triggered is the led circuit, which also has a  10k resistor. 
A better solution to interface the sensor to the board is to use just a diode, like this:
- brown wire to 12 Volts,
- blue wire to Gnd
- black wire to the cathode of the diode
- anode of the diode to the processor input
- internal pull-up enabled! 
Any diode would work, I used a 1N4148. 
Now the processor 'sees' 5Volts for high and ~0.6Volts for Low (diode forward drop), which is perfectly safe.
And the LED turns on only when the sensor is triggered! 
Schematic:
BROWN ---------- 12V
BLACK -----|<--- uP
BLUE ----------------GND

Other solutions are presented in this forum thread, Thomas Sanladerer's video, in the video comments and University of Alabama course material (bottom of document).