BUSCAR EN ESTE BLOG
Casa / arduino / Distancia / Sensor agudo / Medición de distancia usando el sensor IR de Sharp
Medición de distancia usando el sensor IR de Sharp B
by Embedded Laboratory on 24 de diciembre de 2016 in Arduino , Distancia , Sharp Sensor
FACEBOOK
En uno de nuestros post anteriores, sobre Sensores UltraSónicos ya vimos cómo medir la distancia
usándolos y son bastante buenos, pero siempre seguimos buscando alternativas y ahora encontramos
Embedded Laboratory
Sensores IR de Sharp que son capaces de medir la distancia. 9,033 followers
Entonces, en esta publicación, veremos cómo usar el sensor IR de Sharp para medir la distancia
usando Arduino . Hay disponibles en el mercado diferentes modelos de sensores IR de Sharp basados
en el tipo de salida y el rango. Algunos de los sensores IR de Sharp que tienen voltaje analógico Follow Page
como salida y suministro de 5 V son los siguientes:
GP2Y0A51 (rango de 2 cm - 15 cm)
SÍGUENOS
GP2Y0A51 (rango de 4 cm - 30 cm)
GP2Y0A21 (rango de 10 cm a 80 cm)
Facebook
GP2Y0A02 (rango de 20 cm a 150 cm)
En esta publicación, voy a utilizar el sensor IR Sharp GP2Y0A21 que tiene un rango de 10 cm a 80 Twitter
cm.
YouTube
RECIENTE COMENTA
LVGL con STM32F4 y STM32F7
Laboratorio integrado
diciembre de 2022
Error fatal de simulación al de
proyectos integrados en Prote
Laboratorio integrado
noviembre de 2022
Herramienta de procesamient
Extender con el rodillo
y video de línea de comandos
La figura anterior muestra la distribución de pines del sensor IR de Sharp, el primer pin es Vout, el Laboratorio integrado
julio de 2022
segundo pin es Ground y el tercero es Supply (5V). Cuando la distancia del obstáculo aumenta, el
voltaje de salida del sensor IR de Sharp disminuye como se muestra en la imagen a continuación. Estación meteorológica usand
ESP8266 con Open Weather A
AT Command
Laboratorio integrado
febrero de 2021
Actualice el firmware AT en su
WiFi ESP8266
Laboratorio integrado
febrero de 2021
ARCHIVO DE BLOG
Dic 2016 (4)
PÁGINAS VISTAS EN TOTAL
9 1 5 4 4
Relación voltaje-distancia
Del gráfico anterior parece obvio que la salida de este sensor no es lineal, por lo que surge la
pregunta de cómo vamos a convertir el voltaje de detección en distancia, entonces para esto tengo
dos métodos.
Método de tabla de búsqueda: haga una tabla de búsqueda en la memoria del programa
del microcontrolador, según los puntos de datos proporcionados en el gráfico de la hoja de
datos.
Ecuación polinomial: Determine la ecuación polinomial aproximada para convertir voltaje
en distancia.
Otro método simple es usar SharpIR Arduino Library y olvidarse de todo el dolor, habían hecho todas
estas cosas por usted, pero no voy a usar la biblioteca y usaré el segundo método de Polynomial
Equation para convertir el voltaje detectado en distancia. .
Ahora surge la pregunta ¿Qué es la Ecuación Polinomial? Entonces, para esto, usaremos la caja de
herramientas de ajuste de curvas de MATLAB para evaluar qué ecuación polinomial representa
aproximadamente el gráfico.
Tome algún punto del gráfico proporcionado en la hoja de datos y use la caja de herramientas de
ajuste de curvas de MATLAB como se muestra a continuación.
Genere una ecuación polinomial con la caja de herramientas de ajuste de curvas de MATLAB
Como se ve claramente en la imagen de arriba, la ecuación polinomial de orden 4 representa
aproximadamente los puntos tomados de la hoja de datos.
La ecuación polinomial es la siguiente:
f(x) = p1*x^4 + p2*x^3 + p3*x^2 + p4*x + p5
Constantes:
p1 = 8.075
p2 = -68,44
p3 = 210,4
p4 = -285,2
p5 = 161,3
Usaremos esta ecuación en nuestro programa Arduino para evaluar la distancia desde el valor del
voltaje.
El código completo es el siguiente (la salida Sharp IR está conectada al pin analógico A0:
Code
/*
* This Program uses SHARP IR Sensor 2Y0A21 to Calculate the Distance of the Obstacle
*/
const int sensePin = A0; // Sharp IR Sensor Pin
void setup()
{
// Initialize Serial Port
Serial.begin(115200);
}
void loop()
{
float distance = 0;
distance = (float)readSharpSensor();
Serial.print("Obstacle Distance: ");
Serial.print(distance);
Serial.println(" cm");
}
/*
* This function returns the distance calculated by SharpIR Sensor
*/
double readSharpSensor( void )
{
int noSamples=100;
uint32_t sumOfSamples=0;
uint32_t senseValue=0;
double senseDistance=0;
for (int i=0; i<noSamples; i++)
{
delay(40);
senseValue=analogRead(sensePin); //Perform analogRead
sumOfSamples=sumOfSamples+senseValue; //Running sum of sensed distances
}
// Serial.print("Sum of Samples: ");
// Serial.println(sumOfSamples);
senseValue=sumOfSamples/noSamples; //Calculate mean
senseDistance=senseValue; //Convert to double
senseDistance=mapDouble(senseDistance,0.0,1023.0,0.0,5.0); //Convert analog pin reading to voltage
// Serial.print("Voltage: ");
// Serial.print(senseDistance);
// Linear model Poly4:
// f(x) = p1*x^4 + p2*x^3 + p3*x^2 + p4*x + p5
// Coefficients (with 95% confidence bounds):
// p1 = 8.075 (3.718, 12.43)
// p2 = -68.44 (-99.23, -37.65)
// p3 = 210.4 (136.7, 284.1)
// p4 = -285.2 (-353.5, -216.9)
// p5 = 161.3 (141.4, 181.2)
senseDistance = 8.075*pow(senseDistance,4) - 68.44*pow(senseDistance,3) + 210.4*pow(senseDistance,
285.2*(senseDistance) + 161.3;
//Print to Serial - Debug
// Serial.print(" Distance: ");
// Serial.println(senseDistance);
return senseDistance;
}
/*
* Re-maps a number from one range to another.
* That is, a value of fromLow would get mapped to toLow, a value of fromHigh to toHigh,
* values in-between to values in-between, etc.
*/
double mapDouble(double x, double in_min, double in_max, double out_min, double out_max)
{
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
La salida del programa es la siguiente:
El mismo método se puede utilizar para otros sensores SharpIR. Por favor, eche un vistazo a este
video para una descripción completa.
Distance Measurement Using SharpIR Sensor
Etiquetas # Arduino # Distancia
Acerca de Embedded Laboratory
Embedded Laboratory es un grupo de aficionados y entusiastas de la electrónica que trabajan
para proporcionar contenido de calidad a los chicos que comienzan en Embedded Domain.
ARTÍCULOS RELACIONADOS:
Medición de distancia usando el
sensor IR de Sharp
2 comentarios:
zsantouh@gmail.com
7 de julio de 2018 a las 12:21
interesante,
gracias
Responder
Marcos Andrés
17 de febrero de 2019 a las 3:09
Si bien me había convertido en su sitio en línea mientras lucía un reconocimiento especificado cómodamente,
muchos envíos táctiles. Técnica amable para Outlook, estaré marcando los favoritos en la actualidad, los
dispositivos necesitan ganar spgs que mejor se adapten hasta el final. calculadora de distancia
Responder