Sensor de infrarrojos CNY70
Uno de los sensores más utilizados en robótica, o infinidad de aplicaciones industriales es el CNY-70.
Su nombre técnico es optoacoplador. Se basa en la acción conjunta de un diodo que emite una luz infrarroja (que no vemos) y un fototransistor que detecta el rebote de esta cuando incide sobre algún objeto.
Inicialmente es un sensor analógico y nos da un valor de voltaje proporcional a la luz rebotada, pero podemos utilizarlo también de manera digital. El transistor y el diodo hay que alimentarlo a través de una resistencia, el diodo del orden de Ohmios para dar una señal razonable y el transistor del orden de k para que trabaja en la zona activa.
Su funcionamiento es sencillo, si el receptor recibe la señal del emisor, el transistor conduce, por lo que recibiremos un '1' lógico en el Arduino:
Conocimiento previo
Programación básica de Arduino.Sentencia condicional if-else.Comunicación serie.
Objetivos
Conocer el manejo y aplicaciones del sensor CNY 70Realizar las conexiones necesarias sobre el sensor IR.Crear un programa para Arduino que obtenga la información proporcionada por el sensor.
Lista de materiales:
Placa Arduino.CNY 70Resistencias 10KOhmios (valor orientativo).Resistencia de 200 Ohmios (valor orientativo).Placa de pruebas.
Vamos a ver una demostración del funcionamiento del sensor:
Montaje 1220 detección linealínea blanca
El problema del CNY70 es que tiene los pines muy juntos que no se puede poner enmedioen medio de la placa protoboard, tenemos pues que utlizarutilizar dos opciones:
- Utilizar cables Dupond macho-hembra
- Ponerlo inclinado aprovechando que dos extremos de la diagonal tienen que estar conectados a 5V
Lo mejor es utilizar cables M-H pero si no se tienen, vamos a utilizar la segunda opción, este es el esquema:
Utilizaremos la Edubásica el led rojo, si no tienes, simplemente añade un led al pin 13 tal y como hicimos en Montaje 1 led parpadeante sin edubásica
El programa a cargar en el Arduino es:
https://create.arduino.cc/editor/javierquintana/9b8fc1a0-03fc-42d9-a85c-ca10e9f26588/preview
El resultado es:
/*
Talos Electronics
8-Noviembre-2015
Rafael lozano Rolón
*/
//Declaracion de variables
int sensor = 7; //ENTRA DIGITAL FACILMENTE ACCESIBLEE EN EDUBASICA
int Valor_cny70 = 0;
int Led=5;//LED ROJO DE EDUBÁSICA
// cambialo al 13 si no utilizas EDUBÁSICA
void setup()
{
Serial.begin(9600);
pinMode(sensor, INPUT);
pinMode(Led, OUTPUT);
digitalWrite(Led, LOW);
}
void loop()
{
Valor_cny70=digitalRead(sensor);
delay(100);//Esperar 100 ms
if(Valor_cny70==0)
{
Serial.print("Linea negra\n");
digitalWrite(Led, HIGH);
}
else//Si el valor del sensro es 1
{
Serial.print("Linea blanca\n");
digitalWrite(Led, LOW);
}
}
Y en el monitor serie sale:
Linea negra
Linea negra
Linea negra
Linea blanca
Linea blanca
Linea blanca
Linea blanca
Linea blanca
Linea negra
Linea negra
Linea negra
Linea ...