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).
Jeferson zuñiga,Jhon segura. Tema Sencillo. Imágenes del tema: follow777. Con la tecnología de Blogger.