Sensor de infrarrojos CNY70 como entrada analógica. Test

siguelineasEl sensor CNY70 puede utilizarse como entrada digital, como vimos en el artículo anterior o como entrada analógica. En el caso de entrada digital el sensor puede distinguir entre dos colores. En el caso de entrada analógica, el sensor devuelve valores entre 0 y 1023, como cualquier otro sensor conectado a una entrada analógica de Arduino.

El siguiente programa está preparado para que se pueda  comprobar, a través del puerto serie de Arduino, los valores que devuelve éste en función del color de la superficie u objeto al que esté orientado el sensor.

Una vez conocidos qué valores devuelve el CNY70, se podrán diseñar otros programas que puedan distinguir diferentes colores.

Se podrá observar que los valores devueltos por el sensor varían sensiblemente en función de la distancia que haya entre el sensor y la superficie u objeto sobre el que esté orientado. Por eso, para tener una medida más precisa de los valores, se aconseja colocar el CNY70 de forma que la distancia entre él y la superficie sobre la que se desea determinar el color permanezca constante.

Éste es el código:

/*
CNY70 test para emplear este sensor como entrada analógica

Programa que utiliza el sensor infrarrojos CNY70 como entrada analógica y comprueba los valores analógicos
devueltos por el sensor en función de los colores a los que se oriente el sensor

Por Julio Megía, http://www.tecnosefarad.com liberado para la comunidad 

This example code is in the public domain
*/

float val;             

 
void setup() {
Serial.begin(9600);   // Se incializa el puerto serie de Arduino
}
 
void loop() {
  val = analogRead(A1); // la variable val toma el valor del sensor que se conectará a la entrada analógica A1
  Serial.println(val);  // muestra por el puerto serie el valor de la variable val
  delay(500);  // esperamos medio segundo antes de hacer una nueva medida. Este valor puede cambiarse
}