Contrariamente a quelli ad ultrasuoni, il sensore di prossimità induttivo LJ12A3-4-Z BX riconosce la presenza di metalli anche nascosti.
Un sensore di prossimità induttivo è un tipo di sensore che può rilevare oggetti vicini fatti di metallo senza contatto fisico. Non rileva altri materiali,come legno, plastica, carta, quindi il sensore può rilevare oggetti metallici attraverso la plastica opaca. Il sensore è anche durevole e resistente allo sporco. Così, il rilevamento non è disturbato da spruzzi di polvere o terra sulla testa del sensore. Il sensore di prossimità LJ12A3-4-Z/BX può rilevare metalli alla distanza di 4mm con alta precisione.
Il sensore ha un piccolo LED rosso che mostra lo stato del rilevamento. Il LED è acceso quando viene rilevato del metallo. Il sensore è un sensore di prossimità di tipo NPN NO (normalmente aperto). Questo significa che quando non viene rilevato nulla il potenziale sul filo nero è alto.
Come funziona
I sensori di prossimità induttivi si basano sul principio della variazione di riluttanza che presenta un elettromagnete, quando nelle vicinanze si presenta un oggetto realizzato in materiale ferromagnetico. La comparsa di materiale ferromagnetico all’interno del campo magnetico, fa sì che il campo stesso si chiuda meglio, con conseguente abbassamento della riluttanza. I circuiti interni del sensore rilevano la variazione di riluttanza, e superata una certa soglia, fanno commutare il segnale d’uscita.
La sua tensione di funzionamento è >6-36V. Può essere usato con Atmega328p o Raspberry Pi, ma la tensione del segnale deve essere ridotta a 5V (Atmega328p) o 3.3V (microcontrollori Raspberry Pi/ESP) con un divisore di tensione, un convertitore/slider di livello logico o con l’uso di un fotoaccoppiatore (vedi sotto).
Il sensore ha una protezione contro l’inversione di polarità, una protezione contro i cortocircuiti. Il sensore è ampiamente utilizzato e può essere usato come un interruttore di fine corsa, soprattutto per una macchina CNC o una stampante.
Specifiche
- Tensione di esercizio: 6V – 36V DC
- Tipo di output: NPN, 3 fili, NO (normalmente aperto)
- Corrente di uscita: 300mA
- Distanza di rilevamento: 4mm
- Dimensioni:
- diametro vite – 12mm [0.47in]
- lunghezza vite – 63mm [2.48in]
- lunghezza cavo – 115cm [45.27in]
- Materiale: metallo e plastica
- Rilevamento oggetti: metallo
Connessioni
Il modulo del Sensore di Prossimità Induttivo LJ12A3-4-Z BX ha 3 pin. La piedinatura è mostrata nell’immagine seguente:
Collegamenti
Collegare il modulo con Atmega328p come indicato nel seguente schema di collegamento :
Nota: il circuito integrato nero al centro della breadboard è un fotoaccoppiatore PC817, e serve principalmente per proteggere Arduino ed il PI dalle correnti induttive che si vengono a creare nel sensore al riconoscimento dei metalli.
Codice di esempio per Arduino
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
float metalDetected; int monitoring; int metalDetection = A0; void setup(){ Serial.begin(9600); } void loop(){ Serial.println("Initializing Proximity Sensor "); Serial.println("Please wait... "); monitoring = analogRead(metalDetection); delay(100); if (monitoring < 250){ Serial.println("...Metal is detected"); } else { Serial.println("...Metal not detected"); } delay(1000); } |
Pilotare il sensore è molto semplice: dopo la taratura, impostata come valore fisso rispetto al valore analogico letto sul pin A0, Si sposta il sensore e… in base a tale valore di definisci se abbiamo riscontrato metallo.
Il risultato dovrebbe somigliare all’immagine seguente:
Codice di esempio python per Raspberry
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
import time import RPi.GPIO as GPIO #Pin of Input GPIOpin = -1 #Initialize the Input Pin def initialInductive(pin): global GPIOpin GPIOpin = pin GPIO.setmode(GPIO.BCM) GPIO.setup(GPIOpin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) print("Finished Initiation") print(GPIOpin) #Detect Metal def detectMetal(): if(GPIOpin != -1) state = GPIO.input(GPIOpin) if state: print("Metal not detected") else: print("Metal detected") else: print("Please Initial Input Pin") #Test Module try: if _name_ == '_main_': pin = 24 initialInductive(pin) while True: detectMetal() time.sleep(0.5) except KeyboardInterrupt: print('\nScript end!') |
Salvare lo script con il nome proximity.py. Per eseguire lo script, aprire il terminale nella directory in cui è stato salvato lo script ed eseguire il seguente comando: sudo python3 proximity.py.
Per fermare lo script premere Ctrl-C sulla tastiera.
Quanto costa?
E’ possibile acquistare un sensore di prossimità induttivo a circa nove euro. Per i nostri test abbiamo scelto il modello proposto da AZ-Delivery (6,29 euro + spese postali, che si azzerano per un ordine sufficientemente elevato).
Join our groups on Telegram…