Entradas y salidas analógicas, PWM

Una señal eléctrica analógica es aquella en la que los valores de la tensión o voltaje varían constantemente y pueden tomar cualquier valor. En el caso de la corriente alterna, la señal analógica incrementa su valor con signo eléctrico positivo (+) durante medio ciclo y disminuye a continuación con signo eléctrico negativo (–) en el medio ciclo siguiente.

Un sistema de control (como un microcontrolador) no tiene capacidad alguna para trabajar con señales analógicas, de modo que necesita convertirlas en señales digitales para poder trabajar con ellas.

La señal digital obtenida de una analógica tiene dos propiedades fundamentales:

En el caso de un arduino Uno, el valor de 0 voltios analógico es expresado en digital como B0000000000 (0) y el valor de 5V analógico es expresado en digital como B1111111111 (1023).

Por lo tanto todo valor analógico intermedio es expresado con un valor entre 0 y 1023, es decir, sumo 1 en binario cada 4,883 mV.

Arduino Uno tiene una resolución de 10 bits, es decir, unos valores entre 0 y 1023.

Arduino Due tiene una resolución de 12 bits, es decir, unos valores entre 0 y 4095.

Diferencia entre señales analógicas y digitales:

PWM

Como hemos dicho Arduino Uno tiene entradas analógicas que gracias a los conversores analógico digital puede entender ese valor el microcontrolador, pero no tiene salidas analógicas puras y para solucionar esto, usa la técnica de PWM.

Las Salidas PWM (Pulse Width Modulation) permiten generar salidas analógicas desde pines digitales. Arduino Uno no posee salidas analógicas puras.

El arduino due, posee dos salidas analógicas puras mediante dos conversores digital a analógico. Estos pines pueden usarse para crear salidas de audio usando la librería correspondiente.

La modulación por ancho de pulsos (también conocida como PWM, siglas en inglés de pulse-width modulation) de una señal o fuente de energía es una técnica en la que se modifica el ciclo de trabajo de una señal periódica (una senoidal o una cuadrada, por ejemplo), ya sea para transmitir información a través de un canal de comunicaciones o para controlar la cantidad de energía que se envía a una carga.

El ciclo de trabajo de una señal periódica es el ancho relativo de su parte positiva en relación con el período. duty cycle = (tiempo que la salida está a uno o HIGH)/ (periodo de la función)

En este ejemplo se ve como simular con PWM una onda sinusoidal analógica.

En Arduino la frecuencia de PWM es de 500Hz.

En la actualidad existen muchos circuitos integrados en los que se implementa la modulación PWM, por ejemplo para lograr circuitos funcionales que puedan controlar fuentes conmutadas, controles de motores, controles de elementos termoeléctricos, choppers para sensores en ambientes ruidosos y algunas otras aplicaciones.

Definición de PWM en la web de Arduino: http://arduino.cc/en/Tutorial/PWM

No confundir PWM con la funcion tone() que es utilizada para generar una onda cuadrada de ciclo de trabajo 50%, con el fin de emitir sonidos audibles, modificando la frecuencia.

Más información de tone() en: https://code.google.com/p/rogue-code/wiki/ToneLibraryDocumentation

Conversor analógico digital (ADC)

Un microcontrolador solo entiende señales digitales (1’s y 0’s), por lo tanto para poder leer señales analógicas necesitamos los convertidores Analógico a Digital (ADC).

Como funciona un conversor analógico a digital:

Conversor digital  analógico (DAC)

Definición: http://en.wikipedia.org/wiki/Digital-to-analog_converter

Al contrario que las señales analógicas, las señales digitales se pueden almacenar y transmitir sin degradación. Los DAC se usan para los altavoces, amplificadores para producir sonido. Ejemplo de la transmisión de la voz por la líneas telefónicas.

En arduino los pines analógicos se definen y tienen las propiedades siguientes: http://arduino.cc/en/Tutorial/AnalogInputPins

En arduino para tratar las entradas y salidas digitales usamos las siguientes funciones:

Otras funciones interesantes con entradas/salidas analóicas:

Las entradas digitales y analógicas (especialmente estas) son un recurso escaso en los microntroladores, para poder multiplicar esas entradas/salidas, podemos hacer uso de los multiplexores.

Los multiplexores son circuitos combinacionales con varias entradas y una única salida de datos, están dotados de entradas de control capaces de seleccionar una, y sólo una, de las entradas de datos para permitir su transmisión desde la entrada seleccionada hacia dicha salida.

Esta es una técnica muy utilizada para multiplicar las señales, con arduino podemos usar varios shield para multiplexar las señales.

Muxshield: https://www.sparkfun.com/products/11723

Para ver las funciones de la librería de este shield para Arduino se pueden ver en la página 5: http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Dev/Arduino/Shields/Mux_Shield_II_User_Guide.pdf

Permite hasta 48 pines de Arduino. Usa el TI 74HC4067 para la funcionalidad de multiplexación de 16 canales y TI 74HC595 para los registros de cambio (registro de desplazamiento de tres estados). Tiene múltiples modos: entrada y salida digital y entrada analógica

Librería de arduino: Arduino Library

Anuncios

Un pensamiento en “Entradas y salidas analógicas, PWM

  1. Pingback: Curso Arduino Iniciación 2015 | sindofdez

Los comentarios están cerrados.