conversión análoga digital - inicio analoga digital.pdf · conversor análogo –digital...

29
Conversión Análoga DIGITAL 1

Upload: others

Post on 04-Oct-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

Conversión Análoga DIGITAL

1

Page 2: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

Introducción

Consiste en la transcripción de señales analógicas en señal digital, con el propósito de facilitarsu procesamiento (codificación, comprensión, etcétera) y hacer la señal resultante (digital) masinmune al ruido y otras interferencias a las que son mas sensibles las señales analógicas. (Serbal,2009)

2

Page 3: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

1SEÑAL ANALOGICAEn la naturaleza, el conjunto de señalesque percibimos es analógicas, así la luz, elsonido, la energía etc., son señales quetienen una variación continua. Incluso ladescomposición de la luz en el arco irisvemos como se realiza de una forma suavey continua.

3

Page 4: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

SEÑAL DIGITAL

Se trata de la señal cuyos signos representan ciertos valores discretos que contieneninformación codificada. Los sistemas que emplean señales digitales suelen apelar a la lógicabinaria, de dos estados, los cuales son remplazados por unos y ceros, que indican el estado alto obajo del nivel de tensión eléctrica.

Una señal digital pierde poca calidad y puede reconstruirse por un proceso de regeneración.Estas señales, además, pueden procesarse de manera sencilla y son poco susceptibles al ruidoambiental.

4

Page 5: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

CONVERSIÓN ANALOGICA DIGITAL

Para realizar esa tarea, el conversor ADC (Analog-to-Digital Converter-ConversorAnalógico Digital) tiene que efectuar los siguientes procesos:

Muestreo de la señal analógica.

Cuantización de la propia señal

Codificación del resultado de la cuantización, en código binario.

5

Page 6: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

CONVERSIÓN ANALOGICA DIGITAL

1.4.1. Muestreo

Para convertir una señal analógica en digital el primer paso consiste en realizar un muestreo(sampling) de esta, o lo que es igual, tomar diferentes muestras de tensiones o voltajes endiferentes puntos de la onda senoidal. La frecuencia a la que se realiza el muestreo se denominarazón, taza o también frecuencia de muestreo y se mide en kilohertz (kHz). En el caso de unagrabación digital de audio, a mayor cantidad de muestras tomadas, mayor calidad y fidelidadtendrá la señal digital resultante.

Durante el proceso de muestreo se asignan valores numéricos equivalentes a la tensión o voltajeexistente en diferentes puntos de la sinusoide, con la finalidad de realizar a continuación(EcuRed, 2005).

6

Page 7: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

CONVERSIÓN ANALOGICA DIGITAL

Las tasas o frecuencias de muestreo mas utilizadas para audio digital son las siguientes:

24 000 muestras por segundo (24 kHz)

30 000 muestras por segundo (30 kHz)

44 100 muestras por segundo (44,1 kHz) (Calidad de CD)

48 000 muestras por segundo (48 kHz)

7

Page 8: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

CONVERSIÓN ANALOGICA DIGITAL

La siguiente tabla muestra los valore numéricos del 0 al 7, pertenecientes al sistema decimal ysus equivalentes en código numérico binario. En esta tabla se puede observar que utilizando solotres bits por cada numero en código binario, se puede representar ocho niveles o estados decuantización (Serbal, 2009)

8

Valores en volt Sistema

Decimal

Conversión a Código Binario

0 000

1 001

2 010

3 011

4 100

5 101

6 110

7 111

Page 9: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

1CONVERSOR ANALOGO DIGITAL EN ARDUINO

Un conversor analógico-digital en un dispositivo electrónico capaz de convertir una señalanalógica en un valor binario, en otras palabras, este se encarga de transformar señalesanalógicas a digitales (0 y 1).

Un dispositivo establece una relación entre su entrada (señal analógica) y su salida (digital)dependiendo de su resolución. La resolución determina la precisión con la que se reproduce laseñal original.

9

Page 10: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

CONVERSOR ANALOGO DIGITAL EN ARDUINO

Esta resolución se puede saber, siempre y cuando conozcamos el valor de la entrada a convertiry la cantidad máxima de la salida en dígitos binarios.

Resolucion = +Vref/2^n (donde n son bits)

La tarjeta Arduino utiliza un conversor A/D de 10-bits, así que: Resolución = Vref/1024Mapeara los valores de voltaje de entrada, entre 0 y Vref voltios, a valores enteroscomprendidos entre 0 y 1023(2^n-1). Con esas palabras, esto quiere decir que nuestros sensoresanalógicos están caracterizados con un valor predeterminado entre 0 y 1023.

Si Vref es igual a 5v, la resolución es aproximadamente de 5 milivoltios. Por lo tanto el error enlas medidas de voltaje será siempre 5 milivoltios. (Serbal, 2009).

10

Page 11: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

EJERCICIOS DE APLICACIÓNProgramación en Arduino

Esta función nos inicia la comunicación serie. Por lo tanto, no podemos enviar ni recibir ningúndato a través de la comunicación serie si no hemos ejecutado esta función. A la función hay quepasarle como parámetro la velocidad. En nuestro caso elegiremos 9600 bits por segundo:(EcuRed, 2005)

Void setup(){

Serial.begin(9600);}

A continuación, escribiremos el contenido de la función loop (la función que se ejecutacontinuamente).

void loop() {

11

Page 12: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

EJERCICIOS DE APLICACIÓNConversor análogo – digital

Programación en Arduino

En primer lugar necesitamos un lugar en el que almacenar los datos obtenidos del conversor. Estelugar se denomina variable. Para declarar una variable (es decir, para solicitar este lugar dealmacenamiento) debemos indicar que tipo de dato vamos a almacenar. Sabemos que elconversor devuelve valores enteros comprendidos entre 0 y 1023 (ya que es de 10 bits). El tipode variable que permite almacenar un dato entero es el tipo int. A la variable debemos darle unnombre para poder identificarla así que elegiremos el nombre valorADC. Así pues, el códigoquedara de la forma:

int valorADC;

12

Page 13: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

1.6. EJERCICIOS DE APLICACIÓN1.6.1. Conversor análogo – digital

Programación en Arduino

No obstante un valor de 0 a 1023 no es intuitivo por lo que necesitamos convertirlo a un valorde voltaje. Dado que este valor tendrá numero decimales, el valor obtenido no lo podemosalmacenar en esta variable así que creamos otra que sea de tipo float:

float voltaje;

Una vez creada las variables que necesitamos procedemos a tomar la medida utilizando lafunción analogRead() y pasándole como argumento el pin desde el cual debe leer en conversor(en este caso el pin0 del puerto A). Almacenamos el resultado en la variable valorADC:

valorADC = analogRead(A0)

13

Page 14: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

EJERCICIOS DE APLICACIÓNConversor análogo – digital

Programación en Arduino

A continuación convertimos este valor a un valor de voltaje sabiendo que un valor de 1023corresponde a 5C. Por lo tanto, el valor de voltaje será el valor medido multiplicado por 5 ydividido entre 1023:

voltaje= valorADC * 5.0/1023,0;

14

Page 15: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

EJERCICIOS DE APLICACIÓNConversor análogo – digital

Programación en Arduino

Finalmente enviamos el valor obtenido a través del puerto serie y esperamos 2m antes derealizar la siguiente medida (ya que el conversor necesita que transcurra un tiempo entre unamedida y la siguientes para que los resultados sean correctos):

Serial.println(voltaje);

delay(2)

Por ultimo solo queda compilar el código y descargarlo en la placa. Una vez que estefuncionando solo tenemos que abrir el monitor serie (“serial monitor”) del IDE de Arduino y verel valor de tensión. Si vamos girando el potenciómetro comprobamos como va cambiando elvalor medido.

15

Page 16: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

EJERCICIOS DE APLICACIÓNConversor análogo – digital

Programación en Arduino

16

Page 17: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

EJERCICIOS DE APLICACIÓNConversor análogo-digital (Aumentar luz led)

Descripción

En este programa procedemos por medio de una conversión análogo – digital vamos a iraumentando la velocidad de encendido de leds, este programa funcionara con un potenciómetro elcual ira regulando la velocidad de los leds incorporados

17

Page 18: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

EJERCICIOS DE APLICACIÓNConversor análogo-digital (Aumentar luz led)

Programa En Arduino

18

Page 19: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

EJERCICIOS DE APLICACIÓNConversor análogo-digital (Aumentar luz led)

Simulación

19

Page 20: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

PWM (Control De Ancho De Pulso)

La conversión análoga digital permite traer valores análogos al Arduino con una referencia de 0a 1023, el control de ancho de pulso permite enviar esa referencia por un pin determinado, loque hacemos es modificar un pulso eléctrico el tiempo que se mantenga en 1 lógico.

20

Page 21: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

PWM (Control De Ancho De Pulso)

Programación: El ancho de pulso esta divido en referencias de 0 a 255 y en este caso

solo podemos usar los pines digitales que posee un guion en la numeración de pines.

Lo que cambia de nuestra sección es que ahora en vez de usar un analogRead, lo cambiamos por AnalogWrite, en los pines antes mencionados.

El programa a continuación controlaremos la velocidad de un motor observando el valor

análogo en la comunicación serial mediante un potenciómetro por ende debemos al

valor análogo dividirlo para 4 para tener una referencia hasta 255.

21

Page 22: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

PWM (Control De Ancho De Pulso)Programación En Arduino

22

Page 23: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

PWM (Control De Ancho De Pulso)Simulación

23

Page 24: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

EJERCICIOS

Cambios de velocidad de motor

Descripción

El programa cambiara la velocidad del motor dependiendo cuantas veces se presiona la letra A, ydisminuirá su velocidad cuando se presione la letra B, con un máximo de 5 veces cada una.

24

Page 25: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

1.9 EJERCICIOS

Cambios de velocidad de motor

Programa En Arduino

25

Page 26: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

EJERCICIOS

Cambios de velocidad de motor

Simulación

26

Page 27: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

EJERCICIOS

1.9.2 Control de Giro de Servo Motor

Descripción

El servo motor su funcionalidad es que no gira 360 grados libremente como un motor normal, esun motor con engranes para que tengan mayor fuerza y se pueda girar dependiendo de lasnecesidades del usuario, de manera general se usa el HS-311.

27

Page 28: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

EJERCICIOS

Control de Giro de Servo Motor

Programa En Arduino

28

Page 29: Conversión Análoga DIGITAL - Inicio analoga digital.pdf · Conversor análogo –digital Programación en Arduino Finalmente enviamos el valor obtenido a través del puerto serie

EJERCICIOS

Control de Giro deServo Motor

Simulación

29