Pages Menu
TwitterFacebook



BANNER1_ALT

Posted by on Oct 8, 2014 in Sensores analógicos | 0 comments

QRE1113 Tarjeta sensor siguelineas ADC

QRE1113 Tarjeta sensor siguelineas ADC

MÓDULO DE SENSORES QRE1113 CON ARDUINO

 

Este tutorial servira para probar el sensor siguielineas con sensores QRE1113. El mismo funciona para cualquier configuracion de sensores QRE1113/QRE1114 o inclusive CNY70 u otros similares que sean analógicos.

En nuestra tienda virtual puedes encontrar varios de esos sensores pero para este tutorial utilizaremos la siguiente tarjeta:

 

http://hetpro-store.com/arduino/shield-sensores/modulo-de-sensores-qre1113-sigue-lineas.html

 

qre1113

Módulo de sensores QRE1113 de 8 canales.

 

Puedes descargar el esquematico y boardfile de esta tarjeta en Eagle o PDFs:

https://github.com/HeTpro/SigueLineas-SMSL0208-QRE1113-eagle2

 

El codigo lo puedes descargar desde github:

https://github.com/HeTpro/SigueLineas-SMSL0208-QRE1113-c/tree/master

 

O copiar y pegar de final del tutorial.

CONEXIONES:

 

Modulo Sigue-Lineas

Módulo sigue-lineas conectado con Arduino UNO

Siguelineas conexiones

Módulo sigue-lineas conectado con Arduino UNO

 

 

Las conecciones entre el sensor y el arduino solo se realizan de la siguiente manera, como se observa mantienen una similitud en nombres, el Vcc va a 5V por que el ADC esta referenciado 5V en el arduino por defecto:

  • Vcc – 5V
  • GND – GND
  • A2 – A0
  • A3 – A1
  • A4 – A2
  • A5 – A3
  • A6 – A4
  • A7 – A5

 

CODIGO EXPLICACIÓN:

 

El codigo es muy sencillo, esta basado en uno de los ejemplos que hay en el IDE de Arduino para le ADC para leer el QRE1113. Para comenzar declaramos variables para guardar los datos del ADC, las mismas las dejamos como sx y sbx, siendo “x” los numeros de los canales de ADC. En el setup vamos a configurar el serial a 9600 pero lo pueden cambiar al valor que ustedes quieran.

 

int s2,s3,s4,s5,s6,s7;
int sb2,sb3,sb4,sb5,sb6,sb7;
void setup() {
  Serial.begin(9600);
}

 

Vamos a leer el canal A0 al A5 que corresponden al sensor 2  a 7 QRE1113 con la instrucción analogRead de Arduino, al leer asignamos el valor leido a cada una de las variables previamente declaradas, recordando que el ADC del ATmega tiene 10 bits de resolución por lo que tendremos que hacer algo para enviar los datos por el puerto serial debido a que el mismo es de 8 bits.

 

  s2 = analogRead(A0);       
  s3 = analogRead(A1);
  s4 = analogRead(A2);
  s5 = analogRead(A3);
  s6 = analogRead(A4);
  s7 = analogRead(A5);

 

Re-mapeamos o cambiamos de rango los datos, basicamente se puede ver como una división, o una regla de tres para dejar el valor maximo de 1023 a 255, tambien funciona si truncamos los 2 bits menos significatimos y le damos corrimiento a la izquierda, pero Arduino nos ayuda al hacerlo con una sola instruccion “map”.

 

  sb2 = map(s2, 0, 1023, 0, 255);   
  sb3 = map(s3, 0, 1023, 0, 255);
  sb4 = map(s4, 0, 1023, 0, 255);
  sb5 = map(s5, 0, 1023, 0, 255);
  sb6 = map(s6, 0, 1023, 0, 255);
  sb7 = map(s7, 0, 1023, 0, 255);

 

Por ultimo enviamos los datos por el puerto serial de cada uno de los QRE1113, OJO en este caso la instrucción print va a enviar el caracter correspondiente al numero, esto es muy practico cuando queremos visualizar los datos pero es mucho menos eficiente que enviar los datos con el comando write. Nuestra recomendación es utilizar el write y enviar los 2 bytes para poder enviar la resolución maxima.

 

  sb2 = map(s2, 0, 1023, 0, 255);   
  sb3 = map(s3, 0, 1023, 0, 255);
  sb4 = map(s4, 0, 1023, 0, 255);
  sb5 = map(s5, 0, 1023, 0, 255);
  sb6 = map(s6, 0, 1023, 0, 255);
  sb7 = map(s7, 0, 1023, 0, 255);

 

A continuación se muestra como es que se debe de ver la información en una termina, en este caso la terminal de Arduino.

Terminal Arduino

Terminal Arduino

 

 

CODIGO COMPLETO

 

//HETPRO
//WWW.HETPRO.COM.MX
//CONTACTO@HETPRO.COM.MX
//LICENCIA CREATIVE COMMONS SHARE ALIKE
//QRE1113 8 ch

int s2,s3,s4,s5,s6,s7;
int sb2,sb3,sb4,sb5,sb6,sb7;
void setup() {
  Serial.begin(9600);
}

void loop() {
  s2 = analogRead(A0);       
  s3 = analogRead(A1);
  s4 = analogRead(A2);
  s5 = analogRead(A3);
  s6 = analogRead(A4);
  s7 = analogRead(A5);
 
  sb2 = map(s2, 0, 1023, 0, 255);   
  sb3 = map(s3, 0, 1023, 0, 255);
  sb4 = map(s4, 0, 1023, 0, 255);
  sb5 = map(s5, 0, 1023, 0, 255);
  sb6 = map(s6, 0, 1023, 0, 255);
  sb7 = map(s7, 0, 1023, 0, 255);
  

  Serial.print(" A2=" );                       
  Serial.print(sb2);   
  Serial.print(" A3=" );                       
  Serial.print(sb3);
  Serial.print(" A4=" );                       
  Serial.print(sb4);
  Serial.print(" A5=" );                       
  Serial.print(sb5);
  Serial.print(" A6=" );                       
  Serial.print(sb6);
  Serial.print(" A7=" );                       
  Serial.print(sb7);
  Serial.println("...");   

  delay(100);                     
}

Post a Reply

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *