[go: up one dir, main page]

0% encontró este documento útil (0 votos)
121 vistas6 páginas

Toma de Datos Con Matlab y Arduino

Este documento describe un proyecto para generar señales con un circuito integrado XR2206 y representarlas mediante Arduino y MATLAB. Se explica el circuito usado para generar ondas cuadrada, senoidal y triangular con el XR2206 y cómo Arduino captura estas señales. Luego, el código de MATLAB recibe los datos de Arduino vía puerto serial y los grafica en tiempo real, permitiendo visualizar las formas de onda generadas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
121 vistas6 páginas

Toma de Datos Con Matlab y Arduino

Este documento describe un proyecto para generar señales con un circuito integrado XR2206 y representarlas mediante Arduino y MATLAB. Se explica el circuito usado para generar ondas cuadrada, senoidal y triangular con el XR2206 y cómo Arduino captura estas señales. Luego, el código de MATLAB recibe los datos de Arduino vía puerto serial y los grafica en tiempo real, permitiendo visualizar las formas de onda generadas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 6

Universidad Mayor De San Andrés

Facultad De Ingeniería
Ingeniería Eléctrica

GENERACIÓN DE SEÑAL CON CIRCUITO


INTEGRADO XR 2206 Y SU REPRESENTACIÓN POR
MEDIO DE ARDUINO Y MATLAB

Nombres: Quinteros Cabrera Alejandro

Carrera: Ing. Eléctrica

Materia: Electrónica de Potencia II Laboratorio

Fecha: 12/12/2019
GENERACIÓN DE SEÑAL CON CIRCUITO INTEGRADO XR 2206 Y SU
REPRESENTACIÓN POR MEDIO DE ARDUINO Y MATLAB

1. CIRCUITO INTEGRADO XR 2206

XR2206 es un circuito integrado diseñado por Exar Corporation, que puede ser
empleado como generador de señales de ondas senoidales, cuadradas, pulsos,
triangular y diente de sierra, la frecuencia y amplitud de onda se pueden variar si se
controla el voltaje. También se lo puede emplear como conversor de voltaje a
frecuencia, haciéndolo apto para su uso como transmisor de radiofrecuencia ya
sea FM o AM. Tiene un ancho de banda de 1 MHz.

El circuito empleado para generar funciones de onda cuadrada, senoidal y triangular


es la el siguiente:

1
El voltaje suministrado por medio de la fuente a el circuito integrado V CC es de 12 V,
con la conexión mostrada, entre el pin 11 y la tierra se obtiene la señal de onda
cuadrada que posteriormente será captada por la placa Arduino.

De igual manera se genera una señal triangular en el pin 2. Cambiando la posición


del conmutador S1 la señal de esta salida pasa a ser senoidal. La frecuencia de las
señales depende de la siguiente relación:

1
𝑓=
𝑅𝐶

Donde R es el valor de la resistencia en el pin 8 y C es el valor de capacitancia entre


los pines 5 y 6.

2. CÓDIGO EN ARDUINO

Arduino es una plataforma de creación de electrónica de código abierto, la cual


está basada en hardware y software libre, flexible y fácil de utilizar para los
creadores y desarrolladores. Esta plataforma permite crear diferentes tipos de
microordenadores de una sola placa a los que la comunidad de creadores puede
darles diferentes tipos de uso.

Para este proyecto se utilizó la placa Arduino para recibir la señal proveniente del
circuito con XR2206 en sus terminales A0 y A1 con el siguiente código:

int valorADC=0;

int valorADC2=0;

void setup()

Serial.begin(9600);  Inicialización y configuración del protocolo serial


(Velocidad= 9600 baudios)

2
void loop()

valorADC = analogRead(A0);  Se toma el dato del canal analogo A0 y se


guarda en la variable valorADC

valorADC2= analogRead(A1);  Se toma el dato del canal analogo A1 y se


guarda en la variable valorADC2

Serial.println(valorADC);  Se envía el dato por protocolo serial del valor


guardado en valorADC

Serial.println(valorADC2);  Se envía el dato por protocolo serial del valor


guardado en valorADC2

delay(50);  Retardo
}

3. CÓDIGO EN MATLAB

MATLAB (abreviatura de MATrix LABoratory, «laboratorio de matrices») es un


sistema de cómputo numérico que ofrece un entorno de desarrollo integrado (IDE)
con un lenguaje de programación propio (lenguaje M). Está disponible para las
plataformas Unix, Windows, Mac OS X y GNU/Linux.

Entre sus prestaciones básicas se hallan la manipulación de matrices, la


representación de datos y funciones, la implementación de algoritmos, la creación
de interfaces de usuario (GUI) y la comunicación con programas en
otros lenguajes y con otros dispositivos hardware. El paquete MATLAB dispone de
dos herramientas adicionales que expanden sus prestaciones, a
saber, Simulink (plataforma de simulación multidominio) y GUIDE (editor de
interfaces de usuario - GUI). Además, se pueden ampliar las capacidades de
MATLAB con las cajas de herramientas (toolboxes); y las de Simulink con
los paquetes de bloques (blocksets).

Es un software muy usado en universidades y centros de investigación y desarrollo.


3
En los últimos años ha aumentado el número de prestaciones, como la de
programar directamente procesadores digitales de señal o crear código VHDL.

Para este proyecto se usó el siguiente código:

function voltaje=ADC_Serial(muestras)  la funcion recibe el # de muestras que


debe tomar

close all;

clc;

voltaje=0;  Declara variable en la cual se van a guardar los valores, borra datos
que se encuentren previos y vuelve a declarar el puerto y la velocidad de
transmisión

delete(instrfind({'port'},{'COM3'}));

puerto=serial('COM3');

puerto.BaudRate=9600;

fopen(puerto);  abre el puerto a utilizar

contador=1;

configura la ventana donde se va a mostrar la grafica:

figure('Name','Grafica voltaje')

title('GRAFICA VOLTAJE ADC-SERIAL');

xlabel('Numero de Muestras');

ylabel('Voltaje (V)');

grid off;

hold on;

4
Ciclo para ir realizando la gráfica paso a paso:

while contador<=muestras

ylim([0 5.1]);  Limites del eje y

xlim([0 contador+50]);  Limites del eje x

valorADC=fscanf(puerto,'%d')';  Toma el valor recibido por el puerto y lo guarda


en la variable

voltaje(contador)=valorADC(1)*5/1024;  Hace la conversión a voltaje

plot(voltaje);  Grafica el voltaje

drawnow

contador=contador+1;

end

cierra y borra el puerto utilizado, borra todas las variables utilizadas

fclose(puerto);

delete(puerto);

end

También podría gustarte