Noticias:

Grupo en telegram, del foro de meteorología fácil: https://t.me/meteorologiafacil

Para mas detalles, puedes visitar el siguiente tema http://www.meteorologiafacil.com.ar/foros/index.php?topic=1608.0

Espero que les sea de mucha utilidad.

Menú Principal

HIH4000

Iniciado por velazquezbio, Junio 17, 2010, 06:55:41 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

velazquezbio

Hola, fui a elko, compre un HIH4000-3, mmm 147 con el IVA, no tenian el -1 el -3 es mas preciso, pero realmente con el otro alcanzaba y salia 100, pense que estaba 90 porque calcule con el IVA al 10.5% pero me cobraron el 21%, no deberia de ser 10.5%.

Por otro lado uso el ADC en 8 bits, estoy usando CCS, la conversion a volts depende de mi fuente o la dejo en 5V por default?

Leo el ADC lo guardo en q0
TensionHIH = (q0 * 5.0 / 255)

mi fuente esta entregando 5.33v que valor pongo???

por otro lado la variacion de humedad es cada 31mv, pero tomando el promedio de 100 valores, varia la lectura del adc en 1 no queda clavada, cada incremento en el ADC de 1 en 1 me hace variar 20mv con redondeo haca arriba.

Es mucha variacion? deberia mantenerse, tengo cap de 100nf entre Vcc y vdd en el PIC el USB y el LCD y en vcc y gnd en los medidores.

me doy por satisfecho o no?

Gracias Velazquezbio

David Met

Hola Velazquezbio. Decidí dividir el tema porque es interesante tratar este tema por separado para futuros usuarios que tengan el mismo problema y quieran aportar algo más.

CitarPor otro lado uso el ADC en 8 bits, estoy usando CCS, la conversion a volts depende de mi fuente o la dejo en 5V por default?

Me parece que tienes un error de concepto o yo no te entendí.
En el pic tienes dos maneras de tomar la tensión de referencia para el ADC, usando la alimentación de la fuente (la que le llega al pic) o desde dos pines para la tensión +Vref y -Vref.

Si selecciona la fuente, el ADC hará la conversión con la tensión de referencia que le llega al pic. En tu caso de 0 a 5,33V (no de 0 a 5V) La otra opción que tienes, es utilizar los pines o el pin +Vref para entregarle 5V a través y mantenerle esta tensión con un regulador de precisión. Me parece que por esos 0,33V de diferencia, el regulador no podrá trabajar, para resolver ese problema, si cuentas con una tensión de 7, 8, 9, 10, 11, o 12V puedes conectar esa tensión al regulador para que te entregue 5V sin importar la tensión que le llega al PIC.

Ahora bien, en cuanto a la fórmula, te convendrá usar el valor de la tensión de referencia, si utilizas la opción de la fuente, te sugiero que coloques 5,33 en la fórmula. Lamentablemente, al trabajar con decimales, le impondrá al CP del PIC una carga pesada tardando en realizar la cuenta. Trabajar con decimales, es trabajar con dos cifras independiente en un mismo número, ¿me explico? primero se resuelve los decimales y luego se hacen los acarreos al entero (si corresponde) para luego resolver el entero. Como te darás cuenta, el trabajo es el doble.

También lo que puedes hacer, es colocar un potenciómetro conectado a la fuente y al pin +Vref. Eliges que el ADC tome como refencia positiva el pin +Vref y luego, para colocarlo a punto tienes una opción muy precisa y muy fácil. Colocas al sensor en una masa de aire saturada y regulas el potenciómetro hasta que llegue a sensar 100% de humedad.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

velazquezbio

Bien, gracias, la verdad pense que iba por ese lado, el tema es que el dipositivo lo estoy haciendo portatil. tengo un conversor a/d midiendo la bateria en el ciclo de lectura de los sensores, eso solucionaria el tema de la salida radiometrica? en el calculo de la humedad?

Porque sino... que pasaria cuando me este quedando sin pilas? mediria mal?

Esto quizas hasta es una ofensa para la  vista... se puede conectar un 7805 para regular los 5v? o por ser una pila/bateria no....mmmm.

Gracias Velazquezbio

David Met

Entiendo. ¿Cuál es la tensión de la batería?
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

velazquezbio

uso dos de 3.6v son  las de los mp4, en serie, mi idea era trabajar con el 18f14k50 pero todavia no lo trajo el importador de microchip. y no lo consigo, con ese le pondria una bateria de 3.6 de litio, igual tengo mis dudas respecto  a si funcionara bien el HIH que opinas?

Hice mediciones, hace un ratito.  :\ en la terraza 1 hora de 2030 a 2130... guarde en la EEPROM y me dio el promedio 12°C y humedad 79% estoy en capital barrio saavedra. aca la imagen del  servicio meteorologico.



lo raro el sol jejeje estoy muy contento. :baba

Vere como sigue ahora veremos lo de la bateria.

Ademas puse un LDR servira a manera de luxometro? con alguna adaptacion?

O0

David Met

Felicitaciones por las mediciones. :\ :\

Entiendo que ahora estás haciendo trabajar al PIC, al sensor de temperatura y al HIH a 7,2V y con un regulador a 5V ¿verdad?
El HIH, según el datasheet, puede trabajar entre 4 a 5,8V por lo que trabajar a 3,6 voltios no te servirá.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

velazquezbio

#6
Cita de: David Met en Junio 17, 2010, 09:53:21 PM
Felicitaciones por las mediciones. :\ :\
GRACIAS

Digamos que hago... trampa, tengo las dos baterias, pero meti un trimer en el medio, cuando lo saco de casa, me lo llevo a la terraza lo regulo con eso, el consumo es bastante constante cundo se estabilizo la medicion, pero adentro mientras lo trabajo, y programo, uso un cargador de culular usb que me da 5.33v.

Descartada la idea de la bateria de LITIO...

tengo una bateria china, como la que llevan los controles de las alarmas de auto, es de 12v, le puedo poner un reguador...? tendria que mirar la hoja de Datos del 7805 en caso de que sirva, para ver el consumo... bah no se son ideas....

Estoy medio perdido....

En la primer hoja Ricber comenta que utiliza una mplificador cuanto mejora las variaciones del ADC, dado que aplicando las formulas paso de 16.8°C a 18.9°C con el cambio de 1 solo numero del ADC.

puse el comparador en 10 bit y cambie a int16 q0
Conversion a tension (5.33/1024*q0)

     vt = (q0* 5.33/1024);
     T =(((vt*1000)- 500)/10);

midiendo temperatura con el TC1057A

como tengo que hacer para tener cambios mas pequeños?

Ricber

Hola velazquezbio, antes que nada bienvenido.
el tc1047 tiene una sensibilidad de 10mv/ºc y tal como tienes tu conversor A/D, tu resolucion es de 5mv/bit, osea que deberias poder medir con una resolucion de 0.5ºc, ej.: 10º, 10.5º, 11º, etc.
Ahora podrias poner un amplificador con una ganacia de 5 con eso lograrias que una variacion de 1mv que equivale a 0.1ºc se multiplique por 5 osea 5mv que es la resolucion de tu A/D.
Hasta aca se entiende? 

David Met

Me ganó de mano Ricber  ok!
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Ricber


velazquezbio

Cita de: David Met en Junio 18, 2010, 11:54:23 AM
Me ganó de mano Ricber  ok!
Cita de: Ricber en Junio 18, 2010, 12:23:42 PM
Perdon.
jajajajaja

si habia calculado lo mismo, tendria que variar de 5mV por cada uno de los puntos del ADC. voy a medir con el tester, otra vez, a ver que anda pasando, entre la lectura en mV del ADC y la del tester, tengo una diferencia, voy a ver cuanto es.

Lo del amplificador no lo habia entendido hasta ahora,muy bueno.

Voy a revisar el codigo del programa.

Cuento los resultados en un rato.

Velazquezbio

David Met

Cita de: Ricber en Junio 18, 2010, 12:23:42 PM
Perdon.

¡¿he?! ¡¿Estás loco?!
Al contrario, te doy las gracias. ok! ok! ok!
No me gusta ser quien tenga que responder todo. Me gusta que halla un ambiente de ayuda y buen compañerismo, así crece mejor el foro.
Ojalá todos me ganen de mano por responder o que respondan antes que yo. Además, en cuestiones de electrónica, sabes más que yo y es bueno tenerte acá ayudándonos.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

velazquezbio

#12
Bueno, seria muy largo explicar todo lo que me parecio que esta mal en el codigo.
hago una pregunta, simple para seguir avanzando....

estoy multiplicando 21mv * (lectura ADC)

lo puse en 8 bit, 5.33/255 = 21mv, la lectura de 0 a 255, conecte un led, para usarlo a modo de voltimetro, solo para poder comparar, las lectura, y sacarme duduas, el tester esta clavado en 1.96V, por un lado si uso una variable Float, para tener los decimales y trabajar en Volt, el ADC se la pasa variando.

Si lo pongo en una variable int16, para trabajar en mV, hace mal la multiplicacion...

estaria multiplicando int8 x int16, esto me suena conocido, es lo que te pasaba con la libreria de multiplicacion DAVIDmet?

EDIT, cambie 21mV por bit de ADC, almacene la variable en Volts en un FLOAT y con decimales.

Conclusion.... no se puede hacer la conversion? multiplicando ADC * 21mv?

EDIT2 agregue mas decimales del cociente (5.33/255), tengo 1968mV el tester marca 1964mV. ESTO ESTARIA PERFECTO :\

El ADC varia su valor en +-1 a veces lo hace en -3.

bastante estable no? siendo que mido la tension del LED y el Tester esta clavado en su valor. Estas diferencias en el ADC es ruido?

*no puedo usar ADC en 8 bit, para medir la temperatura, a menos no con mi fuente de 5.33, siendo que el valor salta de a 21mv, pero puedo poner un valor de referencia en Vref que e de la precision que necesito verdad?, estas referencias ifluyen en todos los pines A/D no?

Gracias, perdon si son demasidas preguntas.

David Met

Es normal que varíe tanto cuando trabajas con decimales. Esto es debido a que al trabajar con números enteros, estás redondeando los valores.
Para trabajar con decimales y tener una medición más precisa, es inevitable hacer promedios. Hay básicamente dos formas de trabajar con promedios. La primera es, almacenar varias mediciones y luego sumarlas para luego promediarlas (así lo hago yo) y la otra opción es, almacenar varias mediciones y eliminar los extremos diferentes de la medición para luego sumar las que quedaron y promediarlas. Me explico mejor.
Supongamos que medimos los valores siguientes:

3,5V
1,4V
1,8V
0,7V
2,0V
1,5V

Los valores que se eliminan son: 0,7V y 3,5V Luego sumamos los valores restantes y las promediamos. Para que veas como afecta la medición resolvamos ambos casos. En el primer caso, sin eliminar los extremos superiores e inferiores da 1,8166666V y eliminando los extremos da 1,675V

También para prevenir interferencias en la medición y eliminar cualquier ruido eléctrico inducido en los cables, se coloca un condensador de 10nF (sino me equivoco) conectado a masa y el otro extremo en la entrada analógica.

Con respecto al edit2.
La tensión de la fuente no tiene nada que ver con la resolución del ADC.
Mira te coloco una explicación que hice en el foro todopic sobre ADC:

El pic tiene un registro en el cual, te da la conversión obtenida, para eso hay que fijarce en el datasheet. También es necesario ajustar los voltages de referencias, que son +Vref y -Vref. Esto es, para +Vref, es la máxima tensión que puede tener un valor analógico y -Vfre, es la mínima tensión que tendrá el valor analógico.

Por ejemplo, tenemos una señal analógica que varía entre 5V y 0V. Cuando el AD del pic, detecta 5V en la entrada AD, en el registro escribe 11111111, y cuando detecta 0V, ene l registro escribe 0000000. Luego para las tensiones intermedias, colocará la codificación en binario correspondiente.

Obviamente, para estos cálculos, dependerá de la resolución del PIC, el cual está detallado en el datasheet.

Veamos un ejemplo de como hace la conversiónel PIC:

Datos a saber:

+Vref= 5V
-Vref= 0V
Resolución del Pic 256 (2^8)

La fórmula es la siguiente:

5V / 256 = 0.01953125 redondeando 0.019V

Esto quiere decir que, por cada 0.019V, el pic aumentaráen 1 al registro. O sea

0V         0000000
0.019     0000001
0.038     0000010
0.057     0000011

Para saber la resolución correspondiente a cada volt, corresponde la fórmula siguiente

Resolución = Voltage (+Vref - -Vref) / 2^n

Si se ingresa a +Vref y -Vref en mV, la resolución será en mV, si en cambio, se ingresa en V, la resolución será en V

Veamos un ejemplo:  que voltaje le corresponde al código 11011010 (218)

Despejamos la fórmula anterior:


Resolución * 2^n = Voltaje

0.019 * 218 = 4.142 V

Cuando el pic detecte 4.142 V, en el registro pondrá 11011010
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Ricber

Lo de perdon, fue un chiste ;D.
Hola velazquezbio una solucion para evitar los calculos con decimales, tan complicados cuando son en asembler,  es usar una tabla, que pones en la eeprom y que tu resultado del A/D te sirve como puntero de la direccion de la memoria.
Es un poco trabajoso armar la tabla pero te evitas otros problemas.