ARDUINO: Sensor TCRT5000



Ahora la práctica de sensores analógicos será censar con el sensor TCRT5000 el cual es un sensor infrarrojo, estos sensores son usados en los seguidores de líneas para distinguir del color blanco y negro.

Los valores de estos sensores nunca serán iguales aunque sean hechos por la misma empresa, un sensor puede dar el valor de 800 y otro de 900 cuando detecten el color blanco, aclaro que esto es un ejemplo.

Materiales:

  • 1x Arduino

  • 1x Resistor de 10KΩ

  • 1x Resistor de 220Ω

  • 1x Sensor IR TCRT5000

  • 1x Protoboard

  • Jumpers

Esquema de montaje

En nuestro caso nosotros utilizamos resistencias de 10kΩ y 220Ω pero se pueden cambiar los valores para conseguir diferentes resultados. El diagrama mostrado a continuación es de un QRB1114 ya que el programa no cuenta con el TCRT5000.  

 
 

Referencia de conexiones del sensor TCRT5000

El sensor se conecta en modo pull-down, también se puede usar como digital pero esta vez lo empleamos como analógico, al hacer la conexión como pull-down creamos un divisor resistivo y obtenemos un valor dependiendo de cuanta luz recibe del emisor, y todo esto se envía al pin análogo A0 de nuestro Arduino.

Código

El código es bastante simple, definimos el pin A0 como entrada, creamos una variable del tipo entero para almacenar los datos del sensor. En el setup inicializamos el pin como entrada y cargamos el serial para visualizar los datos.

En el loop usamos analogRead y ese valor lo almacenamos en la variable valor, usando el Serial.println imprimimos el valor que nos arroja el sensor además el  “color” que ve, lo cierto es que no ve ningún color, sino que el blanco o negro refleja más o menos luz IR del emisor que llega al fototransistor.

Después, por medio de una condicional if y un valor de comparación random en este caso 800, se identificará de qué color se trata, si es menor de 800 imprimirá que es blanco, en otro caso será negro.

#define TCRT A0

int valor;

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

}

void loop() {
  valor = analogRead(TCRT);
  Serial.print("Valor: ");
  Serial.print(valor);
  Serial.print(" | Color: ");
  if (valor < 800) {
    Serial.println("Blanco");
  } else {
    Serial.println("Negro");
  }
  delay(500);
}