Logo Studenta

Laboratorio 1-ARQUITECTURA DE COMPUTADORAS-2020-II

¡Estudia con miles de materiales!

Vista previa del material en texto

Universidad Nacional de la Facultad de Ingeniería de 
 Amazonia Peruana Sistemas e Informática 
1 
 
 
 
 
 
 
 
 
UNIVERSIDAD 
 
 NACIONAL DE LA 
 
 AMAZONIA PERUANA 
 
 
 
 
FACULTAD DE INGENIERIA 
 
DE SISTEMAS E INFORMATICA 
 
LABORATORIO DE ELECTRONICA DIGITAL 
 
 
GUIA - INFORME Nº 1 
CURSO : ARQUITECTURA DE COMPUTADORAS 
 TEMA : Sensores de Distancia y Presencia 
 PROFESOR : 
 GRUPO : 
 ALUMNO : 
 CODIGO : 
 
 NOTA: 
 
 FECHA EXPE.: SEMEST. ACADÉ. 2020 - I 
 
 
Universidad Nacional de la Facultad de Ingeniería de 
 Amazonia Peruana Sistemas e Informática 
2 
 
 
 
13avo LABORATORIO 
Tema: Sensores Básicos de Distancia y Presencia 
 
Objetivo: Hacer que el alumno adquiera practica en el manejo de las entradas analógicas con 
diferentes tipos de sensores como los de distancia y de movimiento. 
 
Material y Equipo: 
 Diodos LED 
 Resistencias 
 Un Protoboard 
 Cablecitos de Conexión 
 Una Tarjeta Arduino Uno 
 Cable USB 
EXPERIENCIA No 1: Funcionamiento del Sensor de Distancias por 
Ultrasonidos 
Si algún día queremos construir nuestro propio robotito necesitaremos medir distancias para que 
el artilugio móvil que hemos creado no choque con todo lo que se encuentre delante. 
Para ello podemos utilizar el sensor PING de Parallax. Funciona como un sonar mediante 
ultrasonidos y es capaz de detectar objetos a una distancia de entre 2 centímetro a 3 metros. 
Dispone de un indicador LED y tan solo requiere de un pin para su funcionamiento. Se puede 
utilizar en una placa de prototipo o directamente en tu robot. 
El sensor envía ultrasonidos por un lado y mide el tiempo de rebote del sonido. En su pin de salida 
podremos medir el ancho de pulso PWM en función de la distancia del obstáculo. Es muy sencillo 
hacerlo funcionar con un Arduino. Funciona exactamente igual que un radar, de hecho es un 
pequeño radar. 
Emite un pulso de sonido a una frecuencia tan alta que es imperceptible para el oído humano y 
cronometra el tiempo que el sonido tarda en llegar a un obstáculo, rebotar y volver al sensor. Como 
la velocidad de propagación del sonido en el aire es un dato bien conocido (343.2 m/s) echamos 
mano de una conocidísima formula (e = v * t) Y calculamos la distancia recorrida por el sonido. 
En la figura 1 se observa el aspecto real del sensor que no es precisamente barato. De todas maneras 
se pueden encontrar «clónicos» a un precio más asequible. En la figura 2 vemos un gráfico que 
explica perfectamente su funcionamiento. Pero... 
Universidad Nacional de la Facultad de Ingeniería de 
 Amazonia Peruana Sistemas e Informática 
3 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Figura 1.- Sensor de Distancia 
 
 
 
 
 
 
 
 
 Figura 2.- Funcionamiento del Sensor de Distancia 
¿Cómo puede funcionar con un solo pin? ¿Acaso no necesitamos uno para mandarle una señal y 
otro para recibir la respuesta? Pues no; se puede hacer todo por el mismo y de una forma nada 
complicada lo que también nos servirá, de paso, para disipar una de las dudas más comunes entre 
los principiantes: la inamovilidad de la declaración de pines como entrada o salidas. 
En todos los sketch que hemos ido escribiendo a lo largo del curso definimos los pines de Arduino 
o bien como entradas o bien como salidas dentro de la estructura setup(), pensando que no se 
 
 
Universidad Nacional de la Facultad de Ingeniería de 
 Amazonia Peruana Sistemas e Informática 
4 
 
 
pueden cambiar. Sin embargo, esto no es así. Podemos cambiarlos de sentido a lo largo del 
programa sin problema, aunque esto no sea lo estrictamente correcto dentro de la estructura 
habitual de programación en Arduino. Pero volvamos al sensor de ultrasonidos: solo tiene tres 
pines, uno de alimentación, uno de masa y uno de señal. Alimentación a +5 V, masa a GND y 
señal a un pin digital (por ejemplo el 8). A través de este pin enviaremos una señal de activación 
o de comienzo al sensor y para ello lo pondremos como salida; lo activaremos durante 10 
microsegundos y lo desactivaremos. Luego cambiaremos el pin y lo dejaremos como entrada para 
escuchar la señal de respuesta del sensor. Esto lo haremos cada vez que necesitemos tomar una 
medida. Esta será cada segundo. 
La señal de salida del sensor proporciona un pulso de la misma duración que el tiempo 
cronometrado, es decir, si el sonido tardó 10 microsegundos en ir el sensor al objeto y volver al 
sensor, nos devolverá un pulso de una duración de 10 microsegundos. Así que será fácilmente 
medible mediante la función pulseln(). 
También hay que tener en cuenta que ese tiempo es de ida y vuelta, por lo que tenemos que 
dividirlo por la mitad a la hora de hacer el cálculo. 
TIP 1: 
• pulseln(pin,valor). Lee un pulso (ya sea alto o bajo) en un pin, Por ejemplo, si el valor es 
HIGH, pulseln() espera a que el pin sea alto, empieza a cronometrar, espera a que el pin 
sea LOW y entonces detiene la medida de tiempo. Devuelve la anchura del pulso en 
microsegundos. Funciona correctamente en pulsos con una anchura de 10 microsegundos 
a tres minutos. 
El Hardware que necesitaremos es el siguiente: 
Un Parallax PING. (GUR03) Un Protoboard. 
Un Arduino. 
Programa: Midiendo Distancia 
unsigned long pulso; 
float distancia; 
int pin =7; 
void setup() 
 // put your setup code here, to run once: 
NUEVO TIPO DE VARIABLE 
“unsigned long” 
Universidad Nacional de la Facultad de Ingeniería de 
 Amazonia Peruana Sistemas e Informática 
5 
 
 
{ 
Serial.begin(9600); 
} 
void loop() 
 // put your main code here, to run repeatedly: 
{ 
 pinMode(pin,OUTPUT); 
 digitalWrite(pin,HIGH); 
 delayMicroseconds(10); 
 pinMode(pin,LOW); 
 pinMode(pin,INPUT); 
 pulso=pulseIn(pin,HIGH); 
 Serial.print("tiempo = "); 
 Serial.print(float(pulso/1000.0)); 
 Serial.print("ms, distancia = "); 
 distancia=((float(pulso/1000.0))*34.32)/2; 
 Serial.print(distancia); 
 Serial.println("cm"); 
 delay(1000); 
} 
Lo primero que observamos en el sketch, es que aparece un nuevo tipo de variable llamada 
unsigned long asociada al pulso. 
TIP 2: 
• unsigned long. Este tipo de variable numérica de tipo extendido se refiere a números 
enteros (tipo 32 bits) sin decimales y solo positivos (unsigned: sin signo) que se 
encuentran dentro del rango de 0 a 4.294.967.295. 
ACTIVA EL SENSOR CON 
UN PULSO DE COMIENZO 
FÓRMULA PARA EXPRESAR 
LA DISTANCIA A PARTIR 
DEL ANCHO DEL PULSO 
RECIBIDO 
Universidad Nacional de la Facultad de Ingeniería de 
 Amazonia Peruana Sistemas e Informática 
6 
 
 
• La razón de utilizarla se debe a que la función pulseln() devuelve el ancho del pulso (la 
distancia que medimos) con este tamaño de variable. Por ello, para que exista 
concordancia con lo que vamos a recibir, definimos previamente la variable «distancia» 
como tipo unsigned long. Es una característica de esta función y que no podemos 
cambiar, sino adaptarnos a ella. 
 
 
 
 
 
 
 
 
 Figura 3.- Diagrama del circuito del sensor de distancia 
En la figura 3 se observa el tiempo medido del pulso recibido que es convertido a la distancia que 
hay entre el objeto y el sensor. 
Finalmente, si optamos por medir distancias más pequeñas, podemos utilizar los sensores de 
infrarrojos. Son mucho más baratos y en muchas aplicaciones son suficientes. 
TAREA: Diseña un circuito que produzca una señal de alarma sonora que se active cuando nos 
acerquemos a un sensor Parallax PING. Utiliza un pequeño zumbador o altavoz 
EXPERIENCIA N° 2: FUNCIONAMIENTO DE UN SENSOR DE MOVIMIENTOPara terminar nuestras prácticas con sensores, vamos a realizar una práctica que demuestre lo fácil 
que es la utilización de un sensor de movimiento como es el denominado sensor PIR (sensor 
pasivo de infrarrojos). En cuanto a su principio de operación, el sensor PIR se basa en la idea de 
que todos los objetos emiten energía en forma de radiación a causa de tener un calor corporal por 
encima del cero absoluto. 
Los sensores PIR (Figura 4) están compuestos por dos ranuras, cada una de ellas sensible a los 
infrarrojos. Cuando un cuerpo caliente pasa por delante del campo de detección del sensor, una de 
las dos mitades detecta la diferencia de calor y provoca un diferencial entre las dos mitades de las 
 
Universidad Nacional de la Facultad de Ingeniería de 
 Amazonia Peruana Sistemas e Informática 
7 
 
 
ranuras. Ocurre lo mismo cuando el cuerpo sale de la zona de detección; la otra mitad detecta un 
cambio y provoca otra diferencia de potencial igual pero de sentido contrario. De esta manera el 
sensor es capaz de distinguir si ha habido movimiento en la habitación. 
Son sensores de infrarrojo pasivo porque, por un lado, capturan los infrarrojos y por el otro, como 
no irradian ninguna energía sobre los objetos, son pasivos. La clave son las lentes de Fresnel que 
juegan un papel decisivo en los sensores PIR ya que consiguen ampliar su campo de detección. 
Una lente de Fresnel es una lente plano-convexa que se utiliza para conseguir focalizar una mayor 
cantidad de radiación sobre el sensor. 
 
 
 
 
 
 
 Figura 4.- Sensor de Movimiento 
El proyecto que vamos a implementar consiste en detectar movimiento y encender un diodo LED. 
Así de simple, ya que solo nos interesa conocer su funcionamiento básico. 
El fabricante nos proporciona el conexionado que es el siguiente: (PIR SENSOR) 
Cable rojo: VCC (5 a 12V). 
Cable Negro: Pin «Alarma» en colector abierto. 
Cable Marrón: GND. 
También nos advierte, dado que el pin de alarma es de colector abierto, que se necesita una simple 
resistencia Pull-Up. En nuestro caso elegiremos de 10 kὨ. 
Programa: Detectando Movimiento: 
int ledPin=11; 
int inputPin=5; 
int movimiento=LOW; 
int val=0; 
 
Universidad Nacional de la Facultad de Ingeniería de 
 Amazonia Peruana Sistemas e Informática 
8 
 
 
int calibrationTime=30; 
void setup() 
 // put your setup code here, to run once: 
{ 
 pinMode(ledPin,OUTPUT); 
 pinMode(inputPin,INPUT); 
 Serial.begin(9600); 
 Serial.print("Calibrando..."); 
 for(int i=0; i< calibrationTime; i++) 
 { 
 Serial.print("."); 
 delay(100); 
 } 
Serial.println("Sensor Calibrado"); 
delay(50); 
 } 
void loop() 
 // put your main code here, to run repeatedly: 
{ 
 val=digitalRead(inputPin); 
 if(val== HIGH) //Si esta Activado 
 { 
 digitalWrite(ledPin,HIGH); //LED ON 
 if(movimiento == LOW) //Si Previamente estaba Apagadox 
 { 
 Serial.println("Movimiento detectatado!"); 
PARTE DEDICADA AL 
CALIBRADO DEL SENSOR. 
ESTE TIEMPO ES 
NECESARIO PARA 
ESPERAR A QUE EL PIR 
SE INICIALICE 
CONVENIENTEMENTE. 
 
Universidad Nacional de la Facultad de Ingeniería de 
 Amazonia Peruana Sistemas e Informática 
9 
 
 
 movimiento = HIGH; 
 } 
 }else 
 { 
 digitalWrite(ledPin,LOW); 
 if(movimiento == HIGH) 
 { 
 Serial.println("No hay movimiento!"); 
 movimiento=LOW; 
 } 
 } 
} 
 
 
 
 
 
 
 
 
 
 
 
 
 Figura 5.- Diagrama del Circuito de Sensor de Movimiento 
 
 
Universidad Nacional de la Facultad de Ingeniería de 
 Amazonia Peruana Sistemas e Informática 
10 
 
 
 
 
 
 
 
 
 
 
 
 
 Figura 6.- Monitor Serie 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Figura 7.- Vista Real del Circuito Implementado del Sensor de Movimiento

Continuar navegando