Introducción
En esta publicación vamos a explicar cómo funcionan los sensores PNP. El concepto PNP es algo que encontramos frecuentemente en cualquier parte del entorno industrial, por ejemplo, cuando tenemos que seleccionar un detector de tres hilos o una fotocélula, y especialmente cuando diseñamos esquemas y cableado.
Todas las entradas de los controladores PLC de Industrial Shields se basan en la conexión PNP.
Este concepto podría ser un poco confuso, especialmente al comienzo de la carrera profesional del usuario. Pero a la larga, al pensar en estas palabras, el usuario ya tiene claro el concepto correspondiente a este tipo de sensores.
Detalles técnicos
Los sensores PNP se basan en transistores de unión: dispositivos electrónicos que conmutan y amplifican corrientes eléctricas.
Un transistor PNP controla el flujo de corriente principal alterando el número de agujeros en lugar del número de electrones en la base. Gracias a su bajo coste, fiabilidad y pequeño tamaño, los transistores se han convertido en uno de los mayores inventos del siglo XX.
Básicamente, necesitamos saber que la entrada que llega a nuestro PLC basado en Arduino es positiva (+).
Principales diferencias entre PNP y NPN
En primer lugar, debemos tener en cuenta que una de las principales diferencias está en el diseño del circuito interno y el tipo de transistor que tienen los sensores.
Como podemos ver en los esquemas anteriores, la principal diferencia entre ambos sistemas es que PNP proporciona al PL industrial una entrada positiva, mientras que NPN proporciona una negativa.
Además, el PNP es más común en Europa, mientras que la NPN se usa en Asia. Debido a este hecho, los sensores PNP son más fáciles de encontrar en Europa porque hay más stock..
Algunos dispositivos con conecciones PNP
Inductive sensor Capacitive sensor Photocell sensor
Ejemplo de programación con Arduino IDEPLC Arduino para la automatización industrial utilizado: ARDBOX-ANALOG
En este ejemplo, imprimiremos en el monitor en serie cuando un sensor digital de fotocélula detecte cualquier movimiento.
void setup() {
Serial.begin(9600);
}
void loop() {
bool state = digitalRead(I0.0);
//send message to port series in function of the readed value
if (state == HIGH)
{
Serial.println("Detection");
//here will execute the actions
}
delay(1000);
}