You are on page 1of 4

UFPS. Ing. Electromecnica.

Comunicaciones Industriales

Sistema de comunicacin entre Arduino y Matlab para medir


temperatura utilizando comunicacin SPI
Andderson Eduardo Fuentes Guerrero, estudiante 1090791
anddersoneduardofg@ufps.edu.com
Jhon Jairo Rodrguez Gmez, estudiante 1090888
jhonjairorg@ufps.edu.com
Juan Felipe Pinzn Pereira, estudiante 1090814
juanfelipepp@ufps.edu.com

RESUMEN: En este informe mediremos la El MAX6675 es un convertidor Analgico a digital


temperatura en un ambiente deseado por medio de un especializado para termopares tipo K. Con este
termopar tipo K conectado al mdulo interfaz MAX6675 mdulo es posible conectar fcilmente un termopar
que me enva los datos a la plataforma Arduino a cualquier microcontrolador a travs de una
comunicado por la interfaz SPI unidireccional, se interfaz SPI unidireccional. Dentro de este pequeo
comunica el Arduino al software Matlab donde se
programa para que este reciba los datos generados por
circuito se encuentra la electrnica necesaria para
el Arduino y as realizar una grfica en tiempo real. amplificar, compensar y convertir a digital el voltaje
generado por el termopar, lo que hace muy sencilla
PALABRAS CLAVE: Interfaz, modulo, SPI, termo la tarea de conectar un termopar a un
par tipo k microcontrolador.
SPI El Bus SPI (del ingls Serial Peripheral
ABSTRACT: In this report we will measure the Interface) es un estndar de comunicaciones,
temperature in a desired environment by means of a K- usado principalmente para la transferencia de
type thermocouple connected to the interface module
MAX6675 that sends the data to the Arduino platform
informacin entre circuitos integrados en equipos
communicated by the unidirectional SPI interface, the electrnicos. El bus de interfaz de perifricos serie
Arduino is communicated to the Matlab software where it o bus SPI es un estndar para controlar casi
is programmed so that This receives the data generated cualquier dispositivo electrnico digital que acepte
by the Arduino and thus make a graph in real time. un flujo de bits serie regulado por un reloj
(comunicacin sincrnica).
KEYWORDS: Interface, module, SPI, term k type Incluye una lnea de reloj, dato entrante, dato
. saliente y un pin de chip select, que conecta o
desconecta la operacin del dispositivo con el que
1 INTRODUCCIN uno desea comunicarse. De esta forma, este
El proyecto consta de programar en Arduino estndar permite multiplexar las lneas de reloj.
utilizando el protocolo SPI, debido a que el mdulo
MAX6675 utiliza comunicacin serial SPI, este hace la
captura de datos del termopar, a su vez se programa el
software de Matlab y por medio del puerto serial del
Arduino que est conectado al pc, se ejecuta el comando
para graficar en tiempo real los datos obtenidos del termo
par.
.
2 OBJETIVOS
Figura 1: diagrama de comunicacin entre maestro esclavo
Interpretar como funciona la comunicacin SPI utilizado en el protocolo SPI
maestro/esclavo
Operacin
El SPI es un protocolo sncrono. La
3 MARCO TERICO
sincronizacin y la transmisin de datos se realiza
Arduino es una plataforma de prototipos por medio de 4 seales:
electrnica de cdigo abierto (open-source) basada SCLK (Clock): Es el pulso que marca la
en hardware y software flexibles y fciles de usar. sincronizacin. Con cada pulso de este reloj, se lee
Est pensado para artistas, diseadores, como o se enva un bit. Tambin llamado TAKT (en
hobby y para cualquiera interesado en crear objetos Alemn).
o entornos interactivos.

1
UFPS. Ing. Electromecnica. Comunicaciones Industriales

MOSI (Master Output Slave Input): Salida de


datos del Master y entrada de datos al Slave.
Tambin llamada SIMO.
MISO (Master Input Slave Output): Salida de
datos del Slave y entrada al Master. Tambin
conocida por SOMI.
SS/Select: Para seleccionar un Slave, o para que
el Master le diga al Slave que se active. Tambin
llamada SSTE.
La Cadena de bits es enviada de manera sncrona
con los pulsos del reloj, es decir con cada pulso, el
Master enva un bit. Para que empiece la
transmisin el Master baja la seal SSTE
SS/Select a cero, con esto el Slave se activa y
empieza la transmisin, con un pulso de reloj al
mismo tiempo que el primer bit es ledo. Ntese que
los pulsos de reloj pueden estar programados de
manera que la transmisin del bit se realice en 4
modos diferentes, a esto se llama polaridad y fase
de la transmisin:
1. Con el flanco de subida sin retraso.
2. Con el flanco de subida con retraso.
3. Con el flanco de bajada sin retraso.
4. Con el flanco de bajada con retraso.

PROGRAMACION
Programacin hecha en Arduino

El SPI Master(servidor) inicializa el ciclo de


comunicacin cuando se coloca en bajo el Selector
de Esclavo (SS-Selector Slave)(cliente). Master y
Slave(servidor y cliente) preparan los datos a ser
enviados en sus respectivos registros de
desplazamiento y el Master genera el pulso del reloj
en el pin SCK para el intercambio de datos. Los
datos son siempre intercambiados desde el Maestro
al Esclavo en MasterOut-SlaveIn, MOSI, y desde
Esclavo al Maestro en MasterIn-SlaveOut, MISO.
Despus de cada paquete de datos el Maestro debe
sincronizar el esclavo llevando a 'alto' el selector de
Esclavo, SS.

2
UFPS. Ing. Electromecnica. Comunicaciones Industriales

Cuando se configure como Maestro, la interfaz SPI title('TEMPERATURA VS MUESTRAS');


no tendr un control automtico de la lnea SS. Este xlabel('Muestra');
debe ser manejado por software antes de que la ylabel('Temperatura');
comunicacin pueda empezar, cuando esto es ylim([0 100]);
realizado, escribiendo un byte en el registro de la xlim([0 (A-1)/fs]);
SPI comienza el reloj de la SPI, y el hardware grid
cambia los 8 bits dentro del Esclavo. Despus de
cambiar un Byte, el reloj del SPI para, habilitando el Stop=1;
fin de la transmisin ( SPIF ). Si la interrupcin del uicontrol('style','pushbutton','string
SPI est habilitado (SPIE) en el registro SPCR, una ','parar','callback','stop=y(end);');
interrupcin es requerida. El Master podra
continuar al cambio del siguiente byte escribiendo tic
dentro del SPDR, o sealizar el fin del paquete while Stop
colocando en alto el Esclavo seleccionado, lnea if toc> 1/fs
SS. El ltimo byte llegado se mantendr en el tic
registro Buffer para luego usarse. y(1:end-1)=y(2:end);
Cuando lo configuramos como un Esclavo, la y(end)=fscanf(pserial,'%e');
interfaz ISP permanecer durmiendo con MISO en set(l1,'XData',t,'YData',y)
tres-estados siempre y cuando el pin SS este
deshabilitado. En este estado, por el software se drawnow
podra actualizar el contenido del registro SPDR, end
pero los datos no sern desplazados por la llegada end
del pulso de reloj en el pin SCK hasta que el pin SS
no sea habilitado (0). Ser visto como un byte
completamente desplazado en el fin de la
transmisin cuando SPIF se habilite. Si la el comando se inicia llamando el puerto a donde
interrupcin SPI, SPIE en SPCR, est habilitada, est conectado el Arduino para el caso (COM5) y se
una interrupcin es solicitada. El Esclavo podra manda a iniciar la comunicacin entre Arduino y
continuar para colocar nuevos datos para ser Matlab con (fopen), a continuacin se establece (fs)
enviados dentro del SPDR antes de seguir leyendo que es la frecuencia de muestreo, (A) es el rango de
la data que va llegando. El ltimo byte que entra muestras en el tiempo donde matlab muestra una
permanecer en el buffer para luego usarse. grfica y se visualiza las ltimas 100 muestras
(MSTR en SPCR es seteado), el usuario puede medidas en tiempo real, se utiliza el comando
determinar la direccin del pin SS. linspace que funciona de la siguiente manera
Si SS es configurado como salida, el pin es una x=linspace(a,b,n) Genera un vector n puntos desde
salida general la cual no afecta el sistema SPI. a hasta b, cuyos componentes estn espaciados
Tpicamente, el pin SS ser manejado desde el linealmente referenciado de Matlab para ingenieros
Esclavo. Conociendo el principio del comando (t) toma
Si es como entrada, este debe ser enviado a alto valores de (A) puntos 100 que inicia en ,(A-
para asegurar la operacin SPI del Master. 1)/fs hasta (A), a continuacin se plantean
caractersticas generales para la grfica y con el
Programacin de Matlab bucle (while) se configura para que las muestras se
inicien desde el lado derecho y almacene en la
clear all;clc;close all; grfica la toma de datos de la temperatura
anteriores.
delete(instrfind({'Port'},{'COM5'}));
pserial=serial('COM5','BaudRate',9600
);
fopen(pserial);

fs=1;
A=100;
y=zeros(A,1);
t=linspace(0,(A-1)/fs,A);
l1=line(nan,nan,'color','r');

3
UFPS. Ing. Electromecnica. Comunicaciones Industriales

Diagrama de conexin entre el Arduino y el CONCLUSIONES.


max6675
Se comprob que la comunicacin serial SPI solo
se da entre el max6675 y el Arduino, entre el
Arduino y Matlab se dispone es a llamar el puerto
para la toma de datos y disponer de una
programacin adecuada para graficar en tiempo
real

Se observ experimentalmente la toma de muestras


comprobando que la programacin corresponde a
lo que sera el valor de la temperatura real

Se hizo difcil la graficacion en tiempo real la toma


de muestras por lo que es necesario acudir a
comando especiales que ejecuta el software de
Matlab aplicando condicionales lo que nos hizo
posible el muestreo en tiempo real.

REFERENCIAS BIBLIOGRAFICAS.
http://www.esi2.us.es/~jaar/Datos/RegAuto/Practica1.pdf

https://es.wikipedia.org/wiki/Serial_Peripheral_Interface
www.arduino.cc

Figura 2 Diagrama de conexiones Arduino, Max6675


Se procedi a tomar muestras con un cautn
para elevar la temperatura y posteriormente se
coloc en un hielo observando que responde de
acuerdo a lo que se espera que baje la
temperatura de modo gradual.

Figura 8: muestras de temperatura tomadas por el termopar tipo


k, graficadas en el software Matlab

You might also like