Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Laboratorio 2
Sensores Ultrasonico
FECHA: P-8/12/2023
SENSOR ULTRASONICO
1. OBJETIVOS:
Hacer el montaje del circuito para que pueda medir distancias para hallar la
exactitud del sensor ultrasónico y realizar las respectivas curvas de
calibración.
2. HERRAMIENTAS Y NOMENCLATURA
Arduino uno caracteristicas
Microcontrolador: ATmega328
Voltaje de operación: 5V
Voltaje de entrada (recomendado): 7-12V
Voltaje de entrada (limites): 6-20Vv
Pines de E/S digitales: 14 (de los cuales 6 proporcionan salida PWM)
Pines de entrada analógica: 6
Corriente DC por pin de E/S: 40 mA
Corriente DC para 3.3V Pin: 50 mA
Memoria Flash: 32 KB de los cuales 0,5 KB utilizados por el bootloader
SRAM: 2 KB (ATmega328)
EEPROM: 1 KB (ATmega328)
Velocidad de reloj: 16 MHz
Una ARDUINO es una placa pre diseñada que consta con su propio software y su propio
lenguaje de programación y debido a su configuración y sus diversos módulos de adición su
armado y su implementación sea más fácil y conveniente.
Un sensor óptico tiene un transmisor y receptor, mientras que un sensor ultrasónico utiliza
un elemento ultrasónico único, tanto para la emisión como la recepción. En un sensor
ultrasónico de modelo reflectivo, un solo oscilador emite y recibe las ondas ultrasónicas,
alternativamente. Esto permite la miniaturización del cabezal del sensor.
Cálculo de la distancia
La distancia se puede calcular con la siguiente fórmula:
Distancia L = 1/2 × T × C
Donde: L es la distancia, T es el tiempo entre la emisión y la recepción, y C es la velocidad del
sonido. (El valor se multiplica por 1/2 ya que T es el tiempo de recorrido de ida y vuelta).
Características
La siguiente lista muestra las características típicas habilitadas por el sistema de detección.
Objeto transparente detectable
Dado que las ondas ultrasónicas pueden reflejarse en una superficie de vidrio o líquido, y
retornar al cabezal, incluso los objetos transparentes pueden ser detectados.
Resistente a niebla y suciedad
La detección no se ve afectada por la acumulación de polvo o suciedad.
Objetos de forma compleja detectables
La detección de presencia es estable, incluso para objetos tales como bandejas de malla o
resortes.
4. FUNCIONAMIENTO Y TAREA:
Para poder programar en ARDUINO se debe usar su software que es ARDUINO, pero para
poder simular nuestros programas de ARDUINO en PROTEUS se debe usar librerías que
permitan esto y también se debe saber extraer el. HEX de nuestra compilación de ARDUINO.
Todo cambio que hagamos en nuestro programa y luego sea compilado será guardado en la
carpeta que le dimos nombre al inicio en un archivo. ino.
SIMULACION: Debido a que necesitamos el archivo. HEX para realizar la simulación este será
tomado de la carpeta temporal que se crea al momento de compilar el programa la manera
de encontrar esta carpeta es obteniendo la dirección directamente del software de
ARDUINO que nos lo otorgara en la parte baja del programa.
De esta carpeta copiamos el archivo dd.ino.hex que será el archivo que necesitamos para la
simulación, el nombre del archivo dependerá del nombre con el que se halla guardado el
proyecto, este archivo debe ser copia a la carpeta donde se halla guardado el proyecto
debido a que así será más fácil encontrarlo para la simulación y además la carpeta que
contenía el archivo se borrará cuando se cierre el software de ARDUINO.
Ya en el programa PROTEUS y armado nuestro circuito daremos doble click en la imagen que
representa al ARDUINO como se hacía en el PIC esto nos abrirá una venta con las opciones.
En la opción de Clock Frequence está ya predefinido la velocidad en la que se simulara el
ARDUINO, está ya vie definida por defecto pero debido a que muchas veces con programas
con diversos tiempo o diversos ciclos de tratamiento de datos muchas veces nos dará error
de velocidad de simulación este error de PROTEUS nos indicara que la velocidad de
simulación ha superado a la velocidad que puede registrar nuestra computadora por lo que
es recomendable bajar la velocidad de 16MHZ a 8MHZ o también a 4MHZ esto ocasionara
que el programa valla más lento pero no tendrá problemas de simulación.
Los cambios que se vallan ah hacer en la simulación no ha de afectar a la placa de ARDUINO
ya que estos cambios son únicamente para la simulación y la placa de ARDUINO ya viene su
configuración de reloj inalterable.
MANEJO DE DISPLAY LCD (pantalla de cristal líquido) con ARDUINO
Debido a la morfología con la que cuenta el LCD puede ser usado de diversas maneras tal que nos
permite su uso con ARDUINO así también el uso de la pantalla lcd con el módulo i2c y que la
comunicación se ah más práctica y más simple.
Como se muestra en la imagen podemos observar los pines requeridos para el funcionamiento de
nuestro LCD donde el pin 1,2,3 son de alimentación y control de la nitidez de los caracteres del LCD.
Vss: Gnd
Vdd: +5 voltios
Vee: corresponde al pin de contraste, lo regularemos con un potenciómetro de 10K conectado a Vdd
o VO en algunos display LCD como el 1602A
Los pines de 4, 5, 6 son pines de control que irán conectados a nuestro PIC, RW puede conectarse
directamente a tierra o al PIC si se tiene un pin destinado a este.
RS: Corresponde al pin de selección de registro de control de datos (0) o registro de datos(1). Es decir
el pin RS funciona paralelamente a los pines del bus de datos. Cuando RS es 0 el dato presente en el
bus pertenece a un registro de control/instrucción. y cuando RS es 1 el dato presente en el bus de
datos pertenece a un registro de datos o un carácter.
RW: Corresponde al pin de Escritura (0) o de Lectura (1). Nos permite escribir un dato en la pantalla o
leer un dato desde la pantalla.
E: Corresponde al pin Entable o de habilitación. Si E(0) esto quiere decir que el LCD no está activado
para recibir datos, pero si E(1) se encuentra activo y podemos escribir o leer desde el LCD.
Los pines del 7 al 14 son pines de dato estos pines de dato darán la información que a de ser
mostrada en el LCD así como también darán la posición y movimiento solo son necesarios los pines
D4 hasta el D7 para mostrar los datos pero de igual manera pueden conectarse los pines D0 a D3 si es
necesario.
El Bus de datos bidireccional comprende desde los pines D0 a D7. Para realizar la comunicación con el
LCD podemos hacerlo utilizando los 8 bits del bus de datos (D0 a D7) o empleando los 4 bits más
significativos del bus de datos(D4 a D7).
Los pines 15 y 16 son pines de alimentación que encenderán el led de luz para el brillo del LCD.
En la figura podemos observar que el módulo i2c va conectado a todos los pines del LCD para luego
sacar 4 pines que serán toda la comunicación con el arduino que son gnd (tierra) vcc (alimentación)
SDA y SCL que serán los pines de control como de datos.
También en este capítulo se aprenderá el uso de un puerto como entrada de datos analógica.
lcd.init();
void loop() {
float D_cm=distancia(20); //lectura de distancia
float distancia = D_cm *10;
Serial.print("Presion: ");
Serial.print(presion);
Serial.print(" mmHg ");
Serial.print("Distancia: ");
Serial.print(distancia);
Serial.println(" cm");
}
float distancia(int n)
{
long suma=0;
for(int i=0;i<n;i++)
{
suma=suma+analogRead(A1);
}
float adc=suma/n;
float distancia_cm = 17569.7 * pow(adc, -1.2062);
return(distancia_cm);
}
SIMULACION
7 7,06 7 7,09
6,57 6,62
6 6,05 6 6,1
5,58 5,54
5 5,05 5 5,08
4,57 4,59
4,14 4 4,18
4
3,58
3,45
3 3
2 2
1 1
0 0
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8
RECTA DE CALIBRACION 3 RECTA DE CALIBRACION 4
8 8
7 7,12 7 7,07
6,52 6,61
6 6,15 6 6,07
5,61 5,59
5 5,15 5 5,04
4,61 4,63
4,22 4,26
4 4
3,6 3,41
3 3
2 2
1 1
0 0
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8
RECTA DE CALIBRACION 5
8
7 7,15
6,58
6 6,09
5,64
5 5,18
4,54
4 4,1
3,64
3
0
1 2 3 4 5 6 7 8
Histograma para 3.5cm Histograma para 4cm
3,7 4,3
3,64 4,26
3,65
3,6 4,25
3,6 3,58 4,22
3,5 4,14
3,45 4,15
3,45
3,41 4,1
3,4 4,1
3,35
4,05
3,3
3,25 4
1 2 3 4 5 1 2 3 4 5
4,52
5
4,5
4,48 4,95
1 2 3 4 5 1 2 3 4 5
Histograma para 5.5cm Histograma para 6 cm
5,66 6,16 6,15
5,64
5,64 6,14
5,62 5,61
6,12
5,6 5,59 6,1
5,58 6,1 6,09
5,58
6,08 6,07
5,56
5,54 6,06 6,05
5,54
5,52 6,04
5,5 6,02
5,48 6
1 2 3 4 5 1 2 3 4 5
6,5 7,04
6,48 7,02
6,46 7
1 2 3 4 5 1 2 3 4 5
MEDIDA(cm) PROMEDIO(cm)
3.5 3.536
4 4.18
4.5 4.588
5 5.1
5.5 5.592
6 6.092
6.5 6.58
7 7.098
Tabla de valores de la medida de patrón y el promedio de mediciones
TABLA PARA HALLAR LA PRECISIÓN
X Y X2 X*Y Y2 Y´ e=y-y´ e2
Varianza = 0.0162672
Precision= √𝒗𝒂𝒓𝒊𝒂𝒏𝒛𝒂 = √𝟎. 𝟎𝟏𝟔𝟐𝟔𝟕𝟐 = 𝟎. 𝟏𝟐𝟕𝟓
0
1 2 3 4 5 6 7 8
8. CONCLUCIONES:
• Con la simulación del circuito en PROTEUS se pudo observar que el código si funciona de
acuerdo al laboratorio