From time to time, Yoctopuce support receives questions from customers who do not quite know what to do with the three wires coming out of a PNP or NPN sensor. This week, we are going to tell you how these NPN and PNP outputs work, how to connect them, and with which modules.
NPN and PNP interfaces
This type of NPN or PNP output is widespread in the industrial world. It's used for example in proximity sensors, but you can also find them in more exotic sensors such as bubble sensors. These outputs provide binary (ON/OFF) information, and not an analogical value. You therefore find them mostly in detectors rather than in measuring devices.
A few proximity sensors equipped with NPN or PNP outputs
These outputs have three wires with standard, although counter-intuitive, colors:
- Brown: Power supply, usually 12 to 24V
- Blue: Ground
- Black: Signal
PNP or NPN, there are always these three wires: blue, black, and brown
How this type of output works is relatively simple: the sensor acts as a simple switch.
PNP outputs
When a sensor with a PNP output is activated, it puts into contact the signal wire with the power supply wire. The voltage on the signal wire therefore changes to the value of the power supply voltage. It has the advantage of being very simple, but you can't really choose the signal output voltage.
How PNP outputs work
NPN outputs
NPN outputs work the other way around. When the sensor is active, it puts into contact the output wire with ground. Which means that it doesn't inject current in the output wire. Therefore, for the change to be detected, someone has to put some voltage on the wire. It's the job of a pull-up.
How NPN outputs work
A pull-up consists simply in connecting a signal line to any voltage with the help of a resistance. In our case, when the sensor is idle, the signal line is at the pull-up voltage and when the sensor is active, voltage goes to zero. Note, a resistance is compulsory. If you directly connect the signal line to the voltage source, there is going to be a short-circuit as soon as the sensor puts together the signal wire and ground. The typical value of a pull-up resistance is 4.7kΩ. In the case of Yoctopuce modules, you don't need to add an external resistance: pull-ups are embedded in the modules.
The pull-up principle
The advantage of NPN outputs is the possibility to choose an arbitrary signal voltage. Note that an NPN output works in the opposite way to a PNP output: signal goes to zero when the sensor is active.
Use with Yoctopuce modules
You can use essentially three types of Yoctopuce modules to easily interpret an NPN or PNP outputs and to exploit them by USB. They are the Yocto-IO, the Yocto-PWM-Rx, and the Yocto-Knob.
The Yocto-IO, the Yocto-PWM-Rx, and the Yocto-Knob
The Yocto-IO
The Yocto-IO and its big brother the Yocto-Maxi-IO-V2 are the perfect interfaces to read a PNP or NPN output. However, as these modules cannot provide more than 5V, you'll probably need an external power supply to power your sensor.
What you have to do is:
- To configure the Yocto-IO for an external power supply
- To connect ground (-) of the external power supply and the sensor blue wire on the module ground
- To connect the (+) of the external power supply and the sensor brown wire on the external Power (pwr) input
- To connect the black wire on the channel of your choice
- To configure the corresponding channel as input
- If you use an NPN sensor, you must also configure the corresponding input in "open drain" mode to enable the internal pull-up. In the opposite, if you use a PNP sensor, disable open drain.
Connecting to a Yocto-IO
The Yocto-PWM-Rx
The Yocto-PWM-Rx can also read an NPN or PNP output. It measures a 0% duty-cycle when the input is zero and a 100% duty-cycle when the input is 1. It even has a pulse counter enabling to precisely count the number of transitions happening in a given time frame. It can count tens of thousands transitions par second. However, its reaction time to detect a modification of the duty-cycle from 0 to 100%, and from 100 to 0%, is relatively long, in the order of one second. That's why one can use it to count objects passing ahead of a sensor, even if they are very fast, but one can't use it to know exactly when an object is front of the sensor. As with the Yocto-IO, you need an external power supply for your sensor.
The NPN sensor:
To interface an NPN sensor with a Yocto-PWM-Rx, you need:
- To connect ground (-) of the external power supply and the sensor blue wire on the module ground
- To connect the (+) of the external power supply and the brown wire of the sensor together
- To connect the black wire on the channel of your choice and the on the corresponding pull-up (PU) input
Connecting an NPN output to a Yocto-PWM-Rx
The PNP sensor:
To interface a PNP sensor with a Yocto-PWM-Rx, you need:
- To connect ground (-) of the external power supply and the sensor blue wire on the module ground
- To connect the (+) of the external power supply and the sensor brown wire together
- To connect the black wire on the channel of your choice
Connecting a PNP output to a Yocto-PWM-Rx
The Yocto-Knob
The Yocto-Knob is a cheap solution, which works with NPN outputs but not with PNP ones. There as well, you need an external power supply. To connect an NPN sensor to a Yocto-Knob, you need:
- To connect ground (-) of the external power supply and the sensor blue wire on the module ground
- To connect the (+) of the external power supply and the sensor brown wire together
- To connect the black wire on the channel of your choice
Connecting an NPN output on a Yocto-Knob
Note, the Yocto-Knob is much less expensive than the Yocto-PWM-Rx or the Yocto-IO and there is a reason for this: the Yocto-Knob is not an isolated module. You must therefore ensure that the external power supply of the sensor and that of the Yocto-Knob can share the same ground and that they are powered from the same phase. Otherwise, you have a high risk of blowing a few components.
Conclusion
As a conclusion, here is a little table explaining the main differences between all four device when used for interfacing NPN ou PNP outputs.
Yocto-IO | Yocto-maxi-IO-V2 | Yocto-PWM-rx | Yocto-Knob | |
---|---|---|---|---|
PNP | ✔ | ✔ | ✔ | - |
NPN | ✔ | ✔ | ✔ | ✔ |
Channels | 4 | 8 | 2 | 5 |
Latency <1s | ✔ | ✔ | - | ✔ |
Counters | - | - | ✔ | ✔ |
Isolation | ✔ | ✔ | ✔ | - |
Here you are, you know everything. You can now buy sensors with an NPN or PNP output knowing that you can interface them with Yoctopuce modules.