Académique Documents
Professionnel Documents
Culture Documents
Instrumentación
Alimentación +5v DC
Rango (efectivo) 2cm a 250cm
Resolución 0.3cm
Cuadro 1: Características del sensor
Funcionamiento:
El característico par de ojos del sensor, no es más que un generador (Trigger) y receptor
de ultrasonidos (Echo). El funcionamiento es simple, se activa el generador de ultrasonido,
la onda viaja por el espacio hasta colisionar con un obstáculo, la onda rebota y se desplaza
en dirección opuesta hacia el sensor, es percibida por el receptor, el cual, al ser excitado
envía un impulso, finalmente la medida que se realiza es del tiempo diferencial entre el
momento en que se envía la onda y el momento en que esta regresa.
Universidad Nacional de Colombia. Departamento de Energía Eléctrica y Automática.
Instrumentación
Montaje electrónico
Materiales:
1. Arduino UNO R3
2. Cables de fácil conexión macho-hembra x 4
3. HC-SR04
Universidad Nacional de Colombia. Departamento de Energía Eléctrica y Automática.
Instrumentación
Conexión:
Debido a la alta popularidad que obtuvo la placa se han desarrollado gran variedad de
sensores y accesorios que siguen con la siguen la política de Arduino de tener un precio
económico y una fácil implementación, además de un rendimiento aceptable para la
fabricación de prototipos e incluso para proyectos de pequeña o mediana escala
industrial.
La conexión en realmente sencilla, esto se debe al hecho de que este modelo de sensor
ultrasonido fue específicamente diseñado para Arduino:
Vcc: Voltaje de alimentación, este va conectado al pin 5v del Arduino pues este es
el valor de su voltaje de funcionamiento.
GND: Tierra, este va conectado a cualquier pin GND del Arduino. Esta es la
referencia con la que se obtiene la diferencia de potencial de 5v.
Trig: Señal de salida, se conecta a cualquier pin digital, pero para evitar cambios
en la programación en este caso se conectará al pin 4.
Echo: Señal de entrada, se conecta a cualquier pin digital, pero para evitar
cambios en la programación en este caso se conectará al pin 2.
Programación Arduino
Declaración de Variables:
Como ya me mencionó en la guía anterior arduino necesita que cada variable sea
previamente declarada, por cuestión de orden se suele hacer al comienzo del código, para
este caso solo necesitaremos las variables para nuestros pines (Ech y Trig) una variable
que almacene el tiempo, en este caso, de tipo long para tratar de ser lo más preciso
posible y finalmente una variable, del tipo entero (int) para la distancia.
Setup:
Tal como se mencionó en la guía anterior, el void setup es la primera función que se
ejecuta en el programa, además, esta, se ejecuta solo una vez, aquí se definen los estados
de las E/S y necesarias para trabajar este sensor y se establece la comunicación serial
necesaria para transmitir los datos al computador.
Setup:
Esta función se invoca una sola vez, justo al iniciar el programa, aquí se definen los
estados de las E/S (Entradas o Salidas Digitales), se establece la comunicación serial y se le
puede asignar un valor inicial a las E/S.
void setup() {
pinMode(Trig,OUTPUT);
pinMode(Ech,INPUT);
Serial.begin(9600);
Cuadro 2: Setup.
El pin Ech será una entrada puesto que es el receptor, mientras que el pin Trig debe ser
una salida que es la señal que hará que se genere la onda ultrasónica.
Loop:
Esta es la función principal donde se programa el corazón del código, funciona como un
ciclo infinito, que para esta práctica dividiremos en tres etapas:
es importante evitar el uso de esta función de retardo, puesto que genera una
suspensión total del proceso, lo cual puede llegar a ser desastroso.
void loop() {
//Etapa 1
digitalWrite(Trig,HIGH);
delayMicroseconds(10);
digitalWrite(Trig,LOW);
//Etapa 2
tiempo=(pulseIn(Ech,HIGH)/2);
distancia = float(tiempo*0.0343);
//Etapa 3
Serial.println(distancia);
delay(100);
Cuadro 3: Loop.
Prueba de funcionamiento
A este punto el montaje electrónico, la programación y la comunicación ya deberían estar
casi listas, así que antes de continuar con la programación en MATLAB es importante
verificar que si se allá realizado el procedimiento de forma adecuada. Para esto se deben
seguir los siguientes pasos:
1. Abrir el software de Arduino y copiar el código de la sesión anterior.
2. Dar click en el botón Verificar. En caso tal de que no genere ningún error
continuar con el paso siguiente, de lo contrario corroborar que la sintaxis sea
correcta.
3. Conectar la placa Arduino al computador mediante el cable USB.
4. Verificar que la comunicación serial este activada. Para esto dar clic en
Herramientas>>Puerto en caso tal de que no esté seleccionado el puerto COM,
seleccionarlo dando click en él.
5. Dar click en el botón Subir.
6. Abrir el monitor serial de Arduino. Para esto dar click en Herramientas>>Monitor
serie.
7. Una vez abierto el monitor serial deberían empezar a aparecer los valores
correspondientes a la distancia en centímetros.
Nota: En caso tal de que no funcione verificar tanto el montaje electrónico como la
programación.
Universidad Nacional de Colombia. Departamento de Energía Eléctrica y Automática.
Instrumentación
Programación MATLAB
A modo de resumen, el programa de Arduino básicamente, genera una señal que activa el
emisor del ultrasonido, mide cuánto tarda el receptor en ser excitado y calcula la distancia
entre el sensor y el objeto sobre el cual colisiona la onda basado en este tiempo,
finalmente envía esta distancia por comunicación serial. Ahora vamos a realizar un
programa complementario que reciba esta información, la almacene y la grafique en
tiempo real, lo cual es muy útil para el monitoreo y análisis.
% INSTRUMENTACIÓN:
% Introducción a la adquisición de señales con MATLAB y ARDUINO
% REFERENCIA:
%https://geekelectronica.com/recepcion-de-datos-por-puerto-serial-y-graficacion-
en-matlab/
clc
close all
%INICIAR COMUNICACIÓN
delete(instrfind({'port'},{PUERTO}));%Borrar puerto COM
SERIAL = serial(PUERTO);%Se crea un nuevo puerto COM
SERIAL.BaudRate = 9600;% Se define la velocidad en baudios
warning('off','MATLAB:serial:fscanf:unsuccessfulREAD');
fopen(SERIAL);% Se abre el puerto
Universidad Nacional de Colombia. Departamento de Energía Eléctrica y Automática.
Instrumentación
%DISEÑO DE LA GRÁFICA
figure('Name','DISTANCIA')
title('DISTANCIA (HC-SR04)');
xlabel('Número de Muestras');
ylabel('Distancia (cm)');
grid off;
hold on;
%TOMA DE DATOS
contador = 1;
SIGNAL = zeros(1,CANTIDAD);
while contador<=CANTIDAD
ylim([0 50]);
xlim([contador-10 contador+10]);
a=fscanf(SERIAL,'%d');
SIGNAL(contador) = a;
plot(SIGNAL);
drawnow
contador = contador +1;
end
%FIN DE LA CONEXIÓN
fclose(SERIAL);
delete(SERIAL);
end