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º 12 CURSO : ELECTRONICA DIGITAL TEMA : Las Entradas Analógicas 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 12avo LABORATORIO Tema: Las Entradas Analógicas Objetivo: Hacer que el alumno adquiera practica en el manejo de las entradas analógicas con que cuenta el Arduino Material y Equipo: Diodos LED Resistencias Un Protoboard Cablecitos de Conexión Una Tarjeta Arduino Uno Cable USB EXPERIENCIA No 1 En el laboratorio anterior, hemos experimentado con botones y diodos leds que pueden tomar solo dos estados: encendido o apagado. Si ahora queremos medir una temperatura, una fuerza, una distancia u otro valor que variará con el tiempo, necesitamos utilizar la potencia de las entradas analógicas que posee el Arduino. Si el Arduino fuera puramente un dispositivo digital, no seriamos capaces de medir estas variables y limitaría el alcance de nuestros proyectos. Por suerte, el Arduino puede interactuar con el mundo analógico también. El Arduino puede alterar el brillo de un LED mediante la variación de la tensión aplicada a ella, pero mediante el uso de una técnica especial llamada modulación de ancho de pulso (PWM) que hemos visto anteriormente. Además de proporcionar una salida “cuasi” analógica por medio de PWM, el Arduino también puede adquirir una entrada analógica de entre 0 y 5 voltios. El Arduino estándar tiene seis entradas analógicas (Figura 1) etiquetadas: ANALOG IN A0, A1, A2, A3, A4, A5. En este laboratorio nos concentraremos en la función analogRead(). Vamos a empezar por echar un vistazo a la diferencia entre los dispositivos digitales y analógicos y entonces, ¿Cuál es la diferencia entre el mundo analógico y digital? En el mundo digital, todo tiene dos estados: un interruptor solo puede estar encendido o apagado, un LED este encendido o apagado. Universidad Nacional de la Facultad de Ingeniería de Amazonia Peruana Sistemas e Informática 3 En el mundo analógico, las cosas tienen un rango de valores: la música tiene notas que abarcan una gama de frecuencias, un coche acelera a través de una gama de velocidades, una onda sinusoidal fluye suavemente entre los valores máximo y un mínimo. A menudo es necesario explorar el mundo analógico y Arduino seis posee entradas analógicas que nos permiten hacer esto. Pero el Arduino no es un dispositivo digital, por lo que necesita un medio para convertir una señal de entrada en una representación digital. Esto se hace mediante un convertidor analógico- digital (ADC) Figura 1.- Entradas Analógicas del Arduino La tabla 1 muestra la resolución, rango de voltaje y los pines usados para las entradas analógica y salida del Arduino uno y Arduino Mega. Tabla 1.- Características de los Pines del Arduino que soportan Entradas Analógicas Entrada Analógica Salida Analógica Resolución 10 bits (0 al 1023) 8 bits (0 al 254) Rango de Voltaje 0 a 5 Voltios 0 a 5 Voltios Patillas del Arduino UNO A0 a A5 Pines digitales: 3, 5, 6, 9, 10, 11 Patillas del Arduino Mega A0 a A15 Pines digitales: 3 al 13 Universidad Nacional de la Facultad de Ingeniería de Amazonia Peruana Sistemas e Informática 4 El hecho de que el convertidor analógico-digital (ADC) de nuestro Arduino sea de 10 bits significa que puede distinguir entre 1024 valores distintos. Si tenemos un dispositivo que envía información analógica codificada como cambios de voltaje y la diferencia de potencial máxima que puede establecer entre una entrada analógica y tierra es de 5 V, nuestro Arduino podrá informarnos de cómo evoluciona esa señal en intervalos de: 5 1024 = 0.0049 𝑉𝑉 = 4.9 𝑚𝑚𝑉𝑉 Cada 4.9 mV de voltaje de incremento supondrá un incremento de 1 en el número equivalente digital. Por ejemplo, si tienes 10 mV en la entrada A0, en la salida del conversor ADC interno del Arduino aparecerán 10 MV/ 4.9 mV = 2 ( 00 0000 0010). Para obtener el numero 3 (00 0000 0011) la entrada analógica tiene que aumentar 4.9 mV más. Y así sucesivamente, por eso a ese valor mínimo para que aumente el equivalente digital se le llama peldaño. TIP 1: El Potenciómetro Ahora vamos a utilizar un potenciómetro para proporcionar una señal analógica de entrada que se pueda variar manualmente. Observaremos el efecto de estos cambios mostrando los resultados en el monitor serial del IDE. Un potenciómetro es una de las formas más sencillas de entrada analógica del Arduino. Los potenciómetros vienen en todas formas y tamaños y son utilizados en muchos dispositivos diferentes que nos rodean. La mayoría de los potenciómetros tiene tres conexiones, la patilla del medio se utiliza para variar la resistencia al mover un contacto a lo largo de una resistencia fija Figura 2 Figura 2.- Diversos Tipos de Potenciómetros y su Diagrama al detalle Universidad Nacional de la Facultad de Ingeniería de Amazonia Peruana Sistemas e Informática 5 EXPERIENCIA 1: El Potenciómetro y el Arduino En el siguiente ejemplo vamos a adquirir valores distintos de voltaje a través de un potenciómetro lineal conectado a la entrada analógica A0 del Arduino. A medida que giramos el potenciómetro hacia la derecha o hacia la izquierda, podremos ajustar el voltaje entre 0 y 5 voltios. En las figuras 3 se muestra el esquema de la experiencia con Proteus. El Hardware que se necesita es el siguiente: 1 potenciómetro 10 kΩ Un Protoboard Cablecitos de conexión. Un Arduino y un cable USB. Figura 3.- Diagrama del Circuito del Arduino con el Potenciómetro Programa del Potenciómetro y el Arduino: /*Adquirir valores con el potenciómetro en A0 */ /*y mostrarlo con el monitor serial.*/ Universidad Nacional de la Facultad de Ingeniería de Amazonia Peruana Sistemas e Informática 6 /*Probando un Potenciometro*/ int sensorPin = A0; int sensorValue = 0; void setup() // put your setup code here, to run once: { Serial.begin(9600); } void loop() // put your main code here, to run repeatedly: { sensorValue = analogRead (sensorPin); Serial.print ("Sensor = "); Serial.println (sensorValue, DEC); delay(10); } No es necesario establecer la entrada analógica A0 como entrada durante la configuración porque todos los pines analógicos se establecen de forma predeterminada como entrada. La variable almacena el sensorValue leído por la función analogRead() que devuelve un numero entre 0 y 1023 inclusive. El 0 cero representa 0 voltios y 1023 representa 5 voltios. La función delay() de 10 milisegundo de retardo entre cada lectura permite dar tiempo al convertidor ADC del Arduino a Resolver y capturar una lectura precisa. El parámetro “DEC” en la línea: Serial.println (sensorValue,DEC) indica que la función println envía datos en base decimal. Otras opciones son: HEX (hexadecimal), BIN (binario) y OCT (octal). TIP 2: • analogRead(pin). Lee el valor de un determinado pin definido como entrada analógicacon una resolución de 10 bits. Esta instrucción solo funciona en los pines (0-5). El rango de valor que podemos leer oscila de 0 a 1023. Los pines analógicos (0-5), a diferencia de Universidad Nacional de la Facultad de Ingeniería de Amazonia Peruana Sistemas e Informática 7 los pines digitales, no necesitan ser declarados como entradas o salidas ya que son siempre entradas. • Después de realizar la compilación bien, conectamos el Arduino al PC y subimos el programa. Abrimos el IDE y ejecutamos el monitor serie. Giramos el potenciómetro (utilícese un destornillador plano si es un trimmer) en sentido horario y anti horario. Debemos ver la salida del número en el monitor cambiando (entre 0 y 1023) a medida que el potenciómetro gira (Figura 4). • Los potenciómetros de ajuste (trimmer o Trimpot) son potenciómetros que se ajustan con la ayuda de un destornillador. Sirven para que el circuito al que pertenecen actué adecuadamente (en su punto) y compense las tolerancias en otros componentes. Los potenciómetros normales están previstos para que su posición se pueda variar a voluntad. Van sujetos a un botón de mando a mano. Los de ajuste, no. Los hay de dos clases genéricas según el recorrido para el ajuste. En los sencillos este es de aproximadamente ¾ de vuelta y los multivuelta es de alrededor de 20 vueltas. Un potenciómetro lineal varia su resistencia en función directa del Angulo de giro y los logarítmicos de acuerdo con el logaritmo de desplazamiento. Los logarítmicos se utilizan exclusivamente en cuestiones de sonido pues se trata de conseguir el efecto de los lineales respecto del sonido. El oído responde logarítmicamente. Figura 4.- Monitor Serie: visualización de la variación del Potenciómetro Universidad Nacional de la Facultad de Ingeniería de Amazonia Peruana Sistemas e Informática 8 EXPERIENCIA 2: MONOTORIZANDO UN TRANSDUCTOR PIEZOELECTRICO Si alguna vez has recibido una tarjeta de cumpleaños que toca una melodía cuando se abre, probablemente lleve un transductor piezoeléctrico que funciones como un altavoz. Los transductores piezoeléctricos también se encuentran en una variedad de otros dispositivos, incluyendo teléfonos móviles, timbres de puertas e incluso el sonar submarino. La figura 5 muestra un transductor piezoeléctrico típico que se puede utilizar para producir sonidos similares a los utilizados en algunas tarjetas musicales. ¿Cómo funcionan? La palabra piezoelectricidad significa “electricidad como resultado de una presión”. Cuando un dispositivo piezoeléctrico se comprime, produce una carga eléctrica. Una aplicación típica con un Arduino es utilizar el transductor como un sensor de contacto. Cuando el transductor se golpea o se cae, el Arduino lo detecta y actúa en consecuencia como, por ejemplo, encendiendo un LED o produciendo un sonido en un altavoz. Por otra parte, si se aplica un voltaje variable con una cierta frecuencia, la vibración de la membrana del transductor puede producir un sonido o nota. Es de este modo que los transductores piezoeléctricos se usan en las tarjetas de felicitación musicales o como timbres. Como hemos visto, un solo transductor piezoeléctrico puede ser utilizado como una entrada o un dispositivo de salida Figura 5.- Transductor Piezoeléctrico En esta práctica vamos a medir la presión con que apretamos un transductor piezoeléctrico conectado a nuestro Arduino. Además, visualizamos estos valores a través del monitor serie que nos proporciona el IDE. En cuanto al Hardware que necesitamos: Universidad Nacional de la Facultad de Ingeniería de Amazonia Peruana Sistemas e Informática 9 Un diodo Zener (BZX55C5) de 5.1 voltios y ½ W. Una resistencia de 1 MΏ. Un transductor piezoeléctrico. Un Protoboard Cablecitos y conexión Un Arduino y un cable USB. Cuando se presionan los transductores piezoeléctricos pueden producir voltajes muy altos, que son capaces de causar daños a la placa Arduino. Un diodo Zener se utiliza para proteger el Arduino de estas altas tensiones. Es importante prestar atención a la polaridad del transductor que normalmente posee un cable rojo y otro negro. TIP 3: • Los diodos Zener (Figura 6) son dispositivos para estabilizar la tensión e intensidad que hay en un circuito cuando se presenta una variación de voltaje en el circuito. El diodo Zener debe ser polarizado inversamente para que adopte su característica de regulación de tensión. Los diodos Zener se utilizan mucho para la protección de os circuitos que no pueden recibir una variación de voltaje, ya que así fuera y se le suministran variaciones de voltaje e intensidad, el dispositivo se dañaría. • En la figura 6 se observa el símbolo y la curva característica que explica su funcionamiento. El diodo Zener debe de estar conectado de manera correcta para que proteja la entrada analógica de Arduino de cualquier voltaje superior a 5.1 voltios. El diodo Zener funciona solo cuando su tensión de ruptura supera 5.1 V. Las tensiones de más de 5.1 V harán que el Zener estabilice a 5.1 V, protegiendo de este modo la entrada del Arduino de tensiones más altas. Figura 6 a.- Imagen de un diodo Zener real Universidad Nacional de la Facultad de Ingeniería de Amazonia Peruana Sistemas e Informática 10 Figura 6b.- Símbolo del diodo Zener Figura 6c.- Característica tensión-corriente del diodo Zener Programa: Monitorizando un Transductor Piezoeléctrico /*Prueba de un Transductor piezoeléctrico */ /*como sensor de fuerza*/ Universidad Nacional de la Facultad de Ingeniería de Amazonia Peruana Sistemas e Informática 11 /*Se trata de apretar con cuidado el piezoeléctrico*/ int SensorPin = A0; int SensorValor = 0; int referencia = 200; void setup() // put your setup code here, to run once: { Serial.begin (9600); } void loop() // put your main code here, to run repeatedly: { SensorValor = analogRead(SensorPin); if (SensorValor > referencia) { Serial.print("Sensor = "); Serial.println(SensorValor, DEC); } delay(10); } Se ha establecido un valor de referencia mínimo de 200 para que a partir de ahí muestre valores en el monitor serie. Estos valores lo leemos (0 a 1023) con la función analogRead(A0) y los visualizamos en decimal (DEC). Una vez montado el esquema según se observa en la figura 7, trate de apretar ligeramente el transductor y verás cómo cambian los valores del sensor. Los podrás en el monitor serie del lDE. Es importante revisar las conexiones del circuito si no pasara nada. Implemente el siguiente esquema en el Proteus: Universidad Nacional de la Facultad de Ingeniería de Amazonia Peruana Sistemas e Informática 12 Figura 7.- Esquema del circuito Monitorizando un Transductor Piezoeléctrico EXPERIENCIA 3: TOCANDO MUSICA CON EL ZUMBADOR En esta nueva práctica vamos a añadirle un zumbador como vimos anteriormente en nuestro último proyecto. Lo conectaremos al pin 8 tal y como se muestra en la figura 8. Figura 8.- Diagrama del Circuito: Tocando un Poco de Música Universidad Nacional de la Facultad de Ingeniería de Amazonia Peruana Sistemas e Informática 13 Programa: Tocando un Poco de Mùsica /*Tocando música desde el Transductor Piezoelectrico*/ int SensorPin= A0; int SensorValor = 0; int threshold = 200; int toneDuracion = 40; int toneFrecuencia = 262; int speakerPin = 8; void setup() // put your setup code here, to run once: { } void loop() // put your main code here, to run repeatedly: { SensorValor = analogRead(SensorPin); if (SensorValor > threshold) { tone(speakerPin,toneFrecuencia,toneDuracion); } } En este sketch hacemos pitar el zumbador si al presionar el transductor piezoeléctrico superamos un valor de referencia de 200 y suena con una frecuencia de tono y una duración definidos al principio del programa. LABORATORIO DE ELECTRONICA DIGITAL
Compartir