Distancia del sensor de Sharp 2YOA21 y LCD El sensor de distancia producidos por Sharp es una solución popular y relativamente baja para medir la distancia. El sensor puede ser usado también para medir la bondad o de color (en forma muy limitada), pero en este artículo vamos a hablar sólo de medir distancias.
En el presente experimento se utilizará el modelo de 2YOA21 y son las características de este sensor: 1. 2. 3. 4. 5. 6. 7. 8.
Distan Distancia cia míni mínima ma de de medic medición ión = 10 cm; Medida Medida de la distan distancia cia máxi máxima ma = 80cm 80cm;; Sensor Sensor infrarr infrarrojo ojo de prox proximi imidad dad;; Salida analógica analógica inversa inversamente mente proporciona proporcionall a la distanci distancia; a; El sensor sensor está está Prop Proporc orcion ional; al; Voltaj Voltajee de aliment alimentació ación n operati operativo vo = 4,5 V a 5,5 5,5 V; Sumini Suministr stro o de media media actua actuall - 30 mA mA típico típico =; Tiempo Tiempo de resp respues uesta ta = 38 ± 10 ms.
Es evidente que existen varias versiones de sensores que son capaces de medir las distancias más cortas o más, dependiendo de las necesidades. Ejemplos de sensores son los siguientes: • • •
Distancia agudo GP2D120 Sensor (4-30cm); Distancia del sensor de Sharp GP2Y0A21 (10-80cm); Distancia del sensor de Sharp GP2Y0A02 (20-150cm).
La señal de datos del sensor 2YOA21 se envían en forma analógica y la conexión hecha con el microcontrolador es muy sencillo. La salida analógica varía de 3.1V a 10 cm a 0,3 V a 80 cm. La configuración de hardware: En el presente artículo me propongo mostrar la distancia medida, entre el sensor y el objeto alguno, en la pantalla LCD de 2x16 caracteres con. Realización física se lleva a cabo en la placa con 2420 puntos.
A través de este vídeo me gustaría compartir la situación en tiempo real.
Ahora, voy a compartir un poco de la teoría, la teoría necesaria para poner las cosas en movimiento. A continuación presento el diagrama de tiempos para la señal de datos que se transmiten en el pin 1 del sensor 2YOA21.
Diagrama de tiempos. Los siguientes diagramas son muy útiles cuando queremos construir la fórmula para medir la distancia.
La distancia y la tensión de salida. Por encima tenemos el diagrama que especifica la relación entre la distancia medida y la tensión de salida de 2YOA21 sensor.
La tensión de salida vs inversa número de la distancia. Por encima tenemos el diagrama que especifica la relación entre la tensión de salida y el número inverso del sensor de distancia 2YOA21. Pin descripción del sensor de distancia 2YOA21.
Disposición de las patillas. A continuación tenemos el diagrama de bloques del sensor de distancia 2YOA21.
Diagrama de bloques. En la hoja de datos, el fabricante nos recomienda cómo alinear correctamente, el sensor de distancia de la superficie medida. A continuación voy a presentar a través de dos imágenes de cómo hacer eso.
La alineación correcta de la superficie que se evalúan
La alineación apropiada de las superficies en movimiento. Notas: Antes de poner en funcionamiento el juguete hay que tener en cuenta los siguientes consejos: •
•
•
•
•
•
Se debe mantener limpia la lente del sensor. El polvo, agua, aceite y otros contaminantes se pueden deteriorar las características de este dispositivo; Cuando se utiliza una cubierta protectora sobre el emisor y el detector, asegúrese de cubrir eficientemente transmite la luz en toda la gama de longitudes de onda de los LED (λ = 850 nm ± 70 nm). Ambos lados de la cubierta de protección debe ser muy pulido; Objetos en las proximidades del sensor puede provocar reflexiones que pueden afectar el funcionamiento del sensor; Las fuentes de luz de alta temperatura ambiente (el sol o la luz artificial) pueden afectar la medición. Para mejores resultados, la aplicación debe estar diseñado para evitar la interferencia de la luz solar o luz artificial; Usando el sensor con un espejo puede inducir a errores de medición. A menudo, cambiar el ángulo de incidencia en el espejo puede corregir este problema; El fabricante recomienda un condensador de derivación 10 mF (o más) entre VCC y GND cerca del sensor.
Para más detalles, por favor estudie el 2Y0A21YK agudo hoja de datos . Diagrama del circuito: Nivel de dificultad del programa electrónico, es baja. El microcontrolador utilizado es PIC16F876A, porque poseen el convertidor analógico a digital, la conversión necesaria para el procesamiento de la señal obtenida de nuestros sensor de distancia. S1 es el botón de reinicio maestro, R1 es la resistencia de pull-up botón. Cristal de cuarzo de 8 MHz, se utiliza. C3 y C4 se utilizan para la filtración adicional del sensor 2YOA21. A través J1 que asegurar la conectividad con el sensor de distancia. ICSP conector se utiliza para programar el microcontrolador. R2 a través podemos ajustar el contraste de LCD de 2x16 caracteres. R3 se ajusta la corriente a través de la pantalla LED (intensidad de la luz de la misma).
El esquema electrónico. El esquema electrónico se basa en Eagle CAD , versión libre. Software: El programa está escrito en mikroC Pro para PIC 2011 (la versión v4.60). Hasta este momento, me encontré con tres maneras de extraer la fórmula que convierte la tensión de salida del sensor en la distancia. Voy a mostrar a continuación: 1. Sobre la base de "valores típicos" de Sharp, la fórmula para traducir el valor del sensor en la distancia (la fórmula sólo es válida para un valor del sensor entre 80 y 500) es la siguiente:
2. El análisis de los diagramas de abajo se puede deducir:
Las curvas de calibración de sensor 2YOA21.
Esta ecuación fue derivada de la curva de calibración:
donde "Valor IR" es la señal de salida digital del sensor. La curva fue creado por el trazado de los valores de salida del sensor de IR en comparación con las distancias a un objeto fijo, plano. Aquí está el diagrama de 2YOA21 valores de los sensores en los rangos entre 0 cm y 150 cm:
Los datos del sensor de Sharp.
3. Y ahora voy a presentar la fórmula utilizada en el presente artículo. Como he dicho anteriormente, la consigna es el inverso de la distancia, por lo que la distancia se puede calcular como:
luego escalar a juego con la hoja de datos. Vamos a cargar el valor ADC de 16 bits en "matemáticas" variable y vamos a utilizar de esta manera:
para la ampliación, 6050 es una constante. Los tres métodos son probados por mí, así que usted puede tener confianza en su exactitud. Elegí este último método porque le parecía más interesante, nada más. Para aquellos que son extremadamente pretencioso puede desarrollar una tabla de búsqueda de puntos de datos suministrados en el gráfico, pero si usted elige este camino se debe considerar la memoria RAM del microcontrolador, debe ser lo suficientemente grande como para alojar la tabla de datos. A continuación es mi versión de software: / * '************************************************* ****************************** 'Nombre del proyecto: Distancia sensor de Sharp 2YOA21 y pantalla LCD 'Descripción: "En este experimento vamos a tratar de mostrar en la pantalla LCD de 2x16 caracteres, "Distancia ayudados por IR cerradura centralizada" Sharp 2Y0A21YK ", que es capaz de dar "Distancia entre 10 cm ~ 80 cm. "Escrito por: "Aureliu Raducu Macovei, 2011. 'Test de configuración: "MCU: PIC16F876A; "Test.Board: WB-106 Breadboard 2420 puntos; "SW: mikroC PRO para PIC 2011 (la versión v4.60); 'Configuración de la Palabra: "Oscilador: HS (8MHz) en los pines 9 y 10; "Watchdog Timer: OFF; "Encendido del temporizador: OFF; "Browun fuera Detectar: ON; "Programa de Baja Tensión: de movilidad reducida; "Datos EE Leer Proteger: OFF; "Programa de escritura en la Flash: la protección contra escritura OFF; "Antecedentes de depuración: de movilidad reducida; "Código de Protección: OFF '************************************************* ****************************** * /
/ / Conexiones sbit LCD_RS en sbit LCD_EN en sbit LCD_D4 en sbit LCD_D5 en sbit LCD_D6 en sbit LCD_D7 en
del módulo LCD; RB4_bit; RB5_bit; RB0_bit; RB1_bit; RB2_bit; RB3_bit;
LCD_RS_Direction sbit LCD_EN_Direction sbit LCD_D4_Direction sbit LCD_D5_Direction sbit LCD_D6_Direction sbit LCD_D7_Direction sbit / / Fin de conexiones
en TRISB4_bit; en TRISB5_bit; en TRISB0_bit; en TRISB1_bit; en TRISB2_bit; en TRISB3_bit; del módulo LCD;
cm unsigned int, CM10; matemáticas entero sin signo; caracteres de texto *; char * dígito = "00"; calc_distance vacío (void) { / / De la hoja de datos de la señal analógica es / / El inverso de la distancia, por lo que la distancia puede ser calculada / / D = (1 / V), entonces escala para adaptarse a la hoja de datos / / Carga ADC valor de la variable de matemáticas de 16 bits. matemáticas = ADC_Read (0); matemáticas = ADRESH; matemáticas = (matemáticas * 255); matemáticas + = ADRESL; / / Ahora que invertir; (1 / V) el uso (6050 / V) para la ampliación, 6050 es una constante; matemáticas = (6050 / matemáticas); if (math> = 2) matemáticas -= 2; / / reparar el error lineal (-2) if (matemáticas <10) matemáticas = 10 / / min límite de 10 cm if (math> 80) matemáticas = 80 / / límite máximo a 80 cm / / Convertir 0-99 a 2 dígitos decimales, 0-99cm CM10 = 0; while (math> = 10) { CM10 + +; matemáticas -= 10; } cm = matemáticas; } void main (void) { ADCON0 = 0x01; / / RA0 como entrada analógica; ADCON1 = 0x0E; / / referencia VDD y VSS, con justificado a la izquierda; CMCON | = 7 / / Desactivar la comparación; TRISA0_bit = 1 / / Hacer RA0 como entrada; PORTA = 0x00; valor / / inicial de PORTA; Lcd_init (); / / Inicializar el LCD;
LCD_Cmd (_LCD_CURSOR_OFF) / / cursor de modo off; LCD_Cmd (_LCD_CLEAR); / / Borrar toda la pantalla LCD; text = "Sharp 2Y0A21"; Lcd_Out (1,3, texto); text = "Distancia"; Lcd_Out (2,1, texto); text = "cm"; Lcd_Out (2,13, texto); while (1) { calc_distance (); / / Llamar al "calc_distance" función; dígito [0] = CM10 + 48 / / dígito de las decenas; dígitos [1] = 48 cm / / unidad de dígitos; Lcd_Out (2,10, cifra); / / en la pantalla LCD de la columna 2, de 10 caracteres; delay_ms (100); } }
Publicado por Ducu en 22:52