In questo articolo andiamo a studiare il sensore IR (Obstacle Avoidance Sensor Module) facente parte del KIT sensori costituito da 37 unità che potete acquistare a questo link. Questo è un sensore infrarossi utilizzato per il rilevamento di ostacoli, in quanto dotato di un’emittente IR e un ricevitore IR che permetto così ad Arduino di segnalare la presenza di oggetti nel raggio di azione di questo sensore, che molti di voi conoscono anche con la sigla KY-032. Abbiamo già conosciuto questo sensore nell’articolo in cui abbiamo realizzato una Auto IR.
Specifiche
Il KY-032 è disponibile in due differenti versioni, che sono facilmente distinguibili dal chip che adoperano: NE555 e SN74LS00. Anche se dotati di differenti chip, il funzionamento è analogo, come pure i PIN, la tensione di lavoro e lo sketch con cui vengono programmati.
I Pin adoperati sono il Vcc, GND, OUT e EN, anche se nella versione con chip SNL74LS00 il PIN EN e GND sono invertiti. Come è facilmente intuibile, il Vcc permette di utilizzare sia i 3,3V che i 5V, mentre il pin OUT viene adoperato per il segnale digitale che il sensore invia alla dev-board a cui è collegato; tale segnale avrà valore solo di 0 e 1. Il pin EN (ENABLE) come pure il jumper verde, permettono di abilitare o disabilitare l’uso del sensore.
Sul modulo vediamo 2 potenziometri identificati come R5 e R6 che servono rispettivamente per la distanza e la frequenza (fino a 38kHz). La giusta calibrazione di entrambi vi permette di regolare la precisione del sensore, che tuttavia non va mai oltre i 3cm circa. Infine, sul PCB del modulo troviamo il PLED (power led) che indica la presenza di tensioni di alimentazione, e il SLED (sense led) che si accende quando viene rilevato un ostacolo.
Ciò che permette al sensore di funzionare sono l’emittente IRLED ( IR333-A) e il ricevitore IR (HS0038B3VM).
Collegamento
Il collegamento è semplicissimo: Vcc ai 5V, il GND a GND, OUT ad un qualsiasi pin digitale. Nel nostro esempio lo abbiamo collegato al pin digitale 13 di Arduino UNO.
Codice
Proprio come il collegamento, anche il codice per far funzionare il sensore KY-032 è estremamente semplice. Nel VOID SETUP impostiamo la direzione del pin 13 come input, mentre avviamo il monitor seriale.
pinMod (13, INPUT); Serial.begin (9600); Serial.println("Avvio KY-032");
Nel VOID LOOP procediamo alla lettura dal sensore ed a stampare su monitor seriale ciò che rileviamo:
int sensore = digitalRead(13); Serial.println (sensore);
Come detto prima, il sensore restituisce solo un valore tra o e 1, quindi adoperare una variabile intera è altamente indicato; se il sensore rileva un ostacolo darà valore 0, mentre se non viene rilevato nulla il valore sarà 1. Aprendo il plotter seriale dalla IDE di Arduino ecco cosa notiamo ogni volta che viene rilevato un ostacolo.