Descarga la aplicación para disfrutar aún más
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
Compartir