Sensore TCRT5000

 

Buongiorno a tutti! Nel post di oggi impareremo come utilizzare il sensore ad infrarossi TCRT5000. Lo abbiamo acquistato in versione con il chip integrato, in modo da essere utilizzato immediatamente.

 

 

LA LISTA DELLA SPESA
Ecco cosa useremo durante questa guida:

Una volta acquistati e spediti li riceviamo ed ecco come appaiono:

 

 

COME USARLO
Abbiamo selezionato il modello di TCRT5000 con il chip integrato in modo da non avere problemi di alimentazione di sorta.

 

Il chip ha 4 pin:

  1. Il primo e riservato all'alimentazione a 5 Volt.
  2. Il secondo pin è il GND.
  3. Il terzo è l'output digitale: ci restituirà HIGH se non rileva un ostacolo, viceversa ci restituirà LOW.
  4. L'ultimo risulta essere il pin analogico, che ritorna un valore, appunto, analogico e ci permette di conoscere la distanza di un oggetto opaco dal sensore.

Colleghiamo quindi l'alimentazione al pin 5 Volt, il GND del sensore a quello di Arduino. Riserviamo il pin A0 di Arduino al pin AO del sensore e il pin 13 della nostra board al pin DO del sensore.

 

 

CODICE ARDUINO

Ora come possiamo vedere il sensore ha due led integrati nel chip. Quello rosso rappresenta che il chip riceve alimentazione correttamente, quello verde invece si illumina nel momento in cui il sensore rileva un ostacolo.

Per apprezzare meglio il suo utilizzo, creiamo un piccolo sketch con il programma Arduino.
Apriamo l'editor e incolliamo il seguente programma:

int analogPin = 0;
int digitalPin = 13;

void setup() {
    Serial.begin(9600);
    pinMode(digitalPin, INPUT);
}

void loop() {
    Serial.print(analogRead(analogPin));
    if(digitalRead(digitalPin) == LOW) {
        Serial.println(" -> OSTACOLO");
    } else {
        Serial.println();
    }
    delay(200);
}

Analizziamo il codice passo passo.

int analogPin = 0;
int digitalPin = 13;

Questa parte ci serve per inizializzare i pin di Arduino a cui è connesso il sensore.

void setup() {
    Serial.begin(9600);
    pinMode(digitalPin, INPUT);
}

La funzione di setup come abbiamo detto in precedenza si occupa di istanziare il comportamento del pin digitale e della comunicazione seriale. Per la cronaca 9600 (bit al secondo) è la velocità di trasferimento che vogliamo ottenere dalla nostra scheda.
Utilizziamo il seriale per una ragione precisa: vogliamo avere un tempo reale la distanza che il sensore misura.

void loop() {
    Serial.print(analogRead(analogPin));
    if(digitalRead(digitalPin) == LOW) {
        Serial.println(" -> OSTACOLO");
    } else {
        Serial.println();
    }
    delay(200);
}

Il loop è la funzione che si occupa del lavoro vero e proprio. La prima riga è la cosiddetta firma del metodo.
Il comando Serial.print(analogRead(analogPin)) permette di stampare sulla porta seriale il valore della distanza che riceviamo dal sensore attraverso il pin analogico A0.
Per capire invece se incontriamo un ostacolo oppure no, ci affidiamo al pin digitale con:

digitalRead(digitalPin)

che ci restituirà un valore LOW nel caso in cui incontriamo un ostacolo. Viceversa riceviamo un valore HIGH.

 

 

CONCLUSIONE
Oggi abbiamo visto il sensore TCRT5000. Come vediamo non è molto complicato il suo utilizzo. Quattro pin, due per l'alimentazione e due per il rilevamento delle informazioni.
Semplice, efficace, immediato: come piace a Tux Maniacs.
Al prossimo post! 😉

Ps: il post è corto: siamo sotto esami. Questo passa il convento!

 

Dottore in Informatica. Appassionato di computer fin dal primo PC Olivetti con Windows 95 e la bellezza di 8 MB di RAM.
Utilizzatore Linux da 5 anni, credo profondamente nella filosofia open source.
Dopo tante distro provate sul mio fidato Toshiba, uso Fedora per lo studio e il divertimento.

4 risposte

  1. Grazie , una bellissima spiegazione .
    Appena posso la voglio mettere in pratica.

    • Emanuele Lovera - Blogger

      Ciao, grazie e te del commento. Felice che ti sia piaciuto.
      Emanuele

  2. Davide Mascarino

    Complimenti, bello ed interessante articolo....
    Siccome sono un pivello in materia, chiedo:
    sarei tentato di utilizzare questo sensore , per equipaggiare il nostro silos del pellet in geotessuto , in modo da poter capire a che altezza Interna si trova il pellet . (Tipo galleggiante)

    • Emanuele Lovera - Blogger

      Ciao Davide,
      certo che puoi farlo. Basta settare a dovere la distanza di attivazione (tramite la vite blu presente sul chip) e il gioco e' fatto! Nel momento in cui non ci sara' del pellet davanti al sensore, questo ti ritorna HIGH e vuol dire che ti tocca andare a riempire di nuovo il silos!
      Facci sapere come va!
      Emanuele

Lascia un commento