Está en la página 1de 22

EL sensor de distancias GP2D120

(c) Domingo Llorente 2010 1


Caractersticas del sensor

 Salida analgica (Vo)


 Alimentacin a +5v
 Rango efectivo de medida de 4 a 40 cm
 Tiempo tpico de respuesta 39ms
 Retardo tpico de comienzo 44ms
 Consumo medio 33mA

(c) Domingo Llorente 2010 2


Diagrama de bloques

 El sensor calcula la distancia midiendo el ngulo de reflexin recibido

Diagrama de bloques

(c) Domingo Llorente 2010 3


Curva de
respuesta

 La respuesta NO es lineal

 Es necesario utilizar algn


mtodo de interpolacin

 El sensor NO da lecturas
fiables por debajo de 4cm.

(c) Domingo Llorente 2010 4


Mtodos de interpolacin

 Experimental. (Realizando lecturas de tensin en funcin de la


distancia).

 Interpolacin lineal. Mtodo de la recta punto pendiente.

 Interpolacin lineal. Mtodo de los mnimos cuadrados.

 Interpolacin polinmica.

(c) Domingo Llorente 2010 5


Interpolacin experimental (no recomendable)

 Realizar experimentalmente lecturas de tensin del sensor


colocando un objeto a distancias conocidas.

 Cuantas ms lecturas realicemos mejores resultados obtendremos.

 Luego guardar los resultados en dos tablas.


float V[n]={0.3 ,0.4 ,0.5 , }; // Valores de tensin
float D[n]={40.0 ,30.0,25.8, }; // Valores de distancia

 En tiempo de ejecucin para cada lectura de tensin del sensor


consultaremos el valor ms prximo almacenado en la tabla V[n] y
su valor de distancia asociado en D[n].

(c) Domingo Llorente 2010 6


Interpolacin lineal. Recta punto pendiente

 El mtodo de la interpolacin lineal consiste en tomar dos lecturas,


parejas (Tensin,distancia). (x1,y2),(x2,y2)

 Con dos puntos se puede calcular matemticamente la ecuacin de


la recta que pasa por dichos puntos:

(y-y1)=m(x-x1) donde m=(y2-y1)/(x2-x1)

 Al resolver la ecuacin tendremos una funcin que nos devolver


el valor de la distancia en funcin del valor de tensin que nos da el
sensor.

 Si tomamos N medidas podemos calcular las ecuaciones de N-1


rectas y as sustituir la curva NO lineal por un conjunto de rectas
conocidas.
(c) Domingo Llorente 2010 7
Interpolacin lineal. Recta punto pendiente
Tomando 7 puntos vamos a
convertir la curva de respuesta
no lineal del conversor en 6
rectas.

Nota: Vamos a considerar como eje X el


valor de tensin y como eje Y el valor de
distancia para sacar las ecuaciones y=f(x),
es decir, distancia=f(tensin);

(c) Domingo Llorente 2010 8


Interpolacin lineal. Recta punto pendiente
Aplicando la ecuacin de la recta
cada dos puntos obtenemos:

R1) y= 12 3x
R2) y= 16 5x
R3) y= 21 8.57x
R4) y= 32.32 19.35x
R5) y= 41.53 31.81x
R6) y= 60.45 68.18x

Donde:
y= Distancia en cm
x= Tensin Vo del sensor GP2D120

(c) Domingo Llorente 2010 9


Interpolacin lineal. Recta punto pendiente
Ahora ya solo queda programar las ecuaciones en CCS:

voltios=5.0*valor_adc/1023;
if(voltios <=3.00 && voltios >2.00) dist=12.00-3.00*voltios; // Tramo R1
if(voltios <=2.00 && voltios >1.40) dist=16.00-5.00*voltios; // Tramo R2
if(voltios <=1.40 && voltios >1.05) dist=21.00-8.57*voltios; // Tramo R3
if(voltios <=1.05 && voltios >0.74) dist=32.32-19.35*voltios; // Tramo R4
if(voltios <=0.74 && voltios >0.52) dist=41.53-31.81*voltios; // Tramo R5
if(voltios <=0.52 && voltios >0.30) dist=60.45-68.18*voltios; // Tramo R6
printf(lcd_putc,\fVsal:%f,voltios);
printf(lcd_putc,\nDist:%f,dist);

(c) Domingo Llorente 2010 10


Interpolacin lineal. Mnimos cuadrados

(c) Domingo Llorente 2010 11


Interpolacin lineal. Mnimos cuadrados (II)
Se trata de encontrar la
ecuacin de la recta que
pase, lo ms cerca
posible, de todos los
puntos.

(c) Domingo Llorente 2010 12


Interpolacin lineal. Mnimos cuadrados (III)

Completamos la tabla con los valores tomados de forma experimental


(c) Domingo Llorente 2010 13
Interpolacin lineal. Mnimos cuadrados (IV)
La recta buscada es:

Y=0.935x + 0.36

En nuestro caso:
Podramos fijar grupos
de tres o cuatro puntos
de la grfica del sensor
y calcular las
ecuaciones de las
rectas por este mtodo

(c) Domingo Llorente 2010 14


Interpolacin Polinmica.
Base matemtica:
Dados N puntos del plano siempre existir un polinomio de orden
N-1 que pase por dichos puntos.

Para dos puntos: p1 y p2 existe un polinomio de grado 1 (recta)


que pasa por los dos. Y=ax+b

Para tres puntos: p1,p2 y p3 existe un polinomio de grado 2


(parbola) que pasa por los tres. Y=ax2+bx+c

El mtodo consiste en plantear las N ecuaciones con N incognitas


para calcular los valores de a,b,c,

El mtodo consigue polinomios que suavizan las curvas entre los


puntos pero suelen ser inestables segn vamos subiendo de orden
y el clculo se complica.
(c) Domingo Llorente 2010 15
Ejemplo de programa
Disear un programa que est, constantemente, leyendo valor Vo del sensor GP2D120
conectado a la entrada analgica AN3 y mostrando en el LCD de la placa el valor de la
tensin y la distancia en cm. Utilizar el mtodo de interpolacin lineal dividiendo la curva
de respuesta del sensor en 6 rectas.

(c) Domingo Llorente 2010 16


Solucin en CCS (I)

Comenzamos utilizando el
asistente PIC Wizard

Luego creamos la carpeta para


nuestro proyecto y damos un
nombre al archivo con extensin .pjt

(c) Domingo Llorente 2010 17


Solucin en CCS (II)
Elegir:
Pic: PIC17F877A
Frecuencia del oscilador: 4Mhz
Fuses: Crystal osc <=4Mhz
Memoria de programa: No protegida

(c) Domingo Llorente 2010 18


Solucin en CCS (III)
En la pestaa de Analog configurar:
Resolucin: 1024 (10bits).

Fuente de reloj para


la conversin: Internal

La entrada analgica: A0 A1 A3

(c) Domingo Llorente 2010 19


Solucin en CCS (IV)
En la pestaa Code podemos ver
el cdigo que se aadir en nuestro
programa.

(c) Domingo Llorente 2010 20


Solucin completa:

(c) Domingo Llorente 2010 21


Valores obtenidos

(c) Domingo Llorente 2010 22

También podría gustarte