Arduino. 6 Reflexivos CNY70

usando 6 sensores

El CNY70 es un sensor óptico infrarrojo muy compacto, de un rango de un alcance de menos de 5 cm, se suele usar para detectar un cambio en la reflectividad, contiene un emisor de luz (Fotodiodo) infrarrojo y un receptor (Fototransistor) en la misma direccion, son capaces de detectar la presencia de un objeto utilizando la reflexión del infrarrojo sobre el objeto, la reflexión consiste en cuando un rayo de luz que incide sobre una superficie es reflejado. Funciona así: El fotodiodo emite un az de luz, cuya intensidad está en función de la resistencia que se le conecte y la tensión a la que se alimente, El fototransistor se encarga de recibir ese az de luz cuando se refleja sobre alguna superficie, dependiendo de la cantidad de luz recibida el dispositivo envía una señal de retorno a Arduino.

Tenemos dos formas de leer el valor de retorno de estos sensores, digital y analogica, la forma digital solo tendriamos dos valores de retorno 0 y 1 dependiendo si el fototransistor está en estado de corte (baja intensidad de luz) o estado activo (alta intensidad de luz). De la forma analogica los valores de retorno van de 0 (estado de corte) hasta 1023 (estado activo).

Estos sensores soportan un máximo de 3.3 V, consulta el diagrama de conexión antes de hacer pruebas. Este ejemplo vamos a imprimir los valores de retorno de estos sensores empleando ambas formas de lectura:

 

Lectura Analogica

//Los sensores se conectan a los puertos analogico del 0 al 5, El sensor mas a la izquierda //debe ir al puerto 0 y asi susecivamente

int vectorCNY [ ] = { 0, 0, 0, 0, 0, 0 } ;      //Se inicializan los sensores en 0

 

void setup ( ){

Serial.begin(9600);   }   //Inicializa monitor serial

 

void loop ( ){

 

          for ( int i = 0; i < 6; i ++ )    //Lee los valores de retorno de los sensores desde los puertos analogicos 0 a 5

                vectorCNY [ i ] = analogRead ( i );  //este for no necesita { } por que solo lee la primera linea consecutiva

         for ( int i = 0; i < 6; i ++ ) { //Imprime en el monitor serial los valores leidos

               Serial.print ( vectorCNY [ i ] );

               Serial.print ( ‘   ‘ );  }

               Serial.print ( ‘ \n ‘) ;

          delay(3000);    // Espera 3000 milisegundos (3 segundos) y repite la lectura Lectura

 

 }   

 

 

Lectura Digital

//Los sensores se conectan a los puertos digitales del 2 al 7, El sensor mas a la izquierda //debe ir al puerto 2 en este caso

 

int vectorCNY [ ] = {2,3, 4, 5, 6, 7};   //Arreglo de cny70 con los pines a los que estan ligados

int leng_vectorCNY = 6 ; //Longitud del arreglo (numero de pines)

 

void setup() {

Serial.begin(9600);   //Inicializa monitor serial

 for (int i = 0; i < leng_vectorCNY; i ++) //Los pines son numerados de 0 a leng_vectorCNY-1

pinMode(vectorCNY[ i ], INPUT);        //cada pin se configura como entrada

}

 

void loop() {

 

          for (int i = 0; i < leng_vectorCNY; i ++) {    

              Serial.print(digitalRead(vectorCNY [ i ]  ));  //Imprime cada una de las lecturas de los pines

             Serial.print ( ‘  ‘ );  }   

         Serial.print(“\n”);

         delay(3000);  //Espera 3000 milisegundos y repite la lectura

}

 

Diagrama de Conexion:

Para ambas formas de lectura ( Analogica o Digital ) es necesario utilizar una resistencia de 47KΩ para no dañar el fotodiodo (tome la imagen de internet (^_^)!   )

 

 

 

 

 

2 comentarios en “Arduino. 6 Reflexivos CNY70

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s