Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: kidpic en 14 de Abril de 2009, 19:06:57
Título: configuracion del sensor tc1047
Publicado por: kidpic en 14 de Abril de 2009, 19:06:57
estoy trabajando con una placa de desarrollo y tengo que configurar mi sensor de temperatura que es un tc1047. Su manual dice que ltengo que programar el conversor analogico a digital con referencia externa. Como se haria mediante programa lo estoy haciendo en ccs o bien me podrian dar algun hilo para que me sirva de guia. Gracias
Título: Re: configuracion del sensor tc1047
Publicado por: pibe en 15 de Abril de 2009, 04:05:50
Justamente yo estoy trabajando con el TC1047A, pero lamentablemente en ASM.
Cuando logres habilitar el conversor AD en C te cuento el truquillo que he hecho para convertir la medición :
Con una referencia externa de 2,56v (lo puedes hacer con un LM336z 2,5 y ajustarlo a 2,56) y con la resolución a 8 bits te daría 01h / ºC (ideal para un LM35) . Entonces , cuando leo el ADRESH le resto 50 decimal para equiparar con el TC1047A y miro si me ha dado un valor negativo , en ese caso invierto totalmente el valor con un COMF y le sumo 1. De esta manera me queda exactamente todo el rango de temperatura del TC1047C
MOVLW .50 SUBWF ADRESH,1 ;LE RESTAMOS 50 PARA EQUIPARAR. Y SI LA RESTA DA UN NUMERO NEGATIVO BTFSS ADRESH,7 ; EL BIT 7 ESTARÁ A 1, ENTONCES TENDREMOS UN RANGO ENTRE +127 Y -128 GOTO SALTEA ;NO DIO NEGATIVO, SALTEAMOS
SALTEA ;sigue programa Y MUESTRA EL RESULTADO EN LCD, ETC ETC
Título: Re: configuracion del sensor tc1047
Publicado por: kidpic en 15 de Abril de 2009, 17:12:35
Como podria sumar diez o n valores de la adquisicion , y sacar el promedio para despues mostrarlo por un lcd
Título: Re: configuracion del sensor tc1047
Publicado por: MLO__ en 16 de Abril de 2009, 00:29:06
Hola.
Podria ser algo asi:
Código: C#
for(i=0;i<NumMedidas;i++)
value[i]=read_value();
for(i=0;i<NumMedidas;i++)
ValorTotal +=value[i]
Valor = ValorTotal/NumMedidas;
La variable value[] debe tener una dimension de NumMedidas+1
Saludos
Título: Re: configuracion del sensor tc1047
Publicado por: kidpic en 20 de Abril de 2009, 17:45:03
Tengo que configurar el pic16f887 para trabajar con un sensor de temp tc1047 con referencia externa. como le digo al conversor que trabaje entre cero y vref, la señal del sensor entra por el Pin A5 y la de refernecia por el A3. Como seria la letura enta situacion, sería una lectura directa voltaje -temmperatura?
Título: Re: configuracion del sensor tc1047
Publicado por: MLO__ en 20 de Abril de 2009, 21:40:00
Hola.
Pues usa la funcion set_adc_channel() para configurar los puertos. Lo de la medida, lee bien la hoja tecnica del sensor, ahi debe estar especificada la funcion de transferencia.
Título: Re: configuracion del sensor tc1047
Publicado por: kidpic en 21 de Abril de 2009, 18:31:10
Gracias MLO. Con esta línea de programa (setup_adc_ports(AN0_AN1_AN2_AN4_AN5_VSS_VREF);)le digo al pic para tengo tension de referencia externa por AN3 . Ok. Ahora esta tension de ref donde la utilizo para obtener mi temperatura. Antes la tension de ref interna era de 5 volt y con ella sacaba la resolucion la que despues multiplicaba con el valor leido del adc de esta forma
tempvolt= valor * resolucion (me dá un voltaje aproximado de 0,65v que corresponde de acuerdo a la hoja de caraceristicas del sensor a 18ºC aproximadamente.con esto ningun problema )
Mi pregunta es: Donde tengo que tener en cuenta mi tensión de referencia o como modifico la ecuacion que me da el voltaje que se correponde con la temp. Gracias
Título: Re: configuracion del sensor tc1047
Publicado por: MLO__ en 22 de Abril de 2009, 00:02:27
Ok.
Res = \frac{V_{ref}}{2^{n}}
Donde:
Res: Resolucion del ADC en Volt/bit n : Numeros de bits del conversor (8, 10, etc)
Saludos
Título: Re: configuracion del sensor tc1047
Publicado por: kidpic en 25 de Abril de 2009, 01:27:40
Gracias MLO, todo OK. Otra pregunta: Como podria hacer que con dos pulsadores podria elegir el de selecionar una funcion u otra Como por eejmplo si acciono A0 hacer una esritura en mem externa y si es A1 la lectura de la mem externa. Necesitaria una pista solamente tengo algo diseñado pero no me funciona Gracias
Título: Re: configuracion del sensor tc1047
Publicado por: MLO__ en 25 de Abril de 2009, 14:01:51
Hola.
Se me ocurre un if().
Título: Re: configuracion del sensor tc1047
Publicado por: kidpic en 27 de Abril de 2009, 15:11:01
Gracias MLO, tengo estas líneas de programa utilizandio IF y no puedo saltar a ninguna de las funciones que deseo hacer. ¿ que es lo que puede estar pasando? Te paso las lineas para que le sches un miro Ok?
//PROGRAMA PRINCIPAL void main() { lcd_init(); delay_ms(6); while(TRUE) { delay_ms(500); lcd_gotoxy(1,1); printf(lcd_putc,"Write Mem A0"); lcd_gotoxy(1,2); printf(lcd_putc,"Read Mem A1");
Título: Re: configuracion del sensor tc1047
Publicado por: MLO__ en 27 de Abril de 2009, 15:58:51
Hola.
Lo que pasas es que tienes un delay de 500mS dentro del while(true) y deberias tener muy buena punteria para atinarle justo a las lineas de codigo que evaluan el estado del pulsador. Te recomiendo que saques fuera del while los mensajes de la LCD y dejes dentro del ciclo while solo la verificacion del estado de los pulsadores.
Saludos
Título: Re: configuracion del sensor tc1047
Publicado por: kidpic en 27 de Abril de 2009, 16:25:59
Gracias mlo va caminando
Título: Re: configuracion del sensor tc1047
Publicado por: kidpic en 27 de Abril de 2009, 18:38:37
Otra mano mlo Guardo en memoria los valores 0xff y oxfe: como pdria hacer para leerla, esta es la funcion que implemente pero no visualizo esto valores en hexa
void leer(void){ int dir=0;
lcd_putc("f>>>Leyendo..." ) ; for(dir=0;dir<2;dir++){ //bucle para leer mensajes en eeprom externa y muestra por lcd printf(lcd_putc," %d ~ %s",dir,read_ext_eeprom(dir) ) ; delay_ms(500); //retraso para que se vea en pantalla los mensajes } Gracias
Título: Re: configuracion del sensor tc1047
Publicado por: kidpic en 27 de Abril de 2009, 20:19:10
Solucionado el tema muchachos! Posteo lo corregido:
valor=read_ext_eeprom(dir); printf(lcd_putc," %x",valor); Gracias de todos modos
Título: Re: configuracion del sensor tc1047
Publicado por: MLO__ en 28 de Abril de 2009, 02:11:03
Ok.
En la ayuda del CC$ estan todos los posibles formatos de visualizacion con printf();