Autor Tema: Pogramacion pic 16F876 Termometro de 4 canales.  (Leído 48958 veces)

0 Usuarios y 5 Visitantes están viendo este tema.

Desconectado Arbolito

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 893
Re: Pogramacion pic 16F876 Termometro de 4 canales.
« Respuesta #75 en: 01 de Junio de 2006, 19:16:54 »
mas o menos jeje tengo un poco oxidado el tema de converciones y pantallas
bueno te pongo el archivo en c a ver si me explico mejor
cuando veas el archivo vas a ver que multiplico la variavle temp1 por un numero
con este programa cuando tengas 5 volt a la entrada en el lcd veras los 5volt
entonces aora si puedes aplicar la formula de tu sonda
« Última modificación: 07 de Junio de 2006, 22:00:49 por juanacho_ar »
Existo, aunque pienses que no pienso

Desconectado danone

  • PIC12
  • **
  • Mensajes: 78
Re: Pogramacion pic 16F876 Termometro de 4 canales.
« Respuesta #76 en: 01 de Junio de 2006, 19:29:26 »
joder jjaja es curioso , pero en eso tienes razon ya se ve el valor que le estas metiendo, sabes que pasa? que ahora hago eso y despues ya hago la operacion y empieza otra vez a mostrar cosas raras, es como si a la operacion tb hubiese q tratarla con algo.

saludos.

Desconectado danone

  • PIC12
  • **
  • Mensajes: 78
Re: Pogramacion pic 16F876 Termometro de 4 canales.
« Respuesta #77 en: 01 de Junio de 2006, 19:37:31 »
vale ya esta compañero lo hemos logrado, ya va perfecto sabes que pasaba que yo estaba operando teniendo en cuenta de que lo que salia en la pantalla eran milivoltios, que pasa que lo ke sale eran voltios tonces estabamos confundidos.... en vez de dividir habia que multiplicar.

con esto ya tira de pm

  setup_adc_ports(RA0_analog);
     setup_adc(ADC_CLOCK_INTERNAL);
     set_adc_channel(0);
     delay_us(20);
     temp1=read_adc();
     temp1=temp1*0.009803*2;
     temp1=(temp1*100)-tmp;  // en esta linea pasamos temp1 que esta en milivoltios para pasarlo habria que multiplicar por 1000 pero como luego hay que
                                             //dividir entre 10 pues solo multiplicamos por 100 y luego restamos la constante y ya va de lujo .

le metes 750 mv y en la pantalla muestra ya 24.50ºc un valor muy aproximado a los 25 reales q tenian que dar supongo que eso ya se corregira con el vref.

eres un genio tio
« Última modificación: 01 de Junio de 2006, 19:39:18 por danone »

Desconectado Arbolito

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 893
Re: Pogramacion pic 16F876 Termometro de 4 canales.
« Respuesta #78 en: 01 de Junio de 2006, 19:51:06 »
 :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/

jeje ya me parecia esa constante de 50 siempre iba a meternos un valor negativo

pues bien andale haora me pongo a provar con el vendi to referencial que no se porque no me lo compila

bueno veras que es cencillo haora mientros veo el referencial puedes arreglar todo y cargarle el resto de las entradas armalas todas iguales a ver si no chilla y me cuentas
por cierto si lo ases haora subime el archivo C asi no tengo que realizar todo de nuevo es que lo abia borrado  :mrgreen: :mrgreen:
Existo, aunque pienses que no pienso

Desconectado danone

  • PIC12
  • **
  • Mensajes: 78
Re: Pogramacion pic 16F876 Termometro de 4 canales.
« Respuesta #79 en: 01 de Junio de 2006, 20:00:31 »
sip ahora cuando lo haga te lo subo, pero tengo unas serie de dudas... estoy apreciando una serie de desfase de un grado y pico a ver me explico:

introduzco 750mV -----> valor que marca el lcd 24.502729  ---> valor teorico 25ºc
introduzco 500mV -----> valor que marca el lcd -0.98500 -----> valor teorico 0ºC
introduzco 2500mV ----> valor que marca el lcd -26.472800 ---> valor teorico -25ºC

Hay un desfase ahi en las temperaturas, otra cosa yo con la instruccion printf(lcd_putc,"T1=%f",temp1); escribe en la pantalla el valor temp1
la hemos declarado de tipo float. al ser de este tipo tiene porron de decimales, C tiene algun parametro para el printF para que muestre solo 1 decimal? en vez de todos? o tiene C alguna funcion que convierta al entero mas cercano un float?
es que quiero apañar esto mas o menos antes de añadir lo demas.

Tu crees que ese desfase es de calculo de las cuentas que hacemos? o que es por culpa del vref y con eso ya lo solucionamos?


Desconectado Arbolito

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 893
Re: Pogramacion pic 16F876 Termometro de 4 canales.
« Respuesta #80 en: 01 de Junio de 2006, 20:14:43 »
si
 despues de la f pones el numero de enteros que queres que te muestre  un punto y el numero de decimales a mostrar
No te pongo un ejemplo porque jeje no me funciona, no se no puedo verlo en el simuladorjeje no se porque misterios de la simulacion estoy viendo si puedo corregir eso
bueno prueva eso que te digo y me cuentas
ejemplo
printf(lcd_putc,"T1=%f1.3",temp1); deberia mostrar un solo entero y tres decimales

lo que decis de el defasaje es verdad pero se me ocurre que en parte por la referencia y ademas bueno es un simulador y no se que tan perfecto sera pero bueno veo si se puede corregir algo
Existo, aunque pienses que no pienso

Desconectado Arbolito

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 893
Re: Pogramacion pic 16F876 Termometro de 4 canales.
« Respuesta #81 en: 01 de Junio de 2006, 20:18:05 »
perdon es entre el % y la f
Existo, aunque pienses que no pienso

Desconectado danone

  • PIC12
  • **
  • Mensajes: 78
Re: Pogramacion pic 16F876 Termometro de 4 canales.
« Respuesta #82 en: 01 de Junio de 2006, 20:22:58 »
dudas dudas, a ver he probado eso y no tira, pero tira de la siguiente manera printf(lcd_putc,"T1=%1.3f",temp1); hay que ponerlo despues del %, otra cosa pq cuando muestra el -0.2 por ejemplo me lo muestra como si fuese notacion de calculadora y me pone -.2, hay alguna manera de forzarle a escribir el cero? o habria que meter por ahi un if por cojones que compruebe si el valor a mostrar es un 0. y escriba el 0 en otro printf? es que son gilipolleces pero me pica la curiosidad la verdad. ahora monto ya el c y te lo subo modificado.

Desconectado Arbolito

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 893
Re: Pogramacion pic 16F876 Termometro de 4 canales.
« Respuesta #83 en: 01 de Junio de 2006, 20:27:53 »
esa si que no me la acuerdo creo que alguna vez logre escribir de esa forma .2 pero si que no me acuerdo ya ya pero bueno dejame investigar
Por cierto no creo que sean gilipolladas pues la presentacion de final para mi es importante ase que uno se sienta mejor jeje :mrgreen:
Existo, aunque pienses que no pienso

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Pogramacion pic 16F876 Termometro de 4 canales.
« Respuesta #84 en: 01 de Junio de 2006, 20:42:30 »
Perdonar que me entrometa en la conversación pero estais utilizando mal la especificación de salida del "printf". Para sacar correctamente los números en coma flotante (float) se utiliza: "%5.2f" donde el 5 representa el nº de digitos incluyendo el punto decimal y el 2 que tenemos dos decimales, por lo tanto para el ejemplo tendremos 2 enteros, el punto decimal y dos decimales, en total 5 digitos. Si queremos que nos rellene con ceros pondremos "%05.2f". Tal y como lo teneis puesto es una incoherencia ya que: "T1=%1.3f" esta diciendo que tienes un digito en total y por otra parte que quieres tres decimales cuando solo puedes representar un dígito.

Un saludo.
« Última modificación: 01 de Junio de 2006, 20:45:03 por jfh900 »
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado danone

  • PIC12
  • **
  • Mensajes: 78
Re: Pogramacion pic 16F876 Termometro de 4 canales.
« Respuesta #85 en: 01 de Junio de 2006, 20:50:31 »
weno vamos a ver ya he añadido todos, y funciona el unico que no funciona es el sensor 4 que se encuentra en el pin ra5.
creo que el problema esta en el set_adc_channel he probado con set_Adc_channel(5) pq esta en el pin ra5 y tb he probado con set_adc_channel(3) pq es el siguiente canal al ke hemos usao y tampoco.
te subo el codigo los otros tres ya van.


tienes razon jfh900 no se como sera en C , pero si es verdad que si metes 1.3 por ejemplo estas diciendole q tienes 1 digito en total y 3 decimales, pero el compilador es mas listo y añade los digitos que sean necesarios, al menos eso pasa en pascal, y en c por lo ke estoy viendo pasa lo mismo te los añade.
no pasa nada siempre son bien recibidos las aportaciones e ideas.

saludos

Desconectado Arbolito

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 893
Re: Pogramacion pic 16F876 Termometro de 4 canales.
« Respuesta #86 en: 01 de Junio de 2006, 21:02:07 »
el sensor 4 es chanel 4 no es ni 3 ni 5 si lo poes asi andan todos
por cierto lo que dice jfh es correctisimo yo te abia entendido mal la pregunta
« Última modificación: 01 de Junio de 2006, 21:05:42 por juanacho_ar »
Existo, aunque pienses que no pienso

Desconectado danone

  • PIC12
  • **
  • Mensajes: 78
Re: Pogramacion pic 16F876 Termometro de 4 canales.
« Respuesta #87 en: 01 de Junio de 2006, 21:08:15 »
tienes toda la razon ahora si ke los tengo en pantalla todos mostrando datos validos. a ver si sacamos el vref y conseguimos la precision que nos falta, si lo conseguimos apañar todo antes del fin de semana, me pongo en el finde a montarlo ya en placa y posteo fotillos.

una cosa no se si a a ti tb te pasa, la primera vez que empieza mostrando en pantalla, parece q muestra en el lcd valores basura, luego en la segunda vuelta al bucle ya muestra todo correcto. es curioso

« Última modificación: 01 de Junio de 2006, 21:10:35 por danone »

Desconectado Arbolito

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 893
Re: Pogramacion pic 16F876 Termometro de 4 canales.
« Respuesta #88 en: 01 de Junio de 2006, 21:11:30 »
una cosa si no queres que el lcd parpadee tanto(a mi me resulta molesto) tenes que bajar mucho los delay en tre cada printf
otra posibilidad es lo contrario subirlo mas para poder apreciar mas tiempo cada lectura pero bueno eso es cuestion de gustos
me pongo con el ref
Existo, aunque pienses que no pienso

Desconectado danone

  • PIC12
  • **
  • Mensajes: 78
Re: Pogramacion pic 16F876 Termometro de 4 canales.
« Respuesta #89 en: 01 de Junio de 2006, 21:15:15 »
jjejee gracias, ya lo habia cambiado tio, me pasaba como a ti me estaba kedando ciego perdido, lo q pasa q no he dicho nada pq pense q lo habias dejao pa poder ver como cambiaba los digitos. pero ya veo q te pasaba igual :P

jejejej :D


 

anything