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

Estacion Meteorologica de ricber

Iniciado por Ricber, Mayo 09, 2011, 10:31:06 AM

Tema anterior - Siguiente tema

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

Ricber

Aca va una imagen de la veleta terminada


y algunas imagenes de la construccion, el cuerpo visto de arriba


esta es la parte movil, el punto negro es el iman que cerrara al sensor magnenicos

Ricber

Algo que me falto del sensor de presion es el circuito que voy a usar para adaptar la señal

cuando lo empieze a probar pondre las ventajas o desventajas.

YO

Hola Ricber!

Te está quedando joyita la veleta!

¿la hiciste con tubos de pbc?
Sin saber que era imposible El fue y lo hizo

Ricber

Hola YO, estas cosas se hacen con lo que se encuentra por ahi, el cuerpo es un tubo de aluminio y en el centro tiene un ruleman de una disquetera, la parte movil si es de pvc, las otras partes son un tubito finito de bronce, el iman es uno de un motor que fui dandole forma, el iman tiene que ser bastante justo para que no cierre varios sensores al mismo tiempo.

David Met

Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Ricber

Luego de la explicacion de los sensores analogicos usados para medir las
distintas variables les comento como voy a digitalizar los valores, en la imagen siguente
se ve la conexion entre los sensores, el conversor A/D y el micro.


Use para este proyecto un micro 18f252 y un conversor externo mcp3208, basicamente porque queria probar
el conversor y ademas porque tiene una resolucion de 12bits, pero se puede usar perfectamente el conversor del micro.
Como la parte sensora de presion tiene un consumo importante he decidido poner una llave formada
por Q1, ya que como mide y almacena datos cada una hora no tiene sentido tenerlo alimnetado siempre,
con esto se alimenta el sensor un tiempo antes de iniciar la medicion o cuando estoy conectado con la estacion y la pc.
El conversor se comunica con el micro via spi asi que en la proxima voy a poner las funciones necesarias para la lectura
del conversor.

Ricber

La programacion del micro la hago en C, y por usar el 18F252 la hago con C18.
Como la puerta SPI es compartida con otros dispositivos cada vez que uso el conversor
la ajusto para este perifierico, la funcion para esto es esta.

void adc_init(void){
   SSPCON1bits.SSPEN=0;   // Deshabilita el modulo SPI para los cambios
   SSPCON1bits.CKP=0;      // Clock en 0
   SSPSTATbits.CKE=1;
   SSPCON1bits.SSPM0=0;   // Divide x 64
   SSPCON1bits.SSPM1=1;
   SSPCON1bits.SSPM2=0;
   SSPCON1bits.SSPM3=0;
   SSPCON1bits.SSPEN=1;   // Habilita el modulo SPI
}

con esta funcion fijamos la velocidad y como debe estar el clock en el modo reposo.

Entonces si queremos leer la temperatura que corresponde al canal 0 usamos la funcion siguiente
Esta funcion define el canal mediante la variable "canal" y llama a la funcion que realmente hace la lectura


unsigned long  lee_temp(void){
   canal=0x00;   //Selecciono el canal 0
   temp=read_3204(canal);
}// Fin lee temp

// Lectura del conversor A/D
unsigned long read_AD(int chan){
//Borramos los registros antes de una medicion.
   high_adc=0x0000;           
   low_adc = 0x00;
   dato_adc=0X00;

CS_ADC=0;                       // a/d ON
   WriteSPI(0x18|chan);         // Escribo un comando al A/D, seleccion del canal y tipo de entrada
    Delay1KTCYx(10);              // Esperamos la conversion
   high_adc = ReadSPI();       // Leo el byte alto del resultado
   low_adc = ReadSPI();         // Leo el byte bajo del resultado
CS_ADC=1;                       // a/d OFF
dato_adc = (((high_adc<< 8 )|low_adc)>>2) & 0x0fff;// Esto transforma el dato alto y el bajo del adc en un numero de 16bits
return(dato_adc);                 // Retorna un dato de 16bits
}// Fin read_3204

El valor de la variable "dato_adc" tiene el valor de la conversion y ese valor se pasa a la variable "Temp" que es la variable de la temperatura.




Ricber

En los post anteriores vimos los sensores que tenian salida analogica y requerian
del conversor A/D, en las siguientes entregas veremos los sensores faltantes, que son el
pluviometro y el anemometro, ambos trabajan por interrupcion, comenzaremos por el pluviometro.
La parte mecanica del pluviometro esta explicada en este post
http://www.meteorologiafacil.com.ar/foros/index.php?topic=28.15
lo que explicare ahora es la parte electronica, como explicamos en aquella oprtunidad,  el pluviometro
trabaja con un iman (unido al cangilon) y un sensor magnetico, cada vez que el
cangilon bascula el iman cierra un interruptor magnetico y este dispara un monoestable
que genera un pulso que dispara la interrupcion del micro.
El circuito es el siguiente:

El codigo de la interrupcion es asi:


#pragma code
#pragma interrupt baja_isr

void baja_isr (void){

/* Interrupcion #1 para pluviometro */
if (INTCON3bits.INT1IF){                    /* Veo si hubo interrupcion en INT1 */
   INTCON3bits.INT1IF=0;       /* Borro el flag de int. */
   pluvio++;             /* Con cada int. se suma 1 a la variable pluvio */   
}// Fin pluvio

Basicamente cuando se genera la interrupcion lo que hace este codigo
es incrementar la cuenta de la variable "pluvio".
En el link de arriba se explica tambien algunos aspectos de la calibracion, tambien se puede
hacer tirando una cantidad de agua conocida y contar la cantidad de veces
que el cangilon bascula y con ese dato sacar la calibracion.

Arecoclima


Ricber

CitarExcelente Trabajo!
gracias.
Perdon por la demora, tuve una complicacion con el programa del micro, voy a seguir por el anemometro que creo
es lo que falta, para despues poner el circuito final  :-\ y el programa del micro.
Este es el anemometro

Como funciona?
Este es un esqema del armado

La parte que gira tiene un iman circular con 8 polos (sacado de un motor de disco rigido) y en la parte fija
hay un sensor de efecto Hall que genera un pulso cada vez que uno de los polos del iman pasa por el
sensor.
Al girar, por accion del viento, se generara una serie de pulsos proporcionales a la velocidad, esa serie de pulsos
entran al pic y son contados durante 1 seg con lo que obtendremos una frecuencia que sera mayor cuanto mas fuerte
sople el viento, luego con la calibracion obtendremos el coeficiente necesario para convertir esa frecuencia en velocidad.

Ricber

Un comentarios sobre los sensores Hall,
basicamente hay dos tipos, con salida (Vout) analogica, osea que su Vout es proporcional al campo magnetico aplicado, o digital, osea su salida es alta o baja segun tenga o no un campo magnetico cerca.
Bueno en este caso hay que usar los digitales ya que la entrada al micro es digital.
El modelo que utilice es el A3213 de la marca Allegro que tiene un encapsulado como el de la imagen siguiente que resulta muy practico para colocarlo en un espacio reducido.

Como veran es del tamaño de un transistor, los hay mas pequeños, del tipo montaje superficial.
La conexion es simple, tiene 3 terminales que son +,- y salida, se puede alimentar con 2.5 a 5.5v
Asi dice el frabricante que hay que conectarlo

Hace un tiempo publique en este foro un anemometro que trabajaba con unos sensores infrarrojos pero eso tenia
mucho consumo (+/- 15ma) por eso decidi cambiar y hacerlo con sensores HAll que consumen mucho menos (algo como 1ma mas o menos).
Les dejo un link del sensor por si quieren verlo.
http://www.allegromicro.com/en/Products/Part_Numbers/3213/3213.pdf


David Met

Que buen anemometro y muy buena la explicacion :\
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Ricber

Gracias David
Les muestro una imagen del iman circular que use, la parte magnetica es la
de color gris clara que esta sobre el borde


El orificio del centro es por donde pasa el eje, como se ve en el
dibujo anterior el eje se puede cementar al cuerpo junto al sensor de esa manera
todo queda impermeable.
Este iman se coloca dentro de un tubo al que se le adicionaran las coperolas y que da terminado
Como no pude sacar fotos cuando lo arme pongo algunos dibujos
este seria el cuerpo

este la parte giratoria

este el montaje final

Siempre las fotos son mejores pero espero
que estos dibujos le sirvan al que quiera construirlo..

Ricber

Una forma de calibracion seria; alimentar el anemometro con 2 o 3
pilas de 1,5v y la salida conectarla a un multimetro que tenga
frecuencimetro y luego salir con un auto a distintas velocidades
y ver que frecuencia tenemos con cada una y sacar una relacion.
Se puede usar el velocimetro del auto o un GPS (seria mas preciso)
Si no habria que conseguir un anemometro portatil (por ahi es mas dificil)
y contrastar entre los dos, pero para lo nuestro me parece que el auto
es el mas practico.

David Met

Los dibujos están muy bien y con muy buen detalle.

Para calibrarlo, lo mejor es salir con el auto en un día con viento calmo y medir la velocidad con el GPS (siempre y cuando tenga una buena cantidad de satélites enlazados).

Los fabricantes de los autos, ponen un error de 5% + aproximadamente, para que el conductor evite llegar a la velocidad máxima y ser multado. Me explico. Los velocímetros tienen ese error que dice que el auto va a 60 km/h (por dar un ejemplo) pero en la realidad, la velocidad es de 57km/h

Por eso es mejor con el gps.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.