u n i v e r s i d a d v e r a c r u z a n acdigital.uv.mx/bitstream/123456789/41537/1/jimenez... ·...

82
1 U N I V E R S I D A D V E R A C R U Z A N A FACULTAD DE INGENIERÍA REGIÓN VERACRUZ P O S G R A D O PROYECTO DE INTERVENCIÓN PROFESIONAL SISTEMA DE ACONDICIONAMIENTO DE SEÑAL INALÁMBRICO PARA UN SENSOR DE CAMPO MAGNÉTICO BASADO EN TECNOLOGÍA MEMS QUE PARA OBTENER EL GRADO DE: MAESTRIA EN INGENIERÍA APLICADA PRESENTA: ING. SÓCRATES ARAMÍS JIMÉNEZ CARRASCO DIRECTOR DE TESIS: M.C. SAÚL MANUEL DOMÍNGUEZ NICOLÁS BOCA DEL RÍO, VERACRUZ. ENERO 2015.

Upload: hoangtuyen

Post on 19-Sep-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

1

U N I V E R S I D A D V E R A C R U Z A N A

FACULTAD DE INGENIERÍA REGIÓN VERACRUZ

P O S G R A D O

PROYECTO DE INTERVENCIÓN PROFESIONAL

SISTEMA DE ACONDICIONAMIENTO DE SEÑAL INALÁMBRICO PARA UN SENSOR DE CAMPO MAGNÉTICO BASADO EN TECNOLOGÍA MEMS

QUE PARA OBTENER EL GRADO DE:

MAESTRIA EN INGENIERÍA APLICADA

PRESENTA:

ING. SÓCRATES ARAMÍS JIMÉNEZ CARRASCO

DIRECTOR DE TESIS:

M.C. SAÚL MANUEL DOMÍNGUEZ NICOLÁS

BOCA DEL RÍO, VERACRUZ. ENERO 2015.

2

AGRADECIMIENTOS

Le agradezco a Dios por darme salud para poder continuar superándome

profesional y personalmente.

Agradezco a mi esposa el apoyo incondicional que me ha brindado a lo largo de la

maestría, brindándome su comprensión y amor en todo momento, alentándome

siempre a seguir adelante. Le agradezco el tiempo que hemos tenido que

sacrificar para emplearlo en actividades y trabajos relacionados con la maestría.

Agradezco a mi madre que siempre ha estado a mi lado apoyándome para

continuar mis estudios y salir adelante en cada etapa de mi vida, y que me brinda

su ayuda siempre que la necesito. Le agradezco la educación y formación que

desde pequeño me inculcó y que debido a ello siempre estoy en busca de seguir

creciendo tanto personal como profesionalmente.

También quiero agradecer a mi suegra el apoyo que me ha brindado a mí y a mi

familia, que sin duda alguna ha sido de gran ayuda para poder seguir creciendo

personal y profesionalmente.

Agradezco a mi asesor de proyecto y tesis su enseñanza, comprensión, y apoyo, y

por compartir sus conocimientos para llevar a cabo este proyecto. Su asesoría fue

fundamental para el desarrollo de cada etapa del proyecto, así como sus

aportaciones y puntos de vista para el desarrollo de esta tesis.

Finalmente agradezco a mi hijo la dicha de tenerlo a mi lado y verlo crecer

sanamente, porqué también aprendo de él cada día que compartimos, porque él

es mi principal motivación en la vida para seguir adelante, crecer, y ser una mejor

persona y profesionista.

3

RESUMEN

En este trabajo se presenta la implementación de un sistema de generación y

acondicionamiento de señal para un sensor de campo magnético basado en

tecnología MEMS.

En el Capítulo 1 se hace una introducción al tema de sensores, control y

comunicación, y cómo estos se encuentran en nuestra vida cotidiana. Se

mencionan los objetivos y la justificación del proyecto.

En el Capítulo 2 se hace mención a los antecedentes del proyecto, ya que éste

parte de un proyecto publicado en varios artículos científicos. Se explica lo que es

un sensor de campo magnético y sus aplicaciones. Se hace mención al sensor

MEMS utilizado y sus características de operación. Se explica de manera general

en qué consiste el acondicionamiento de señales. También se hace una

introducción a las placas SBC y a la tarjeta Arduino utilizada en el proyecto.

Finalmente se plantea la hipótesis del trabajo.

En el Capítulo 3 se describe cada etapa del proyecto: la etapa de generación y

alimentación del sensor MEMS con señales cuadradas y sinusoidales, la etapa de

acondicionamiento de señal PWM a analógica, la etapa de pruebas y adquisición

de señal generada por el sensor MEMS, la etapa de resultados y conclusiones. En

cada etapa se incluyen figuras, diagramas de flujo, diagramas de bloques e

imágenes reales para una mejor comprensión del proceso y para visualización de

resultados.

4

Después del último capítulo se encuentran las conclusiones generales del

proyecto, en donde se menciona la importancia de cada etapa y de los resultados

obtenidos.

Al final del trabajo se encuentran los anexos y referencias bibliográficas que

sirvieron de apoyo para lograr la realización del presente. En los anexos se incluye

el cronograma de actividades, las metas buscadas, el esquema de la tarjeta

Arduino Nano, las tablas de valores PWM para cada tipo de frecuencia, y los

códigos para generar cada una de ellas.

5

CONTENIDO

CARÁTULA 1

AGRADECIMIENTOS 2

RESUMEN 3

CONTENIDO 5

LISTA DE FIGURAS 8

LISTA DE TABLAS 10

CAPITULO 1. INTRODUCCION 11

1.1. OBJETIVOS 13

1.1.1. OBJETIVO GENERAL 13

1.1.2. OBJETIVOS ESPECIFICOS 13

1.2. JUSTIFICACIÓN 13

CAPITULO 2. MARCO TEORICO 15

2.1 ANTECEDENTES CIENTIFICOS 15

2.2 SENSORES DE CAMPO MAGNETICO 17

2.2.1 DESCRIPCION GENERAL 17

2.2.2 SENSOR BASADO EN TECNOLOGIA MEMS 19

2.3 ACONDICIONAMIENTO DE SEÑAL DE SENSORES 21

6

2.4 PLACAS SBC 22

2.4.1 DESCRIPCION GENERAL 22

2.5 ARDUINO NANO 3.0 23

2.6 PLANTEAMIENTO DE LA HIPOTESIS 24

CAPITULO 3. DESARROLLO DEL SISTEMA 25

3.1 ALIMENTACION DEL SENSOR 25

3.2 GENERACION DE SEÑALES ANALOGICAS 26

3.2.1 ACONDICIONAMIENTO DE SEÑALES PWM A ANALOGICAS 43

3.2.2 GENERACION DE SEÑALES CUADRADAS 47

3.2.3 CONEXION DE ARDUINO AL SENSOR MEMS 52

3.3 AMPLIFICACION DE LA SEÑAL DEL SENSOR MEMS 53

3.4 DEMODULACION DE LA SEÑAL AMPLIFICADA 55

3.5 FILTRADO DE LA SEÑAL DEMODULADA 58

3.6 ADQUISICION DE LA SEÑAL 59

3.7 RESULTADOS 60

CONCLUSIONES 65

REFERENCIAS 69

ANEXOS 71

A.1 CRONOGRAMA DE ACTIVIDADES 71

A.2 METAS 73

7

A.3 ESQUEMA ARDUINO NANO 74

A.4 TABLA DE VALORES PWM PARA 1KHZ 75

A.5 TABLA DE VALORES PWM PARA 14.376KHZ 76

A.6 CODIGO ARDUINO PARA SEÑAL CUADRADA A 1KHZ 77

A.7 CODIGO ARDUINO PARA SEÑAL CUADRADA A 14.41KHZ 78

A.8 CODIGO ARDUINO PARA SEÑAL SINUSOIDAL A 1KHZ 79

A.9 CODIGO ARDUINO PARA SEÑAL SINUSOIDAL A 14.41KHZ 81

A.10 CODIGO ARDUINO PARA SEÑAL CUADRADA A 14.376KHZ 82

8

LISTA DE FIGURAS

Figura 1 Estructura general de un sistema de medición y control 11 Figura 2 Areas de aplicación de los sensores magnéticos 12 Figura 3 Uso de dispositivo MEMS en una rata 15 Figura 4 Magnetograma de una rata 16 Figura 5 Esquema de funcionamiento del sensor MEMS 16 Figura 6 Placa de hierro para pruebas del sensor MEMS 17 Figura 7 Clasificación de sensores de campo magnético 18 Figura 8 Sensor MEMS de campo magnético 19 Figura 9 Operación principal del sensor MEMS de campo magnético 20 Figura 10 Acondicionamiento de señal 21 Figura 11 Esquema general de representación de PWM 26 Figura 12 Gráfica de seno 27 Figura 13 Gráfica de seno con valores positivos 28 Figura 14 Gráfica de seno con rango de 0 a 1 28 Figura 15 Gráfica de seno con rango de 0 a 255 29 Figura 16 Diagrama de flujo para señal sinusoidal de 490Hz 31 Figura 17 Conexión Arduino Nano para generar señal PWM 32 Figura 18 Señal sinusoidal PWM 33 Figura 19 Diagrama de flujo para señal sinusoidal PWM de 1KHz 37 Figura 20 Conexión Arduino Nano para generar señal sinusoidal a 1KHz 38 Figura 21 Diagrama de flujo para señal sinusoidal de 14.376KHz 42 Figura 22 Conexión Arduino Nano para generar señal sinusoidal a 14.376KHz 43

9

Figura 23 Convertidor Digital-Analógico 44 Figura 24 Conexión Arduino Nano para generar señal analógica a 1KHz 45 Figura 25 Conexión Arduino Nano para generar señal analógica a 14.376KHz 46 Figura 26 Diagrama de flujo para señal cuadrada de 1KHz 48 Figura 27 Conexión Arduino Nano para generar señal cuadrada a 1KHz 49 Figura 28 Diagrama de flujo para señal cuadrada de 14.376KHz 51 Figura 29 Conexión Arduino Nano para generar señal cuadrada a 14.376KHz 51 Figura 30 Diagrama de conexión para amplificación de señal del sensor MEMS 53 Figura 31 Diagrama de bloques del amplificador AD524 54 Figura 32 Diagrama de conexión del amplificador AD524 54 Figura 33 Diagrama de conexión para amplificación de señal del sensor MEMS 55 Figura 34 Diagrama de bloques del modulador/demodulador AD630 56 Figura 35 Diagrama de conexión del amplificador AD524 57 Figura 36 Diagrama de conexión del amplificador AD630 57 Figura 37 Filtro de señal demodulada 58 Figura 38 Conexión de Arduino Nano para generar señal PWM 60 Figura 39 Señal cuadrada a 1KHz en un osciloscopio 61 Figura 40 Señal cuadrada a 14.376KHz en un osciloscopio 61 Figura 41 Conexión Arduino - DAC 62 Figura 42 Prueba Experimental 63 Figura 43 Gráfica de la señal de salida 64

10

LISTA DE TABLAS

Tabla 1 Especificaciones de Arduino Nano 3.0 23

Tabla 2 Valores PWM para 490Hz 30

Tabla 3 Valores de prescaler para el Timer1 33

Tabla 4 Valores de prescaler para el Timer2 34

Tabla 5 Valores PWM para 1KHz 36

Tabla 6 Valores de prescaler para el Timer0 39

Tabla 7 Valores PWM para 14.376KHz 40

11

CAPITULO 1. INTRODUCCION

Hoy en día los sensores están presentes en muchas áreas de la vida cotidiana y

en la industria, permiten medir magnitudes físicas para análisis o control. La

utilización de sensores es indispensable en áreas como automatización industrial,

robótica, control ambiental, electrodomésticos, agricultura, medicina, entre otras

áreas.

Un sistema de medición o control está compuesto por la adquisición de la

información realizada por un sensor o transductor, el procesamiento de dicha

información y la presentación de los resultados, de tal forma que puedan ser

percibidos e interpretados por el ser humano1.

Figura 1 Estructura general de un sistema de medición y control (Pallás Areny, 2005)

Existen seis tipos de señales: mecánicas, térmicas, magnéticas, eléctricas, ópticas

y moleculares (químicas). En esta tesis se realizarán mediciones de señales

magnéticas utilizando un sensor de campo magnético basado en tecnología

MEMS (Microelectromechanical Systems).

1 Pallás Areny, R. (2005). Sensores y Acondicionadores de Señal 4a Edición. Marcombo.

Sensor Acondicionador

Acondicionamiento Acondicionador

Transmisión datos

Controlador

Transmisión ordenes

Alarmas

Presentación

Supervisor Sistema planta

o proceso Perturbaciones

Objetivos

12

Los sensores de campo magnético son usados en áreas de medicina, telefonía

móvil, industria del acero, industria automotriz, navegación por GPS, entre otras

áreas.

Figura 2 Areas de aplicación de los sensores magnéticos (Reyes H.)

Un Sistema Microelectromecánico (MEMS) incluye dispositivos a escala

micrométrica que integran componentes eléctricos y mecánicos, por lo tanto los

MEMS son utilizados para reducir el tamaño, ahorrar consumo de energía y

disminuir el costo de los sensores de campo magnético (Herrera May, y otros,

2011)2.

En este proyecto se analizará y probará un sensor de campo magnético basado

en tecnología MEMS, se utilizará una tarjeta Arduino para alimentar y adquirir la

señal generada por dicho sensor, y se diseñará un sistema electrónico para

acondicionar la señal adquirida de manera que se pueda medir de forma lineal. La

transmisión de la señal acondicionada se realizará vía inalámbrica.

2 Herrera May, A. L., García Ramírez, P., Aguilera Cortés, L. A., Martínez Castillo, J., Juárez Aguirre, R.,

Domínguez Nicolás, S. M., y otros. (2011). Design, Fabrication, and Characterization of a Resonant

Magnetic Field Sensor Based on MEMS Technology. México.

13

1.1. OBJETIVOS

1.1.1. OBJETIVO GENERAL

El objetivo general del proyecto es diseñar un sistema de acondicionamiento de

señal de un sensor de campo magnético basado en tecnología MEMS

implementado en un sistema Arduino.

1.1.2. OBJETIVOS ESPECIFICOS

1. Alimentar con señales sinusoidales al sensor de campo magnético

utilizando el sistema Arduino para obtener una respuesta lineal.

2. Acondicionar la señal medida por el sensor de campo magnético.

3. Disminuir el tamaño del sistema de acondicionamiento de señal.

4. Disminuir el consumo de energía del sistema de acondicionamiento de

señal.

5. Transmitir de manera inalámbrica la señal acondicionada a un sistema

receptor el cual permitirá visualizar dicha señal.

1.2. JUSTIFICACIÓN

Existe actualmente un sistema de acondicionamiento de señal que utiliza un

sensor de campo magnético basado en tecnología MEMS el cual permite convertir

la señal de un campo magnético a una señal eléctrica. Este sistema fue

implementado en una tarjeta de circuito impreso (PCB) que contiene un

amplificador instrumental, un demodulador, un filtro paso bajo (LPF), un

convertidor analógico digital (DAC), un PIC, un convertidor de voltaje a corriente,

un sensor MEMS, entre otros componentes.

14

Se necesita optimizar este sistema de acondicionamiento de señal, reduciendo su

tamaño y consumo de energía, esto se busca lograr reemplazando algunos

componentes electrónicos de la PCB, para ello se propone utilizar la tarjeta

Arduino la cual cuenta con componentes electrónicos a pequeña escala y un

microcontrolador con capacidad para manejar señales de entrada y salida tanto

analógicas como digitales. Al disminuir el tamaño del sistema, permitirá una mayor

portabilidad del mismo, y al tener un menor consumo de energía podrá ser

alimentado con una fuente de energía más pequeña, como una pila.

Se requiere que el nuevo sistema de acondicionamiento de señal mantenga la

linealidad de la señal como lo hace el actual sistema. Además se necesita

transmitir vía inalámbrica la señal acondicionada a otro sistema receptor, el cual

será el encargado de visualizar dicha señal.

15

CAPITULO 2. MARCO TEORICO

2.1 ANTECEDENTES CIENTIFICOS

Los campos magnéticos generados por el cerebro o el corazón son muy útiles en

los diagnósticos clínicos, por lo que las señales magnéticas producidas por otros

órganos también son de gran interés.

En diversos artículos científicos se ha publicado el diseño y fabricación de un

sensor MEMS para detectar densidad de flujo magnético. Este sensor es utilizado

en un sistema de acondicionamiento de señal implementado en una PCB.

Con este sistema de acondicionamiento de señal, se realizaron pruebas en ratas

anestesiadas para detectar la densidad de flujo magnético durante su respiración.

Figura 3 Uso de dispositivo MEMS en una rata (Juárez Aguirre, y otros, 2013)

En la Figura 4 se puede ver el magnetograma de una rata durante su respiración,

mientras estaba viva (a), y después de ser sacrificada con una sobredosis (b):

16

Figura 4 Magnetograma de una rata (Juárez Aguirre, y otros, 2013)

Estas pruebas muestran que incluso después de haber sido sacrificada la rata aún

se sigue obteniendo una señal generada por el campo magnético existente.

En otro artículo se describe el diseño de un sensor MEMS para aplicación de

Fugas de Campo Magnético. Este sensor se basa en el Efecto Hall y se propone

que trabaje con corriente por tuneleo.

Este sensor busca detectar en materiales ferrosos grietas o alguna perdida de

espesor. El esquema del funcionamiento se muestra en la Figura 5:

Figura 5 Esquema de funcionamiento del sensor MEMS

17

En una prueba realizada a una placa de hierro de 80 * 30 cm y 2 cm de ancho con

diferentes tipos de fallas no se lograron detectar al 100% dichas fallas, lo que

significa que los sensores de efecto Hall promedio no pueden realizar estas

mediciones debido a la resolución insuficiente que manejan.

Figura 6 Placa de hierro para pruebas del sensor MEMS (Gutierrez Rojas, Gámez Cuatzin, & Gómez Espinosa, 2011)

2.2 SENSORES DE CAMPO MAGNETICO

2.2.1 DESCRIPCION GENERAL

Los sensores de campo magnético son dispositivos en los que una magnitud física

puede producir una alteración de un campo magnético o de un campo eléctrico,

sin que se trate de un cambio de inductancia o de capacidad. Estos sensores

detectan los campos magnéticos que provocan los imanes o las corrientes

eléctricas.

La fuerza de un campo magnético se puede medir utilizando diferentes tipos de

técnicas, cada técnica tiene propiedades únicas que la hacen más adecuada para

aplicaciones particulares. Estas aplicaciones pueden ir desde sensar la presencia

o detectar algún cambio en el campo magnético, hasta medir con precisión las

propiedades escalar y vector de un campo magnético.

20% 40% 70% 100%

30cm

80cm

2cm

18

Los sensores de campo magnético se pueden dividir en dos tipos:

Componente Vector.

Magnitud Escalar.

Los sensores de tipo Vector se pueden dividir a su vez en sensores que son

usados para medir Campo Bajo (<1 mT) y Campo Alto (>1 mT). Los instrumentos

que miden los campos bajos se les conocen normalmente como Magnetómetros, y

a los instrumentos que miden campos altos usualmente se les conoce como

Gaussímetros.

En la Figura 7 se puede ver la clasificación de los sensores de campo magnético.

Figura 7 Clasificación de sensores de campo magnético

Sensores de Campo Magnético

Magnetómetros Gaussímetros

Vector Escalar

Efecto Hall Magnetorresistivo Magnetodiodo Magnetotransistor

Precesión de Protones Bombeo Optico

Bobina de Inducción Saturación SQUID Magnetorresistivo Fibra Optica

19

2.2.2 SENSOR BASADO EN TECNOLOGIA MEMS

El sensor MEMS utilizado fue diseñado y fabricado por un Centro de Investigación

en Micro y Nanotecnología dedicado a la investigación.

Este sensor detecta la densidad del flujo de un campo magnético utilizando la

fuerza de Lorentz, esto se puede ver en la Figura 8. Tiene una estructura

resonante de 700 x 600 x 5 µm, formado por un circuito rectangular, cuatro vigas

flexibles de silicio y un arreglo de vigas de silicio transversales y longitudinales. La

estructura resonante está unida a un sustrato de silicio a través de dos vigas de

torsión (60 x 40 x 5 µm). El sensor MEMS además contiene un puente de

Wheatstone con cuatro piezoresistores tipo p, dos de ellos están posicionados

sobre vigas flexibles y los otros dos sobre la superficie del sustrato de silicio

(Juárez Aguirre, y otros, 2013)3.

Figura 8 Sensor MEMS de campo magnético (Juárez Aguirre, y otros, 2013)

3 Juárez Aguirre, R., Domínguez Nicolás, S. M., Manjarrez, E., Tapia, J. A., Figueras, E., Vázquez Leal, H., y

otros. (2013). Digital Signal Processing by Virtual Instrumentation of a MEMS Magnetic Field Sensor for

Biomedical Applications. sensors, 17

20

El sensor MEMS opera con la fuerza de Lorentz, la cual es generada por la

interacción de una densidad de flujo magnético y una corriente de excitación

sinusoidal a través de un circuito de aluminio, como se muestra en la Figura 9. La

densidad del flujo magnético es aplicada en la dirección longitudinal de la

estructura resonante. La fuerza de Lorentz es amplificada cuando la estructura

resonante opera en su primera frecuencia resonante, esto ocasiona una

deformación longitudinal en los dos piezoresistores ubicados sobre las vigas

flexibles, lo que provoca que cambien sus resistencias iniciales. Esto genera una

variación en la salida de voltaje del puente de Wheatstone. Debido a esto, esta

señal eléctrica está relacionada con la densidad de flujo magnético aplicada al

sensor MEMS (Juárez Aguirre, y otros, 2013)4.

Figura 9 Operación principal del sensor MEMS de campo magnético (Juárez Aguirre, y otros, 2013)

4 Juárez Aguirre, R., Domínguez Nicolás, S. M., Manjarrez, E., Tapia, J. A., Figueras, E., Vázquez Leal, H., y

otros. (2013). Digital Signal Processing by Virtual Instrumentation of a MEMS Magnetic Field Sensor for

Biomedical Applications. sensors, 17

21

2.3 ACONDICIONAMIENTO DE SEÑAL DE SENSORES

Los acondicionadores de señal son elementos de medida que ofrecen a partir de

una señal de salida de un sensor eléctrico, una señal adecuada para ser mostrada

o utilizada en un proceso posterior. Las funciones de los acondicionadores se

pueden clasificar en: filtrado, amplificación, modulación y demodulación, y

adaptación de impedancias.

Figura 10 Acondicionamiento de señal (Cardona Paredes)

Un filtro es un dispositivo que separa las señalas de acuerdo a su frecuencia u

otro criterio. El filtro puede estar ubicado en la etapa de entrada o intermedia.

Cuando el filtro está ubicado en la etapa de entrada, éste puede ser de tipo

eléctrico, mecánico, neumático, térmico, o electromagnético. Cuando el filtro se

encuentra ubicado en una etapa intermedia, normalmente éste es de tipo eléctrico.

Un amplificador es un dispositivo que mediante la utilización de energía, magnifica

la amplitud de un fenómeno. Para este fin se utilizan los amplificadores

operacionales, los cuales tienen como características:

Resistencia de entrada alta (cientos de MΩ).

Resistencia de salida baja (debajo de 1Ω).

Grande ganancia de lazo abierto (de 104 a 106).

Grande CMRR (common mode rejection ratio) (Gd/Gc).

Buen rango de frecuencias de operación.

Baja sensibilidad a las variaciones de la fuente de alimentación.

Gran estabilidad al cambio de temperatura ambiente.

22

La modulación es un conjunto de técnicas para transportar información sobre una

onda portadora, normalmente sinusoidal. Esto permite un mejor aprovechamiento

del canal de comunicación transmitiendo mayor información de manera simultánea

y protegiéndola de ruidos e interferencias. La demodulación como su nombre lo

indica, es lo opuesto a la modulación. Es el conjunto de técnicas para recuperar la

información transportada sobre una onda portadora. Por lo que en cualquier

telecomunicación siempre existirá por lo menos una pareja de modulador-

demodulador.

El objetivo de la adaptación de impedancia es que exista la máxima transferencia

de potencia para permitir que toda la energía enviada por la fuente sea recibida

por los dispositivos alimentados. Si la fuente tiene una impedancia menor al

dispositivo conectado, se requiere colocar resistencia igual a la impedancia de la

fuente en paralelo con el dispositivo de alta impedancia.

2.4 PLACAS SBC

2.4.1 DESCRIPCION GENERAL

Una computadora de placa reducida (SBC) es una computadora completa en un

solo circuito. Su diseño consiste en un procesador, memoria RAM, dispositivos de

entrada y salida (E/S), y todos los dispositivos necesarios para hacer una

computadora funcional en una sola tarjeta que normalmente es de tamaño

reducido y que tiene todo lo que necesita en la placa base.

Debido a los grandes niveles de integración y reducción de componentes y

conectores, las SBC son más pequeñas, livianas, confiables y tienen un mejor

manejo de potencia eléctrica que las computadoras de múltiples tarjetas.

Este tipo de tarjetas se utilizan generalmente en entornos industriales o en

sistemas embebidos que sirven como controladores e interfaces.

23

2.5 ARDUINO NANO 3.0

El Arduino Nano 3.0 es una pequeña placa basada en el microcontrolador

ATMega328, normalmente se usa conectándola a un protoboard. Este Arduino se

alimenta a través del cable USB Mini-B o con una fuente externa.

Las especificaciones del Arduino Nano 3.0 se muestran en la Tabla 1

Especificaciones de Arduino Nano 3.0

Microcontrolador ATmega328

Tensión de Operación (nivel

lógico)

5 V

Tensión de Entrada

(recomendado)

7-12 V

Tensión de Entrada (límites) 6-20 V

Pines E/S Digitales 14 (6 proveen salida PWM)

Entradas Analógicas 8

Corriente máxima por cada

PIN de E/S

40 mA

Memoria Flash 32 KB (ATmega328) de los cuales 2KB son

usados por el bootloader

SRAM 2 KB (ATmega328)

EEPROM 1 KB (ATmega328)

Frecuencia de reloj 16 MHz

Dimensiones 18.5mm x 43.2mm

Tabla 1 Especificaciones de Arduino Nano 3.0 (Arduino, Arduino Website)

24

La velocidad de procesamiento del Arduino Nano es de 16MHz, lo que permite

generar las señales requeridas para el sensor MEMS.

Con sus entradas analógicas el Arduino Nano permite leer señales generadas por

algún sensor, como en este caso un sensor de campo magnético. Cada una de

estas entradas analógicas provee una resolución de 10 bits, esto significa 1024

valores diferentes. También permite generar señales de salida con cualquiera de

sus 14 pines, de los cuales 6 dan la posibilidad de sacar una señal PWM, lo que

es de gran utilidad cuando se busca generar una señal cuadrada o sinusoidal.

2.6 PLANTEAMIENTO DE LA HIPOTESIS

En base al análisis de la literatura, la hipótesis sistema de acondicionamiento de

señal inalámbrico para un sensor de campo magnético basado en tecnología

MEMS utilizando la tarjeta Arduino Nano permitirá reducir el tamaño del actual

sistema de acondicionamiento de señal, reemplazando algunos de sus

componentes electrónicos implementados en la PCB, además reducirá el

consumo de energía de dicho sistema, y permitirá una mayor portabilidad del

mismo.

25

CAPITULO 3. DESARROLLO DEL SISTEMA

3.1 ALIMENTACION DEL SENSOR

El sensor es alimentado por dos señales, una con una frecuencia de 1KHz y otra

con una frecuencia de 14.376Khz. A esta frecuencia el sensor tiene una respuesta

eléctrica con un comportamiento lineal dentro de un rango de 40 µT a 2000 µT.

Para generar dichas señales se utilizó la tarjeta Arduino Nano. Se decidió utilizar

Arduino principalmente porque trabaja con un cristal de cuarzo, lo que tiene como

ventaja una gran estabilidad de frecuencia y fase.

La tarjeta Arduino Nano cuenta con 6 pines que proveen salida PWM. PWM

(pulse-width modulation) o modulación de ancho de pulso es una técnica que se

utiliza para simular una salida analógica variable con una salida digital. Esta señal

es de tipo cuadrada, y su gran característica es que se puede variar la duración

del pulso cuando este se encuentra en positivo o 5 volts. Sin embargo, esta

variación no afecta la duración entre cada pulso o ciclo, lo que significa que la

frecuencia de la señal sigue siendo la misma.

En la Figura 11 se muestra el esquema general de representación de PWM.

La importancia de PWM en este trabajo es fundamental, ya que utilizando esta

técnica se buscó generar las señales cuadradas y sinusoidales requeridas por el

sensor MEMS. Se utilizó una de las salidas PWM que proporciona la tarjeta

Arduino para generar primeramente una señal sinusoidal, que por el momento

sigue siendo una señal digital. Inicialmente se programó el Arduino Nano para

generar la señal PWM a una frecuencia de 490Hz. Se realizó a esta frecuencia

debido a que es la frecuencia predeterminada para PWM en el pin D9 de Arduino.

26

Figura 11 Esquema general de representación de PWM (Instructable)

La generación de la señal se realizó mediante software a través de la

programación del chip ATMega328 incorporado en la tarjeta Arduino Nano. Este

chip se programó en el lenguaje C++ en el IDE propio de Arduino.

Para ambas señales requeridas se generaron de tipo sinusoidales y tipo

cuadradas para determinar cuáles serían las más adecuadas para alimentar al

sensor MEMS.

3.2 GENERACION DE SEÑALES ANALOGICAS

La tarjeta Arduino maneja hasta 256 posibles valores de salida para PWM. Se

pudo haber realizado el cálculo para cada punto durante la ejecución del programa

en tiempo real, sin embargo, teniendo en consideración que el chip ATMega32 es

un dispositivo que cuenta únicamente con 32KB de memoria, se decidió por la

opción de generar una tabla con los posibles valores pre-calculados, de ésta forma,

cuando el programa se ejecuta en tiempo real, se busca en dicha tabla el valor

que le corresponde enviar como señal sin necesidad de realizar todo el cálculo.

27

Para generar esta tabla de valores pre-calculados se realizaron los siguientes

pasos:

Con la ayuda de un software para realizar cálculos, se graficó la fórmula:

Ecuación 1

Como se puede apreciar en la Figura 12, los valores de ésta función se

encuentran en el rango de -1 a 1, como se ha comentado el rango que Arduino

maneja es de 0 a 255, por lo que esta fórmula aún no es suficiente para generar

correctamente los valores de la tabla requerida.

Figura 12 Gráfica de seno

Como primer paso se buscó que el rango de valores de la función seno fueran

valores positivos únicamente, esto se realizó sumando 1 a la función, quedando

de la siguiente manera:

Ecuación 2

28

De esta forma, la gráfica de la función es representada por la Figura 13:

Figura 13 Gráfica de seno con valores positivos

Como se puede ver, el rango de los valores de la función ahora se encuentra de 0

a 2. El siguiente paso fue tener el rango de valores de 0 a 1, esto se logró

dividendo la función entre 2.

Quedando la siguiente fórmula:

Ecuación 3

En la Figura 14 se ve una función seno con valores de 0 a 1:

Figura 14 Gráfica de seno con rango de 0 a 1

29

Finalmente, para obtener el rango permitido por el PWM de Arduino (0 a 255), se

multiplicó la función por 255, quedando de la siguiente manera:

Ecuación 4

En la Figura 15 se puede ver la gráfica de la función final, en la cual el rango de

valores efectivamente es de 0 a 255.

Figura 15 Gráfica de seno con rango de 0 a 255

Para realizar el cálculo de los 256 valores para PWM primero se definió el valor de

paso entre punto y punto. Conociendo que el dominio de la función seno para un

ciclo completo en X positivo es de 0 a 2*PI, la función para el cálculo de paso

queda de la siguiente forma:

Ecuación 5

El valor de paso o incremento es: 0.024543693

30

Una vez obtenido el valor de paso, se pueden obtener los 256 valores de PWM:

Paso X Y

1 0 128

2 0.024543693 131

3 0.049087385 134

… … …

254 6.209554229 118

255 6.234097922 121

256 6.258641615 124

Tabla 2 Valores PWM para 490Hz

El valor de X es generado por la suma de Xn-1 más el valor de paso.

El valor de Y es generado por la función de seno con rango de 0 a 255.

Debido a que Arduino no permite valores decimales para PWM, los valores de Y

se han convertido de valores decimales a valores enteros únicamente.

Como se comentó previamente, la programación del Arduino Nano se desarrolló

en su propio entorno de desarrollo. El diagrama de flujo para esta primera etapa

de la generación de señales se muestra en la Figura 16.

En esta primera etapa se conectó un led a la salida PWM de la tarjeta Arduino

para visualizar la señal a través del cambio en la intensidad de luz en el led. En la

Figura 17 se muestra la conexión de la tarjeta Arduino para generar dicha señal

PWM.

31

Figura 16 Diagrama de flujo para señal sinusoidal de 490Hz

NO

SI

Inicio

Definir Tabla de valores PWM

Configuración Inicial: Pin de salida Paso inicial

Salida de señal PWM correspondiente al paso

actual

Incremento del paso en uno

¿Paso = 256?

Establecer paso = 0

32

Figura 17 Conexión Arduino Nano para generar señal PWM

a) 5V: Conexión a alimentación de 5V.

b) GND: Conexión a tierra.

c) D9: Pin de salida PWM.

d) LED conectado al pin D9.

e) Conexión a PC vía USB Mini-B.

La tarjeta Arduino es alimentada a través del cable USB conectado a la

computadora de desarrollo. La tarjeta Arduino a través de sus pines 5V y GND

sacar una señal de 5 volts y tierra respectivamente, muy útiles para la conexión de

otros dispositivos electrónicos sin necesidad de una fuente externa.

El pin D9 es el pin utilizado como pin de salida PWM, al cual se le ha conectado

un led como indicador de la señal sinusoidal. Visualmente en el led va variando su

intensidad conforme va cambiando la señal de salida en el pin de PWM.

A través del puerto USB de la computadora se adquirieron los valores que se

están escribiendo como salida PWM en el pin D9 del Arduino. En la Figura 18 se

pueden ver estos valores gráficamente.

a b

c

e

d

33

Figura 18 Señal sinusoidal PWM

Para realizar la alimentación al sensor MEMS se necesitan dos señales con

frecuencias de 1KHz y 14.376KHz, en la primera etapa se consiguió generar la

señal de 490Hz, la cual se encontraba por debajo de las dos frecuencias buscadas.

Como se comentó anteriormente, la frecuencia predeterminada del PWM en el pin

D9 de Arduino es de 490Hz, sin embargo, es posible cambiar ésta frecuencia.

Esto se puede lograr modificando el valor del prescaler para el Timer1 del Arduino,

el cual controla la frecuencia del pin D9 y D10. Los posibles valores que puede

tomar el prescaler son:

Configuración Prescaler Frecuencia

0x01 1 31372.55

0x02 8 3921.16

0x03 64 490.20

0x04 256 122.55

0x05 1024 30.64

Tabla 3 Valores de prescaler para el Timer1 (Arduino, Arduino Website)

Las frecuencias mostradas en la tabla anterior se encuentran expresadas en Hz.

La configuración predeterminada es 0x03, la cual tiene una frecuencia de

490.20Hz.

0

240

120

60

180

34

Como se puede ver no existe una configuración exacta para las frecuencias de

1KHz y 14.376KHz.

El prescaler 0x02 tiene una frecuencia de 3921.16Hz, superior a la frecuencia de

1KHz, y el prescaler 0x01 tiene una frecuencia de 122.55Hz, aún más inferior que

la predeterminada. Se procedió a analizar las posibles frecuencias del Timer2.

El Timer2 de Arduino controla las frecuencias para los pines D3 y D11. Los

posibles valores que puede tomar el prescaler para este timer se muestran en la

siguiente tabla:

Configuración Prescaler Frecuencia

0x01 1 31372.55

0x02 8 3921.16

0x03 32 980.39

0x04 64 490.20

0x05 128 245.10

0x06 256 122.55

0x07 1024 30.64

Tabla 4 Valores de prescaler para el Timer2 (Arduino, Arduino Website)

Para el Timer2 la configuración predeterminada es la 0x04, la cual tiene una

frecuencia de 490.20Hz. Al igual que con el Timer1 no existe una configuración

exacta para las frecuencias de 1KHz y 14.376KHz, sin embargo, la configuración

0x03 tiene una frecuencia de 980.39Hz muy cercana a la frecuencia de 1KHz. Se

eligió utilizar este timer con la configuración 0x03 para conseguir la señal de 1KHz.

Teniendo en cuenta que son 256 posibles valores para PWM para la frecuencia de

980.39Hz, se realizó el cálculo para encontrar la cantidad de los posibles valores

que generan la frecuencia de 1KHz.

35

Fa (Frecuencia actual) = 980.36Hz

Va (Valores actuales PWM) = 256

Fb (Frecuencia buscada) = 1000.00Hz

Vb (Valores buscados PWM) = x

Se considera que los valores de las frecuencias son inversamente proporcionales

a los valores PWM. De esta forma se puede calcular la variable Valores

buscados PWM con una regla de tres inversa.

Ecuación 6

La ecuación para encontrar Vb queda de la siguiente manera:

Ecuación 7

Sustituyendo los valores en la ecuación:

La cantidad de posibles valores PWM para generar una señal con frecuencia de

1KHz es:

Redondeando el valor a número entero queda finalmente como:

36

Al igual que en la primera etapa se generó la tabla de valores PWM. Primero se

calculó el valor de paso para 251 puntos.

Ecuación 8

El valor de paso o incremento es: 0.02503261

Una vez obtenido el valor de paso, se pueden obtener los 251 valores de PWM:

Paso X Y

1 0 128

2 0.02503261 131

3 0.05006522 134

… … …

249 6.20808747 118

250 6.23312009 121

251 6.2581527 124

Tabla 5 Valores PWM para 1KHz

El valor de X es generado por la suma de Xn-1 más el valor de paso.

El valor de Y es generado por la función de seno con rango de 0 a 251.

Como se ha comentado, Arduino no permite valores decimales para PWM, por lo

que los valores de Y se han convertido de valores decimales a valores enteros

únicamente.

37

Se desarrolló el programa en Arduino considerando estos valores para generar la

primera señal buscada de 1KHz. El diagrama de flujo para dicho programa se

muestra en la Figura 19:

Figura 19 Diagrama de flujo para señal sinusoidal PWM de 1KHz

Inicio

Definir Tabla de valores PWM

Configuración Inicial: -Selección de Timer2

-Selección de prescaler 0x03 -Tope de paso

-Pin de salida D3 -Paso inicial en 0

Salida de señal PWM correspondiente al paso

actual

Incremento del paso en uno

¿Paso = 251?

Establecer paso = 0

NO

SI

38

Como se puede ver en la Figura 19, el diagrama de flujo para la señal de 1KHz es

muy parecido al diagrama de flujo de 490Hz, la diferencia está principalmente en

el proceso Configuración Inicial, ya que es ahí donde se configuran los registros

de Arduino para el Timer2, estableciendo el prescaler a utilizar y el tope de paso a

251.

Los demás procesos permanecen iguales pero con valores diferentes en la tabla

de valores PWM y en el límite de paso.

En la siguiente imagen se muestra la conexión del Arduino para generar la señal

de 1KHz:

Figura 20 Conexión Arduino Nano para generar señal sinusoidal a 1KHz

a) 5V: Conexión a alimentación de 5V.

b) GND: Conexión a tierra.

c) D3: Pin de salida PWM a 1KHz conectado al osciloscopio.

d) Conexión del osciloscopio a tierra.

e) Conexión a PC vía USB Mini-B.

f) Osciloscopio.

a b

e

c

d

f

39

La segunda señal buscada es una señal PWM a la frecuencia de 14.376KHz. Se

encontraban disponibles los timers Timer0 y Timer1 del Arduino

Las frecuencias del Timer1 se mostraron en la Tabla 3 Valores de prescaler para

el Timer1 . Las frecuencias del Timer0 se muestran en la siguiente tabla:

Configuración Prescaler Frecuencia

0x01 1 62500.00

0x02 8 7812.50

0x03 64 976.5625

0x04 256 244.140625

0x05 1024 61.03515625

Tabla 6 Valores de prescaler para el Timer0 (Arduino, Arduino Website)

Se puede apreciar en la tabla superior que la frecuencia del Timer0 es el doble de

rápido que el Timer1 para el mismo prescaler. La configuración predeterminada

para el Timer0 es la 0x03 con una frecuencia de 976.5625Hz. La siguiente

frecuencia superior es de 7812.50Hz correspondiente a la configuración 0x02, y es

la más cercana a la frecuencia de 14.376KHz.

Se eligió utilizar el Timer0 con la configuración 0x02 para conseguir la señal de

14.376KHz. Al igual como se realizó el cálculo para la señal de 1KHz, se realizó

también el cálculo para encontrar la cantidad de los posibles valores que generan

la frecuencia de 14.376KHz.

Fa (Frecuencia actual) = 976.5625Hz

Va (Valores actuales PWM) = 256

Fb (Frecuencia buscada) = 14376.00Hz

Vb (Valores buscados PWM) = x

40

Utilizando la ecuación Ecuación 7 para encontrar Vb, se sustituyen los valores:

La cantidad de posibles valores PWM son:

Redondeando el valor a número entero queda finalmente como:

Se generó la tabla de valores PWM correspondiente a ésta frecuencia y número

de pasos. Primero se calculó el valor de paso para 17 puntos.

Ecuación 9

El valor de paso o incremento es: 0.04520277

Una vez obtenido el valor de paso, se pueden obtener los 139 valores de PWM:

Paso X Y

1 0 70

2 0.04520277 73

3 0.09040554 76

… … …

137 6.14757699 60

138 6.19277976 63

139 6.23798254 66

Tabla 7 Valores PWM para 14.376KHz

41

El valor de X es generado por la suma de Xn-1 más el valor de paso.

El valor de Y es generado por la función de seno con rango de 0 a 139.

Ecuación 10

Los valores de Y se han convertido de valores decimales a valores enteros.

El programa se desarrolló en Arduino para generar la señal de 14.376KHz. Como

se puede ver en la Figura 21 el diagrama de flujo para la señal de 14.376KHz, los

procesos son los mismos que el diagrama de flujo para la señal de 1KHz, sin

embargo, cambian los valores de la tabla para PWM, la selección del timer, el

límite del paso y el pin de salida.

42

Figura 21 Diagrama de flujo para señal sinusoidal PWM de 14.376KHz

Establecer paso = 0

Inicio

Definir Tabla de valores PWM

Configuración Inicial: -Selección de Timer0

-Selección de prescaler 0x02 -Tope de paso

-Pin de salida D5 -Paso inicial en 0

Salida de señal PWM correspondiente al paso

actual

Incremento del paso en uno

¿Paso = 17?

NO

SI

43

Figura 22 Conexión Arduino Nano para generar señal sinusoidal a 14.376KHz

a) 5V: Conexión a alimentación de 5V.

b) GND: Conexión a tierra.

c) D5: Pin de salida PWM a 14.376KHz conectado al osciloscopio.

d) Conexión del osciloscopio a tierra.

e) Conexión a PC vía USB Mini-B.

f) Osciloscopio.

3.2.1 ACONDICIONAMIENTO DE SEÑALES PWM A ANALOGICAS

El sensor MEMS puede ser alimentado por una señal tipo cuadrada o una señal

sinusoidal analógica. Las señales generadas en el anterior fueron señales

cuadradas. Para generar señales sinusoidales se deben convertir estas señales

digitales en señales analógicas.

El Convertidor Digital-Analógico (DAC) empleado para éste propósito es un filtro

paso bajo compuesto por un arreglo de una resistencia y un capacitor. El pin de

salida PWM se conecta a la entrada del DAC, la cual es un extremo de la

a b

e

c

d

c

44

resistencia, y la salida analógica es el otro extremo de la resistencia que se une

con el capacitor.

En la Figura 23 se muestra cómo está constituido el DAC utilizado:

Figura 23 Convertidor Digital-Analógico

Para el cálculo de la resistencia y capacitor a utilizar en el DAC se realizó con la

fórmula de frecuencia:

Ecuación 11

Dónde:

fc: Es el valor de la frecuencia de la señal.

R: Es el valor de la resistencia en Ohms.

C: Es el valor del capacitor en Faradios.

El valor del capacitor a utilizar era de 0.1uF, y ya se conocía anticipadamente.

Se despejó la fórmula para encontrar el valor de la resistencia, quedando de la

siguiente manera:

Ecuación 12

45

Para encontrar el valor de la resistencia para la señal de frecuencia de 1KHz se

sustituyeron los valores correspondientes en la fórmula:

fc: 1000Hz

C: 0.0000001F

El valor de la resistencia es:

En la siguiente imagen se muestra la conexión del Arduino con el DAC para

generar la señal analógica de 1KHz:

Figura 24 Conexión Arduino Nano para generar señal analógica a 1KHz

a) 5V: Conexión a alimentación de 5V.

b) GND: Conexión a tierra.

c) D3: Pin de salida PWM a 1KHz.

d) Conexión a PC vía USB Mini-B.

e) DAC.

a b

d

c

e

46

Para encontrar el valor de la resistencia para la señal de frecuencia de 14.376KHz

se sustituyeron los valores correspondientes en la fórmula Ecuación 12:

fc: 14376Hz

C: 0.0000001F

El valor de la resistencia es:

En la Figura 25 se muestra la conexión del Arduino con el DAC para generar la

señal analógica de 14.376KHz:

Figura 25 Conexión Arduino Nano para generar señal analógica a 14.376KHz

a b

d

c

e

47

a) 5V: Conexión a alimentación de 5V.

b) GND: Conexión a tierra.

c) D3: Pin de salida PWM a 1KHz.

d) Conexión a PC vía USB Mini-B.

e) DAC.

3.2.2 GENERACION DE SEÑALES CUADRADAS

En los capítulos anteriores se explicó cómo se generaron las señales de 1KHz y

14.376KHz de tipo sinusoidal. Como se necesitaba conocer qué tipo de señal

mostraba mejor calidad, se generaron las señales cuadradas de las frecuencias de

1KHz y 14.376KHz para compararlas con las señales sinusoidales.

Para generar la señal cuadrada de 1KHz de frecuencia se consideró el mismo

prescaler utilizado para generar la señal analógica de esta misma frecuencia. En

la Tabla 4 se pueden ver los diferentes prescalers para el Timer2. El prescaler

0x03 tiene una frecuencia de 980.39 Hz, pero que puede ser alterada realizando

modificaciones en los registros del Timer2.

Al igual que en la generación de la señal analógica de 1KHz, en este caso también

se necesitó realizar el cálculo del valor máximo que debe contar el Timer2 para

generar una señal de 1KHz.

El valor calculado es:

48

Como la señal debe ser cuadrada, esto es, que la mitad de la onda cuadrada se

encuentre en ALTO y la otra mitad en BAJO, para ello se deben modificar los

registros comparadores OCR2A y OCR2B del Timer2.

El registro OCR2A se establece en 250, ya que el Timer cuenta a partir del cero.

El registro OCR2B se establece en 125 para que la señal permanezca la mitad en

ALTO y la otra mitad en BAJO.

En el diagrama de flujo de la Figura 26 se muestran los pasos realizados para el

desarrollo del programa en Arduino para generar la señal cuadrada de 1KHz:

Figura 26 Diagrama de flujo para señal cuadrada de 1KHz

En la Figura 27 se muestra la conexión del Arduino para generar la señal de 1KHz.

Inicio

Configuración Inicial: -Selección de Timer2

-Selección de prescaler 0x03

-Establecer OCR2A=250 -Establecer OCR2B=125

-Pin de salida D3

Lectura de señal

49

Figura 27 Conexión Arduino Nano para generar señal cuadrada a 1KHz

g) 5V: Conexión a alimentación de 5V.

h) GND: Conexión a tierra.

i) D3: Pin de salida PWM a 1KHz conectado al osciloscopio.

j) Conexión del osciloscopio a tierra.

k) Conexión a PC vía USB Mini-B.

l) Osciloscopio.

Para generar la señal cuadrada de 14.376KHz se decidió utilizar el Timer1, ya que

este Timer permite seleccionar el modo CTC (Clear Time Counter) y proporciona

una mayor precisión para frecuencias grandes.

Al igual como se realizó el cálculo para la señal de 1KHz, se realizó también el

cálculo para encontrar el valor máximo al que debe contar el Timer para generar la

frecuencia de 14.376KHz. Considerando que para este modo CTC, la frecuencia

máxima es la del cristal, que corresponde a 16MHz se realiza el siguiente cálculo:

a b

e

c

d

f

50

Fa (Frecuencia actual) = 16000000Hz

Va (Valor máximo actual) = 1

Fb (Frecuencia buscada) = 14376.00Hz

Vb (Valor máximo buscado) = x

Utilizando la Ecuación 7 para encontrar Vb, se sustituyen los valores:

El valor máximo buscado es:

Redondeando el valor a número entero queda finalmente como:

Para el modo CTC se configuran los registros ICR1 y OCR1A del Timer1.

El registro ICR1 se establece en 1113, ya que el Timer cuenta a partir del cero. El

registro OCR1A se establece en 557 para que la señal permanezca la mitad en

ALTO y la otra mitad en BAJO.

En el diagrama de flujo de la Figura 28 se muestran los pasos realizados para el

desarrollo del programa en Arduino para generar la señal cuadrada de 14.376KHz.

51

Figura 28 Diagrama de flujo para señal cuadrada de 14.376KHz

Figura 29 Conexión Arduino Nano para generar señal cuadrada a 14.376KHz

a b

e

c

d

c

Inicio

Configuración Inicial: -Selección de Timer1

-Selección de Modo CTC

-Establecer ICR1=1113 -Establecer OCR1A=557

-Pin de salida D9

Lectura de señal

52

g) 5V: Conexión a alimentación de 5V.

h) GND: Conexión a tierra.

i) D5: Pin de salida PWM a 14.376KHz conectado al osciloscopio.

j) Conexión del osciloscopio a tierra.

k) Conexión a PC vía USB Mini-B.

l) Osciloscopio.

3.2.3 CONEXION DE ARDUINO AL SENSOR MEMS

En la comparación de las señales sinusoidales y cuadradas, se observó una mejor

resolución y precisión en las señales cuadradas, ya que se acercan más a las

frecuencias deseadas y en este caso no presentan distorsión como las señales

sinusoidales.

Tomando esto en cuenta, se realizó la alimentación del sensor MEMS con las

señales cuadradas de 1KHz y 14.376KHz.

Los pines de salida del Arduino para las señales de 1KHz y 14.376KHz son los

pines 6 y 12 respectivamente.

La señal de 1KHz se conecta al sensor MEMS en el pin 4 y la señal de 14.376KHz

se conecta en el pin 5.

La conexión del Arduino al sensor MEMS se muestra en la Figura 30.

La señal de salida del sensor MEMS se encuentra en la escala de los microvolts,

por lo que es necesario utilizar un amplificador para obtener una señal en la escala

de milivolts.

53

Figura 30 Diagrama de conexión para amplificación de señal del sensor MEMS

3.3 AMPLIFICACION DE LA SEÑAL DEL SENSOR MEMS

Para la etapa de amplificación de la señal de salida del sensor MEMS se utilizó el

circuito integrado AD524, el cual es un amplificador de instrumentación diseñado

para aplicaciones de adquisición de datos de alta precisión.

Este amplificador tiene tres pines de ganancia programables de 10, 100 y 1000.

Funciona con un rango de voltaje de alimentación de ±6V a ±18V. La frecuencia

de operación es de 25MHz por lo que no se distorsiona la señal de salida con

respecto a la señal de entrada.

Su diagrama de bloques se muestra en la Figura 31.

12

11

13

15

14

7

6

8

10

9

7

8

1

2

3

6

5

4

MEMS

OUT1 OUT2

GND

GND

GND

GND

VLAZO

VPTE

1

2

5

3

ARDUINO NANO

VIN D1/T

D0/R

RESET RESET

+5V

D2 A7

1uF

+VCC

AGND

4

19

20

18

16

17

24

25

23

21

22

30

29

26

28

27 GND

D3

D4

D5

D6

D7

D8

D9

D10

D11

D12

GND

A6

A5

A4

A3

A2

A1

A0

AREF

3V3

D13

AGND AGND

1uF

54

Figura 31 Diagrama de bloques del amplificador AD524

Como se puede observar en el diagrama de bloques, los pines programables son

el pin 13, 12 y 11 para las ganancias de 10, 100 y 1000 respectivamente. Para la

amplificación de la señal del sensor MEMS se necesita una ganancia de 1000, por

lo que se utilizó el pin 11 del amplificador.

En la Figura 32 se muestra el diagrama de conexión del amplificador AD524:

Figura 32 Diagrama de conexión del amplificador AD524

El esquema de conexión para la amplificación de la señal del sensor MEMS se

muestra en la Figura 33.

55

Figura 33 Diagrama de conexión para amplificación de señal del sensor MEMS

Con esta conexión se logra amplificar la señal del sensor MEMS con una ganancia

de 1000.

El amplificador AD524 amplifica la señal de entrada del sensor MEMS como una

señal modulada de salida. Esto requiere que se tome la señal amplificada y se

demodule para obtener nuevamente una señal sinusoidal.

3.4 DEMODULACION DE LA SEÑAL AMPLIFICADA

Para demodular la señal generada por el amplificador de instrumentación se utilizó

el circuito integrado AD630. Este circuito integrado permite la modulación o

demodulación de una señal a gran velocidad y precisión.

7

8

1

2

3

6

5

4

MEMS

OUT1 OUT2

GND

GND

GND

GND

VLAZO

VPTE

13

12

2

16

8

6

10

11

9

4

5

15

14

1

3

7

AD524

V+ G10

G100

G1000

IN+

RG1

REF

SEN

IN-

RG2

V-

OUT

IN NULL

IN NULL

OUT NULL

OUT NULL

1uF

+VCC

100nF

+VCC

10k

-VCC

AGND

AGND

100nF

56

El AD630 funciona con un rango de voltaje de alimentación de ±5V a ±18V. La

frecuencia de operación es de 350KHz por lo que no se distorsiona la señal de

salida con respecto a la señal de entrada.

Su diagrama de bloques se muestra en la Figura 34:

Figura 34 Diagrama de bloques del modulador/demodulador AD630

En la Figura 35 se muestra el diagrama de conexión del modulador/demodulador

AD630.

El esquema de conexión para la demodulación de la señal amplificada del sensor

MEMS se muestra en la Figura 36.

57

Figura 35 Diagrama de conexión del amplificador AD524

Figura 36 Diagrama de conexión del amplificador AD630

13

12

2

16

8

6

10

11

9

4

5

15

14

1

3

7

AD524

V+ G10

G100

G1000

IN+

RG1

REF

SEN

IN-

RG2

V-

OUT

IN NULL

IN NULL

OUT NULL

OUT NULL

1uF 20

3

4

2

18

11

6

5

12

13

16

14

15

19

AD630

V+ DIFF ADJ

DIFF ADJ

CH A+

CH B+

CM ADJ

CM ADJ CH A-

CH B-

CMPEN

VOUT

RA

RB

RF

9

10 SEL B

SEL A

1

17 RIN A

RIN B

8 V- CS B/A

7

AGND

100nF

-VCC

AGND

100nF

+VCC

AGND

-VCC

10k

58

3.5 FILTRADO DE LA SEÑAL DEMODULADA

La señal de salida del AD630 se conecta a un filtro paso bajo de tercer orden para

eliminar el ruido en la señal, quedando el diagrama de conexión como se muestra

en la Figura 37.

Figura 37 Filtro de señal demodulada

La salida del filtro paso bajo de tercer orden es la señal final del sistema

electrónico y es la señal deseada para ser visualizada y analizada en una

computadora.

20

3

4

2

18

11

6

5

12

13

16

14

15

19

AD630

V+ DIFF ADJ

DIFF ADJ

CH A+

CH B+

CM ADJ

CM ADJ CH A--

CH B-

CMPEN

VOUT

RA

RB

RF

9

10 SEL B

SEL A

1

17 RIN A

RIN B

8 V- CS B/A

7 AGND

2uF 2uF 2uF

6.8K 6.8K 6.8K OUTPUT

SIGNAL

59

3.6 ADQUISICION DE LA SEÑAL

Una vez realizado el sistema electrónico, la adquisición de la señal se puede

realizar a través de una computadora desarrollando un instrumento virtual en

LabVIEW o desarrollando una aplicación en algún lenguaje de programación como

C, Java, .Net, etc.

60

3.7 RESULTADOS

En la etapa de generación de señales se inició programando la tarjeta Arduino

para obtener una señal PWM a la frecuencia predeterminada. El objetivo era

familiarizarse con este tipo de señales y la forma de generarlas desde el mismo

Arduino. Para esto se midió la señal de salida a través de un multímetro y se

conectó un LED al pin de salida para visualizar su comportamiento. En el

multímetro se pudo observar la variación de voltaje y en el LED la variación de su

intensidad luz.

Figura 38 Conexión de Arduino Nano para generar señal PWM

a) 5V: Conexión a alimentación de 5V.

b) GND: Conexión a tierra.

c) D3: Pin de salida PWM a 1KHz conectado a un LED.

d) Conexión del osciloscopio a tierra.

e) Conexión a PC vía USB Mini-B.

Después se programó el Arduino para generar las señales de 1KHz y 14.376KHz

requeridas para el sensor.

a b

c

d

61

En la Figura 39 se puede ver la señal de 1KHz tomada de un osciloscopio

conectado al pin de salida de la tarjeta Arduino. La frecuencia real de la señal es

de 1.002KHz.

Figura 39 Señal cuadrada a 1KHz en un osciloscopio

En la Figura 40 se puede ver la señal de 14.376KHz tomada del mismo

osciloscopio. La frecuencia real de esta señal es de 14.41KHz cercana al objetivo.

Figura 40 Señal cuadrada a 14.376KHz en un osciloscopio

Para la generación de señales cuadradas no se utilizó la tabla de puntos PWM, ya

que la amplitud de la señal es fija al 50%. Sin embargo para la generación de

señales sinusoidales sí es necesaria la tabla, ya que esos valores de salida al

convertirse en una señal analógica forman la onda sinusoidal.

62

Las tablas de valores PWM para las frecuencias de 1KHz y 14.376KHz se han

incluido en los anexos A.4 y A.5 respectivamente.

Los códigos de los programas en Arduino también se han incluido en los anexos

A.6, A.7, A.8 y A.9.

En la Figura 41 se puede ver la conexión de la tarjeta Arduino al DAC creado con

un filtro paso bajo.

Figura 41 Conexión Arduino - DAC

a) 5V: Conexión a alimentación de 5V.

b) GND: Conexión a tierra.

c) D3: Pin de salida PWM a 1KHz.

d) Conexión a PC vía USB Mini-B.

e) DAC.

f) Resistencia.

g) Capacitor.

h) Pin de entrada DAC.

i) Pin de salida DAC.

a b

c

d

e

g

f

63

En la Figura 42 se muestra el montaje experimental utilizado para la

caracterización del sistema de acondicionamiento de señal en el interior de una

cámara medioambiental junto con el instrumento virtual, que se puede ejecutar en

una computadora conectada a la tarjeta de adquisición de datos PCI-DAS6031.

Figura 42 Prueba Experimental

La respuesta eléctrica del sensor a presión atmosférica se obtuvo de manera

experimental utilizando una bobina Helmholtz para aplicar densidades magnéticas

de -150 µT a +150 µT. Para esta prueba el sistema de acondicionamiento de señal

del sensor de campo magnético fue introducido en una cámara medioambiental

(Russells Technical Products modelo G8) con el fin de mantener una

temperatura controlada de 26°C. El sensor fue colocado en el centro de la bobina

Helmholtz, en donde la densidad de campo magnético es homogénea. El puente

64

de Wheatstone del sensor se alimentó con la señal de 1 kHz y el lazo de aluminio

se alimentó con la señal de 14.376 con una corriente de 20 mA.

Con el instrumento virtual se pudo medir el voltaje de salida del sistema

electrónico utilizando la tarjeta de adquisición de datos.

Figura 43 Gráfica de la señal de salida

65

CONCLUSIONES

Considero que la etapa de la generación de señales fue fundamental en el

desarrollo del sistema, ya que las siguientes etapas dependen de la calidad y

frecuencia de las señales que alimentan al sensor MEMS.

Se aprovecharon las ventajas que ofrece la técnica de PWM al permitir modular el

ancho de pulso vía software a través de Arduino, esto significa una disminución de

componentes electrónicos en la placa base, así como también un menor consumo

de energía, cambiando la fuente de alimentación de 15volts por una de 9volts,

suficiente para alimentar a la tarjeta Arduino y demás componentes.

Se realizó una investigación a detalle de las características y posibles

configuraciones de la tarjeta Arduino para generar diferentes tipos de frecuencias.

Se hizo el cálculo del valor máximo de puntos PWM para ajustar las frecuencias

de Arduino a las frecuencias que se necesitaban para alimentar al sensor MEMS,

y se obtuvieron las tablas de valores PWM para cada frecuencia.

En la etapa de generación de señales se comprobó por medio de un osciloscopio

la frecuencia de cada señal. Para la primera señal de 1KHz se generó una señal

de 1.002KHz muy cercana a la objetivo. Para la señal de 14.376KHz se logró

generar una primera señal de 14.41KHz, cercana a la objetivo, sin embargo la

diferencia de 40Hz evita que el sensor MEMS no tenga una respuesta lineal como

se desea, por lo que se buscó a través de otro método en el Timer1 del Arduino

Nano generar una señal más cercana al objetivo, logrando una señal cuadrada

con una frecuencia que variaba de 14.376KHz a 14.375KHz.

66

Debido a que el sensor MEMS genera una señal de salida muy pequeña, en la

escala de microvolts, fue necesario amplificar esta señal para obtener una que

estuviera en la escala de los milivolts. Para esta etapa de amplificación se buscó

un amplificador que trabajara con un voltaje de alimentación de 9volts para utilizar

una única fuente de alimentación para todo el sistema electrónico. Se eligió el

amplificador AD524 que funciona con una alimentación de ±6V a ±18V y que

además es utilizado para aplicaciones con señales de alta precisión. También se

consideró su frecuencia de operación para que no existiera distorsión en la

amplificación de la señal.

La señal amplificada por el AD524 es una señal modulada, por lo que se necesitó

una etapa de demodulación de la señal para recuperar la señal origen del sensor

MEMS amplificada. Para esto se buscó un demodulador que al igual que los

demás dispositivos funcionara con un voltaje de alimentación de 9volts. Se eligió

el modulador/demodulador AD630 ya que funciona con una alimentación de ±5V a

±18V y que además tiene como características que es rápido y de alta precisión.

Al igual que en la etapa de amplificación, en la etapa de demodulación se

consideró la frecuencia de operación para que no existiera distorsión en la

demodulación de la señal.

Al hacer pruebas con el demodulador se observó que se presentaba rizo en la

señal demodulada. Debido a esto se necesitó una etapa más de filtrado de la

señal para eliminar el ruido en ella.

Para la etapa de filtrado se diseñó un filtro paso bajo de tercer orden. Al pasar la

señal demodulada por este filtro se eliminó el rizo no deseado en la señal,

obteniendo una señal analógica esperada.

67

Como se ha descrito en esta tesis, el sistema electrónico desarrollado está

compuesto por varias etapas de acondicionamiento de señales, como son:

Amplificación

Demodulación

Filtrado

El sistema desarrollado está compuesto por los siguientes elementos principales:

Arduino Nano

Sensor MEMS

Amplificador de Instrumentación AD524

Modulador/Demodulador AD630

Filtro Paso Bajo de tercer orden

Adicionalmente se ocuparon algunos componentes electrónicos como capacitores,

resistencias, y potenciómetros para ajustar los principales dispositivos electrónicos

utilizados en el sistema.

El voltaje de alimentación es de 9volts por lo que con una batería pequeña que

proporcione este voltaje se puede hacer funcionar el sistema electrónico.

Este nuevo sistema presenta varias ventajas importantes respecto al actual

sistema, como son:

Menor voltaje de alimentación. El voltaje de alimentación del sistema es de

9volts. El sistema actual se alimenta con dos fuentes de alimentación, una

de 5volts y otra de 36volts.

Menor cantidad de dispositivos electrónicos. Este sistema está compuesto

por 5 dispositivos electrónicos principalmente y de algunas resistencias,

capacitores y potenciómetros. El sistema actual está compuesto por

68

aproximadamente 20 dispositivos electrónicos principales, como el sensor

MEMS, amplificadores de instrumentación, amplificadores operacionales,

PICs, DACs, demoduladores, además de utilizar una mayor cantidad de

resistencias, capacitores, potenciómetros, y otros componentes electrónicos.

Menor tamaño. Este sistema al estar compuesto por una pequeña cantidad

de dispositivos electrónicos lo hace más pequeño que el sistema actual,

además de no utilizar una fuente adicional de 36volts.

Mayor portabilidad. Debido a su menor tamaño, el sistema tiene una mayor

portabilidad que el actual, una característica muy importante en cualquier

sistema electrónico.

Menor precio. El costo de elaboración del sistema es menor al actual,

considerando la cantidad de componentes electrónicos requeridos, y el

precio de ellos.

Como se puede observar en los puntos anteriores se ha logrado una mejora en el

diseño del sistema de adquisición de señales de un sensor de campo magnético

basado en tecnología MEMS.

69

REFERENCIAS

Arduino. (s.f.). Arduino Website. Recuperado el 15 de Marzo de 2014, de

http://playground.arduino.cc/Main/TimerPWMCheatsheet

Arduino. (s.f.). Arduino Website. Recuperado el 08 de Febrero de 2014, de

http://arduino.cc/es/

Cardona Paredes, E. E. (s.f.). Blogspot. Recuperado el 08 de Febrero de 2014, de

http://1512775.blogspot.mx/2013/05/22-acondicionamiento-de-senal.html

Domínguez Nicolás, S. M., Juárez Aguirre, R., García Ramírez, P. J., & Herrera

May, A. L. (2011). Signal Conditioning System with a 4-20 mA Output for a

Resonant Magnetic Field Sensor Based on MEMS Technology. México.

Domínguez Nicolás, S. M., Juárez Aguirre, R., Herrera May, A. L., García Ramírez,

P., Figueras, E., Gutierrez D., E. A., y otros. (2013). Respiratory Magnetogram

Detected with a MEMS Device. International Journal of Medical Sciences, 6.

Gutierrez Rojas, C. A., Gámez Cuatzin, H., & Gómez Espinosa, A. (2011). Diseño

Conceptual MEMS Aplicado a la Detección de Fugas de Campo Magnético.

RISCE Revista Internacional de Sistemas Computacionales y Electrónicos, 42.

Hansman, J. (2000). Measurement, Instrumentation, and Sensors. CRC Press LLC.

Herrera May, A. L., García Ramírez, P., Aguilera Cortés, L. A., Martínez Castillo, J.,

Juárez Aguirre, R., Domínguez Nicolás, S. M., y otros. (2011). Design, Fabrication,

and Characterization of a Resonant Magnetic Field Sensor Based on MEMS

Technology. México.

70

Instructable, T. (s.f.). Instructables. Recuperado el 15 de Marzo de 2014, de

http://www.instructables.com/id/Analog-Output-Convert-PWM-to-Voltage/

Juárez Aguirre, R., Domínguez Nicolás, S. M., Manjarrez, E., Tapia, J. A., Figueras,

E., Vázquez Leal, H., y otros. (2013). Digital Signal Processing by Virtual

Instrumentation of a MEMS Magnetic Field Sensor for Biomedical Applications.

sensors, 17.

Pallás Areny, R. (2005). Sensores y Acondicionadores de Señal 4a Edición.

Marcombo.

Reyes H., L. (s.f.). Laboratorio de Electrónica. Recuperado el 08 de Febrero de

2014, de http://fisica.udea.edu.co/~lab-gicm/Lab%20electronica_2013.htm

71

ANEXOS

A.1 CRONOGRAMA DE ACTIVIDADES

Alumno: Jiménez Carrasco Sócrates Aramís Asesor:

M. C. Saúl Manuel Domínguez Nicolás

Proyecto:

Sistema de acondicionamiento de señal inalámbrico para un sensor de campo magnético basado en tecnología MEMS.

Modalidad: Tesis Fecha: 15-feb-14

Cronograma

Actividad Feb Mar Abr May Jun

1 Título y Asesor

2 Reuniones con Asesor

3 Pruebas con tarjeta Arduino

3.1 Adquisición de señales analógicas

3.2 Generación de señales analógicas

3.3 Generación de señales sinusoidales

4 Pruebas con sensor de campo magnético

4.1 Análisis de sensor

4.2 Adquisición de señales generadas por el sensor

5 Integración de Arduino con sensor de campo magnético

5.1 Alimentación del sensor usando Arduino

5.2 Adquisición de señales generadas por el sensor

5.3 Acondicionamiento de señal adquirida

5.4 Transmisión inalámbrica de la señal filtrada

6 Escritura de Tesis

Observaciones:

Las reuniones con el asesor se realizarán los días sábados.

Las pruebas son realizadas en casa y en el laboratorio.

72

Descripción del Cronograma de Actividades:

Título y Asesor: Esta es la primera actividad del proyecto, en el que se

define el título que va a llevar el trabajo a realizar y el asesor asignado para

dar seguimiento al mismo.

Reuniones con Asesor: Esta actividad se lleva a cabo a lo largo de todo

del proyecto, se revisan avances, se aclaran dudas, se realizan pruebas.

Pruebas con tarjeta Arduino: En esta actividad se investigará las

características y métodos para adquirir y generar señales digitales y

analógicas con Arduino. Primero se realizarán pruebas con la tarjeta

Arduino para adquirir señales digitales y analógicas. Después se realizarán

pruebas para generar señales digitales y analógicas. Finalmente se buscará

acondicionar las señales digitales o analógicas como señales sinusoidales

principalmente.

Pruebas con sensor de campo magnético: Para esta actividad ya se

debe haber completado la actividad anterior para realizar pruebas con el

sensor MEMS. Como primera instancia se realizará un análisis de las

características y funcionamiento del sensor. Posterior a ello, se realizarán

pruebas con el sistema actual para adquirir y analizar las señales

generadas por el sensor MEMS. Estos resultados se podrán comparar con

los del nuevo sistema para ver las diferencias entre ellos.

Integración de Arduino con sensor de campo magnético: En esta

actividad se llevará a cabo la conexión entre la tarjeta Arduino y el sensor

MEMS. Se realizarán pruebas alimentando el Arduino al sensor con señales

cuadradas y sinusoidales. Se realizarán pruebas con Arduino de

adquisición de señales generadas por el sensor MEMS. Finalmente, se

deberá integrar un componente junto a Arduino para transmitir

inalámbricamente la señal adquirida.

Escritura de Tesis: Esta actividad consiste en escribir en la tesis todos los

procedimientos utilizados para llevar a cabo el proyecto, así como pruebas

y resultados. El resultado de esta actividad deberá ser la tesis para

titulación de grado de Maestro en Ingeniería Aplicada.

73

A.2 METAS

1. Revisión de referencias bibliográficas.

2. Generación de señales cuadradas y sinusoidales a través de la tarjeta

Arduino Nano.

3. Alimentación del sensor MEMS de campo magnético con señales

cuadradas o sinusoidales a la frecuencia adecuada.

4. Diseño y desarrollo del sistema de acondicionamiento de señal inalámbrico.

5. Integración del sensor, acondicionamiento de señal y presentación de señal

acondicionada.

6. Obtención del grado de Maestro en Ingeniería Aplicada.

7. Publicación y aceptación de al menos un artículo de investigación.

74

A.3 ESQUEMA ARDUINO NANO

Especificaciones:

Microcontrolador ATmega328

Tensión de Operación (nivel lógico)

5 V

Tensión de Entrada (recomendado)

7-12 V

Tensión de Entrada (límites) 6-20 V

Pines E/S Digitales 14 (6 proveen salida PWM)

Entradas Analógicas 8

Corriente máxima por cada PIN de E/S

40 mA

Memoria Flash 32 KB (ATmega328) de los cuales 2KB son usados por el bootloader

SRAM 2 KB (ATmega328)

EEPROM 1 KB (ATmega328)

Frecuencia de reloj 16 MHz

Dimensiones 18.5mm x 43.2mm

75

A.4 TABLA DE VALORES PWM PARA 1KHZ

128,131,134,137,140,143,147,150,153,156,159,162,165,168,171,174,177,180,

183,186,189,191,194,197,200,202,205,207,210,212,215,217,219,221,223,225,

227,229,231,233,235,237,238,240,241,243,244,245,246,248,249,250,250,251,

252,253,253,254,254,254,255,255,255,255,255,255,255,254,254,253,253,252,

252,251,250,249,248,247,246,245,243,242,240,239,237,236,234,232,230,228,

226,224,222,220,218,216,213,211,209,206,203,201,198,196,193,190,187,184,

182,179,176,173,170,167,164,161,158,154,151,148,145,142,139,135,132,129,126

,123,120,116,113,110,107,104,101,97,94,91,88,85,82,79,76,73,71,68,65,62,

59,57,54,52,49,46,44,42,39,37,35,33,31,29,27,25,23,21,19,18,16,15,13,12,10,

9,8,7,6,5,4,3,3,2,2,1,1,0,0,0,0,0,0,0,1,1,1,2,2,3,4,5,5,6,7,9,10,11,12,14,15,17,18,

20,22,24,26,28,30,32,34,36,38,40,43,45,48,50,53,55,58,61,64,66,69,72,75,78,

81,84,87,90,93,96,99,102,105,108,112,115,118,121,124

76

A.5 TABLA DE VALORES PWM PARA 14.376KHZ

70,73,76,79,82,85,88,91,94,97,100,103,105,108,111,113,115,118,120,122,

124,126,128,129,131,132,134,135,136,137,137,138,138,139,139,139,139,139,

138,138,137,136,135,134,133,132,130,129,127,125,123,121,119,117,114,112,

109,107,104,101,98,96,93,90,87,84,80,77,74,71,68,65,62,59,55,52,49,46,43,41,

38,35,32,30,27,25,22,20,18,16,14,12,10,9,7,6,5,4,3,2,1,1,0,0,0,0,0,1,1,2,2,3,4,

5,7,8,10,11,13,15,17,19,21,24,26,28,31,34,36,39,42,45,48,51,54,57,60,63,66

77

A.6 CODIGO ARDUINO PARA SEÑAL CUADRADA A 1KHZ

const int pin = 3;

const int top = 251;

const int half = top / 2;

void setup()

TCCR2A = _BV(COM2A1) | _BV(COM2B1) | _BV(WGM20);

TCCR2B = _BV(WGM22) | _BV(CS21) | _BV(CS20);

OCR2A = top - 1;

OCR2B = half;

pinMode(pin, OUTPUT);

void loop()

78

A.7 CODIGO ARDUINO PARA SEÑAL CUADRADA A 14.41KHZ

const int pin = 5;

const int top = 139;

const int half = top / 2;

void setup()

TCCR0A = _BV(COM0A1) | _BV(COM0B1) | _BV(WGM01) | _BV(WGM00);

TCCR0B = _BV(WGM02) | _BV(CS01);

OCR0A = top - 1;

OCR0B = half;

pinMode(pin, OUTPUT);

void loop()

79

A.8 CODIGO ARDUINO PARA SEÑAL SINUSOIDAL A 1KHZ

const int pin = 3;

const int top = 251;

const int half = top / 2;

const int steps[] =

128,131,134,137,140,143,147,150,153,156,159,162,165,168,171,174,177,180,183

,186,189,191,194,197,200,202,205,207,210,212,215,217,219,221,223,225,227,22

9,231,233,235,237,238,240,241,243,244,245,246,248,249,250,250,251,252,253,2

53,254,254,254,255,255,255,255,255,255,255,254,254,253,253,252,252,251,250,

249,248,247,246,245,243,242,240,239,237,236,234,232,230,228,226,224,222,220

,218,216,213,211,209,206,203,201,198,196,193,190,187,184,182,179,176,173,17

0,167,164,161,158,154,151,148,145,142,139,135,132,129,126,123,120,116,113,1

10,107,104,101,97,94,91,88,85,82,79,76,73,71,68,65,62,59,57,54,52,49,46,44,42,

39,37,35,33,31,29,27,25,23,21,19,18,16,15,13,12,10,9,8,7,6,5,4,3,3,2,2,1,1,0,0,0,0

,0,0,0,1,1,1,2,2,3,4,5,5,6,7,9,10,11,12,14,15,17,18,20,22,24,26,28,30,32,34,36,38,

40,43,45,48,50,53,55,58,61,64,66,69,72,75,78,81,84,87,90,93,96,99,102,105,108,

112,115,118,121,124

;

int pos = 0;

void setup()

TCCR2A = _BV(COM2A1) | _BV(COM2B1) | _BV(WGM20);

TCCR2B = _BV(WGM22) | _BV(CS21) | _BV(CS20);

OCR2A = top - 1;

OCR2B = half;

pinMode(pin, OUTPUT);

80

void loop()

if(pos == top)

pos = 0;

analogWrite(pin, steps[pos]);

pos++;

81

A.9 CODIGO ARDUINO PARA SEÑAL SINUSOIDAL A 14.41KHZ

const int pin = 5;

const int top = 139;

const int half = top / 2;

const int steps[] =

70,73,76,79,82,85,88,91,94,97,100,103,105,108,111,113,115,118,120,122,124

,126,128,129,131,132,134,135,136,137,137,138,138,139,139,139,139,139,138,13

8,137,136,135,134,133,132,130,129,127,125,123,121,119,117,114,112,109,107,1

04,101,98,96,93,90,87,84,80,77,74,71,68,65,62,59,55,52,49,46,43,41,38,35,32,30,

27,25,22,20,18,16,14,12,10,9,7,6,5,4,3,2,1,1,0,0,0,0,0,1,1,2,2,3,4,5,7,8,10,11,13,1

5,17,19,21,24,26,28,31,34,36,39,42,45,48,51,54,57,60,63,66

;

int pos = 0;

void setup()

TCCR0A = _BV(COM0A1) | _BV(COM0B1) | _BV(WGM01) | _BV(WGM00);

TCCR0B = _BV(WGM02) | _BV(CS01);

OCR0A = top - 1;

OCR0B = half;

pinMode(pin, OUTPUT);

void loop()

if(pos == top)

pos = 0;

analogWrite(pin, steps[pos]);

pos++;

82

A.10 CODIGO ARDUINO PARA SEÑAL CUADRADA A 14.376KHZ

const int pin = 9;

void setup()

setupFrequencyGen();

setFrequency(1114);

void loop()

void setFrequency(int d)

if(d<0)

d=-d;

if(d<2)

d=2;

TCCR1B&=0xfe;

TCNT1=0;

ICR1=d;

OCR1A=(d/2);

TCCR1B|=0x01;

void setupFrequencyGen()

TCCR1A=0b10000010;

TCCR1B=0b00011001;

setFrequency(1114);

pinMode(pin,OUTPUT);