JEFERSON ANDRES ZUÑIGA,JHON KEVIN SEGURA

lunes, 16 de septiembre de 2013


Con la implementan de distintos parámetros se tomo en cuenta algunos objetivos uno de ellos era que teníamos que trabajar con un voltaje de 1 voltio pico a pico pero esto tiene distintos métodos para resolver  lo primordial es leer el datasheet de nuestro microcontrolador, Con ello se realizo la ejecución de la transmisión serial por ende con la ayuda que nos presenta nuestro microncontrolador podemos reconocer que aplicando VSS VREF en la parte donde decidimos los que vamos a trabajar los puertos análogos y con la funcion VSS VREF , con ello cumplimos a cabalidad con los objetivos planteados al principio de este diseño.



#include<18f4550.h>
#device adc=8
#use delay (clock=4000000)
#use rs232 (baud=9600, xmit=pin_c6, rcv=pin_c7, PARITY=N, BITS=8)
#fuses xt, nowdt, put

#INT_AD 
adc_termino()
{
output_low(PIN_D0);
}
int nivel;
float voltaje;

void main()
{
set_tris_a (0xff);
set_tris_d (0x00);
setup_adc(ADC_CLOCK_DIV_8);  //sobre que vamos a dividir la frecuencia del conversor
setup_adc_ports(all_analog| VSS_VREF);
set_adc_channel(0);         // canal a usar donde se usa el andc0
enable_interrupts(GLOBAL);
enable_interrupts(INT_AD);
while(TRUE)
{
read_adc(ADC_START_ONLY);
output_high(PIN_D0);
nivel=read_adc(ADC_READ_ONLY);           //leer la conversión 
putc(nivel);

}
}

domingo, 8 de septiembre de 2013

..

TEMPERATURA

lo siguiente es la explicacion de como se realizo el codigo y el montaje de un medidor de temperatura realizado con la pic 18f4550 y el sensor de temperatura LM 35

- lo primero que se procedio a realizar fue el montaje del circuito antes simulado en proteus 

                                         fig.1 proteus simulacion de temperatura[1] 

los elementos que se utilizaron para desarrollarlo fueron:
 -proteus : lm 35 , pic18f4550, virtual terminal 
para realizar la programacion de la pic18f4550 fue necesario utilizar el sofware PIC C COMPILER
en el cual se implemento el siguiente codigo:

#include <18f4550.h>//pic a utilizar
#device adc=8//bits
#use delay(clock=4000000)//reloj o cristal a utilziar
#fuses xt,nowdt,put
#use rs232(baud=9600, xmit=pin_c6,rcv=pin_c7,PARITY=N,BITS=8)//datos de la comunicacion
float temperatura;
void main()
{

// convierte los datos analogos a digitales del lm35//
setup_adc_ports(RA0_ANALOG);//ENTRADA DEL LM35 PUERTO AO
setup_adc(ADC_CLOCK_INTERNAL);//reloj
setup_COUNTERS(RTCC_internal,rtcc_div_1);//marca de division 
set_adc_channel(0);
//


printf("temperatura");
delay_ms(350);

//ciclo para que siempre mueste la temperatura
while (true)
{
temperatura=(float)read_adc()*2.125;
//lee el convertidor y se lo asigna a la variable temperatura 
;
printf("%f",temperatura);
printf("grados\n\r");
delay_ms(200);
}
}

en la practica estos datos fueron observados en el hercules una herramienta que permite mirar los datos que se transmiten en la comunicacion serial 

                                            fig.2 hercules datos sobre la temperatura[2]

ya con la configuracion de la pic y con los resultados obtenidos se procedio a generar un codigo en MATLAB para graficar la temperatura vs tiempo de forma que pueda observarse en tiempo real
para ello se implemento el siguiente codigo:

%borrar previos
delete(instrfind({'Port'},{'COM1'}));

s=serial('COM1');
set(s,'BaudRate',9600);
set(s,'DataBits',8);
set(s,'Parity','none');
set(s,'StopBits',1);
set(s,'FlowControl','none');
fopen(s);

tmax = 100; % tiempo de captura en s
rate = 2; % resultado experimental 
% preparar la figura
f = figure('Name','Captura');
a = axes('XLim',[0 tmax],'YLim',[0 4]);
l1 = line(nan,nan,'Color','k','LineWidth',2);

xlabel('Tiempo (s)')
ylabel('Temperatura (T)')
title('Captura de temperatura en tiempo real con PIC')
grid on
hold on
% inicializar
v1 = zeros(1,tmax*rate);

i = 1;
t = 0;
 
% ejecutar bucle
tic
while t<tmax
    t = toc;
    % leer del puerto serie
    a = fscanf(s,'%d,%d')';
    v1(i)=a(1)*5/256;
    
    % dibujar en la figura
    x = linspace(0,i/rate,i);
    set(l1,'YData',v1(1:i),'XData',x);
   
    drawnow
    % seguir
    i = i+1;
end
% resultado del cronometro
clc;
%% Limpiar
fclose(s);
delete(s);
clear s;

para lo cual se obtuvo la siguiente grafica 


                                                      fig.3 señal graficada en MATLAB [3]





REFERENCIAS
[1]imagen sacada de proteus por jeferson zuñiga de su pc
[2]imagen obtenida en los laboratorios de la umng
[3]imagen generada en matlab por jeferson zuñiga 

viernes, 6 de septiembre de 2013

GENERAR UN .CSV CON LABVIEW

TOMANDO LABVIEW(archivo .csv)

Como habiamos dicho anterior mente se estaba por escoger un programa que nos permitiera tanto leer los datos enviados por nuestro pic 18f4550 hacia nuestro pc y realizara la lectura,al momento de leerlos  los almacenara en un archivo .csv el cual se establecieran tanto  la variación de voltaje ala que estaba siendo afectada y el tiempo de muestreo y conversión de dicho proceso.
por este motivo primordialmente se tomo un entorno de diseño hacia C# pero al notar problemas presentados por la velocidad que no era la esperada se decidió mudar a un lenguaje mas amigable y eficiente en el aspecto de la velocidad el cual fue  labview.Con este entorno de programacion  que es mucho mas amigable habían varios problemas para crear el archivo .csv por este motivo les traigo una forma de  implementar  una estructura de bloques con los cuales podemos realizar dicha acción para nuestro reto de diseño.

En la Figura 1 se podra denotar un pequeño ejemplo tomado de internet el cual nos permite realizar la crear y guardar archivos .csv en labview.



m
REFERENCIA: Tomada de Nacional Instruments ejemplos labview


martes, 3 de septiembre de 2013

IMPLEMENTACION DE OTRO LENGUAJE

Tomando en cuenta los objetivos planteados a resolver con el diseño se puso comprender que consta de la implementan tanto del lenguaje picc para proceder a la programación interna de la pic18f4550, que realiza la conversión análogo digital y envía esta información de forma serial,para poder obtener esos valores y guardarlos en un archivo csv luego el cual lo implementamos en Matlab y obtenemos nuestra gráfica.

lunes, 2 de septiembre de 2013

ANALISIS DE TIEMPO.

En esta trabajo lo que se hizo fue realizar un codigo en PIC C COMPILER para lograr establecer la diferencia de tiempos entre PUTC Y PRINTF observando que uno muestra el carácter ascci y el otro muestra el nivel de cuatizacion en el que se encuentra el voltaje o señal de entrada

                                        fig.1 nivel de cuatizacion

en la figura 1 se puede observar como al variar el  potenciometro que lo que hace es variar el voltaje de entrada se varia el nivel de cuantizacion en el que se encuentra la señal.

           fig.2 caracter ascci 

en la figura 2 se puede observar como varia el carácter ascci entregado al variar el voltaje.



a la hora de realizar los analisis los tiempos de muestreo varia debido a que cada comando "printf" y "putc" tienen un tiempo distinto uno mas largo que el otro y eso incide en el tiempo de muestreo.




domingo, 1 de septiembre de 2013

Como cargar un archivo .csv en MATLAB

Principalmente debemos verificar que tengamos un archivo en donde tengamos dos columnas para este caso tendremos un archivo que nos vota el osciloscopio Rigon, Con este archivo guardado en nuestro computador en un destino nosotros lo vamos a guardar en el escritorio.

luego se procedió a abrir el software Matlab para estoy hay distintas formas de abrir el archivo en Matlab la que vamos a usar es la mas eficiente la cual consiste en arrastrar el archivo csv y soltarlo en la ventana de Matlab como se podrá observar en la Figura 1,Al hacer esto el abre en la composición interna de nuestro archivo en ello podemos cambiar el nombre de la columna,dar intervalos de donde hasta donde queremos evaluarlo por ejemplo evaluaremos desde todo el intervalo luego le damos en la opción import selection , luego de ello el crea una matriz después de ello es solo implementar el comando plot(v,t) tomando v como la matriz de voltaje y el t como el tiempo de muestras con ello obtenemos la gráfica.


Figura1 ventana de matlab[1]
Referencia:
[1]Figura 1 tomada del pc, Matlab Autor (Ing.Jhon Kevin Segura).

viernes, 30 de agosto de 2013

TARJETA FT232RL.


Con esta tarjeta de desarrollo con conexión USB mas conocido como convertidor serie asíncrono ,contamos con  3 regletas conectadas a nuestro integrado permitiendo un mejor uso sobre una protoboard teniendo en cuenta que trabaja con un terminal de salida de 3.3v y puede proveer hasta 50mA para lógica externa de ser necesario, con esta tarjeta nos ahorramos un gran espacio en nuestro protoboar ya que no tenemos que conectar nuestro max 232 ni los condensadores correspondientes para dicho proceso,una mayor ventaja y versatilidad que nos ofrece esta tarjeta es que nos permite trabajar con un cable (mini-USB) en un extremo y en el otro USB haciendo así que lo podamos trabajar en cualquier computador si no contamos con un puerto dv9, En el caso de los ultrabook esto es un gran aporte ya que podemos trabajar con este protocolo de una manera fácil y agradable.


Fig1. Tarjeta FT232RL.[1]
[1]Aportes e imagen tomados (online): Autor Sigma Electronica Ltda http://www.sigmaelectronica.net/manuals/TARJETA%20FT232.pdf
Espero les sirva saludos =D

jueves, 29 de agosto de 2013

DIFERENCIAS PIC 18F4550 Y 16F877A


En este diseño cambiaremos la pic que fue utilizada anteriormente para desarrollar algunas comunicaciones seriales y proyectos como un generador de señales debido al objetivo y función del presente diseño a implementar.

antes se utilizo la pic 16f877A debido a que es un microprocesador común, fácil de programar y muy asequible en este diseño se migrara a la pic 18f4550 aunque son de el mimo fabricante y se utiliza la misma forma de programar es un poco mas costosa pero mejora algunas prestaciones como lo son las de memoria velocidades,y algunos beneficios a la hora de hacer la comunicación serial a continuación se mostraran algunas características de las pic´s antes mencionadas .


16f877a                                                    vs                                                 18f4550

-MCLR/VPP                                                                               -MCLR/VPP/UOE
-RA4/T0CKI/C1OUT                                                                     -RA4/T0CKI/C1OUT/RCV
-RE0/AN5                                                                                  -RE0/AN5/CK1SPP
-RB1                                                                                                 -RB1/AN10/INT1/SCK/SCL                                                                                    


-UOE:Salida OE de un transceptor USB exter
-CK!SSP:Salida de leroj 1 del SSP
-AN10: Entrada analógica AN10
-INT1: Interrupción externa 1
-SCK: Línea de reloj del SPI
-SCL: Línea de reloj del I2C




Estas son algunas características que poseen las pic´s cabe rescatar que el principal motivo para cambiar la pic fue la velocidad de trabajo ya que en este diseño se quiere optimizar al máximo el tiempo de muestreo y el tiempo de conversión que se realizara en un buffer


estos son los pines dados por el fabricante de la pic 18f4550

[1]http://ww1.microchip.com/downloads/en/devicedoc/39632c.pdf


                                                                Fig.1 datasheet del micro


en esta publicación fue tomada la fuente de :http://www.granabot.es/granabot/Guadalbot/Documentacion/Comparacion%2016F877_18F4550.pdf

miércoles, 28 de agosto de 2013

TIPOS DE CONVERTIDORES

En el día de hoy se investigo sobre los convertidores análogo digital encontrando algunos tipos que podemos utilizar y pueden ser útiles para el desarrollo de este diseño se identificaron características de trabajo y algunas características al implementarlas sobre un microprocesador.

Primero ahí que entender que hace un convertidor analógica digital nos permite transformar una señal analógica que normalmente esta dada por un voltaje en una representación digital que esta dada por números binarios del valor correspondiente a la tensión en el pin de entrada para poder trabajarla.

Las aplicaciones mas común en de estos convertidores provienen de sensores de temperatura,humedad, acelerometros etc. 


los convertidores son los siguientes:


-Convertidor Análogo-Digital de Rampa de Escalera.

Figura.1 Convertido  Escalera.[1]


-Convertidor Análogo-Digital por Aproximaciones sucesivas.
Figura 2 Aproximaciones sucesivas.[2]
-Convertidor De Doble Rampa
Figura 3 Convertidor De Doble Rampa.[3]

-Convertidor Voltaje Frecuencia.

Figura 4 convertidor voltaje frecuencia.[4]




                                                   -Convertidor Análogo-Digital Paralelo(Flash).
Figura 5 convertidor Flash [5]


-Convertidor Sigma-delta.



Figura 6 Convertidor Sigma-delta[6]



Referencias:

[1]Figura 1 tomada (online) Autor Huircan,Juan Ignacio http://quidel.inele.ufro.cl/~jhuircan/PDF_CTOSII/ad03.pdf  

[2]Figura 2 tomada (online) Autores: Huircan,Juan Ignacio http://quidel.inele.ufro.cl/~jhuircan/PDF_CTOSII/ad03.pdf  

[3]Figura 3 tomada (online) Autores: Huircan,Juan Ignacio http://quidel.inele.ufro.cl/~jhuircan/PDF_CTOSII/ad03.pdf  

[4]Figura 4 tomada (online) Autores: Huircan,Juan Ignacio http://quidel.inele.ufro.cl/~jhuircan/PDF_CTOSII/ad03.pdf  

[6]Figura 6 tomada (online) pagina 23 Autor (Convertidores Digital-Analógico y Analógico-Digital)ftp://ftp.ehu.es/cidira/dptos/depjt/Instrumentacion/BK-ANGEL/03_ConvertidoresADC_DAC/Convertidores.pdf

martes, 27 de agosto de 2013

LEVANTAMIENTO DE INFORMACION

En el día de hoy lo que se hizo fue revisar información acerca de proyectos antes realizados y leer algunos textos sobre los rangos de cuantizacion aclarando dudas.

http://profesores.fi-b.unam.mx/procvoz/Practicas/Practica04.pdf

En esta pagina podemos ver los diferentes rangos de cuantizacion que podemos encontrar y el comando que se puede utilizar en matlab para calcularlo directamente.

En el siguiente link podemos observar que este es mas orientado al trabajo que queremos realizar ya que aclaran conceptos y muestran como se podria implementar con un microcontrolador esto nos da una guía y unos parámetros para la configuración de la nuestra.

http://galia.fc.uaslp.mx/~cantocar/microprocesadores/EL_Z80_PDF_S/24_ADC.PDF

ademas de esto muestran que es un conversor analogico digital y los parametros vistos en clase como la configuracion del reloj.


lunes, 26 de agosto de 2013

En la primera revisión de laboratorio se realizo un montaje con la pic18f4550 teniendo en cuentas las características del datasheet se programo con lenguaje C en la herramienta de PIC C compiler el siguiente codigo:

#include<18f4550.h>
#device adc=8
#use delay (clock=4000000)
#use rs232 (baud=9600, xmit=pin_c6, rcv=pin_c7, PARITY=E, BITS=8)
# fuses xt, nowdt, put 
int nivel;
float voltaje;

void main()
{

set_tris_a (0xff);
set_tris_d (0x00);
setup_adc(ADC_CLOCK_DIV_8);
setup_adc_ports(all_analog);
while(TRUE)
{
set_adc_channel(0);
nivel=read_adc();
putc(nivel);
}
}


con este codigo se procedio a realizar el montaje utilizando la comunicacion serial RS-232 para visualizar el resultado obtenido en el software hercules 


los voltajes de la señal fueron variados para mirar los niveles de cuantizacion



DESARROLLO

Los objetivos de este diseño son los siguientes :


1) Analizar los parámetros de los conversores A/D tales como numero de bits de conversión, técnica de conversión, tiempo de conversión, tiempo de muestreo y parámetros de la comunicación serial tales como la tasa máxima de transferencia de muestras por unidad de tiempo.

2) Establecer los limites de muestreo para el sistema de conversión analógico digital seleccionado.

3) Diseñar e implementar un software en C++ que permita la captura y almacenamiento de las muestras obtenidas por el sistema en un archivo tipo .csv.El programa debe entregar un reporte donde se especifique claramente el tiempo de muestreo utilizado, el rango de cuantizacion, tamaño del nivel de cuantizacion, el tiempo de adquisición y el numero de muestras adquiridas.

4) Optimizar el diseño para alcanzar la máxima tasa de muestreo posible y la mayor velocidad de transferencia posible.

5) Implementar un hardware complementario que permita la medida de la variable temperatura y que realice un muestreo y visualización continua de la variable mediante una gráfica de temperatura VS tiempo.

OBSERVACIONES

1) La señal a mostrar debe estar entre 0 y 1 voltio pico.¿como se debe ajustar el rango de cuantizacion?

2) La visualización de los resultados se deben realizar mediante un programa en matlab que lea el archivo .csv almacenado y grafique las señales.   

3) Los resultados deben socializarse mediante un blog creado para el grupo de laboratorio.

4) El grupo de trabajo debe generar un documento formato IEEE con los resultados del trabajo realizado.


Jeferson zuñiga,Jhon segura. Tema Sencillo. Imágenes del tema: follow777. Con la tecnología de Blogger.