Autor Tema: Estación automática en lenguaje C.  (Leído 4408 veces)

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

Desconectado Zhewol

  • Neblina
  • *
  • Mensajes: 6
Estación automática en lenguaje C.
« en: Abril 05, 2009, 11:26:24 pm »
Hola!Soy nuevo en el foro y ya contacte con David Met, vi su trabajo de su estación y me gustó, pero me gustaría tener el programa del PIC en lenguaje C, en vez de ensamblador. ¿Alguien me podría ayudar?, ¿darme alguna pista?. Abro esto para que opineis. Un saludo!  :D :D :D

Desconectado David Met

  • Administrador
  • Stratus Cumulus
  • *****
  • Mensajes: 3086
  • Sexo: Masculino
  • Cumulonimbus
    • Impresiones en 3D
Re: Estación automática en lenguaje C.
« Respuesta #1 en: Abril 05, 2009, 11:27:21 pm »
Lo primero que hay que hacer es poner las pautas de que vamos a medir. Que es lo que necesitamos. Por mensaje me dijo que hay que medir la temperatura y la humedad. ¿Necesitamos medir algo más?  ???

Una vez que decidimos esto, ver si queremos un registro de las horas en que se toma las mediciones o no, porque talvez se necesita tener controlado una habitación o algo parecido. Y como lo vamos a visualizar los datos cargados.

Resuelto estos temas, tenemos que diseñar el diagrama de flujo. Muchos le escapa pero es algo importantísimo. Y por último, vemos que sensores utilizaremos. Aprender a usarlos buscando los datasheets de los mismos e ir buscando por toda la red.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado Zhewol

  • Neblina
  • *
  • Mensajes: 6
Re: Estación automática en lenguaje C.
« Respuesta #2 en: Abril 05, 2009, 11:28:12 pm »
Voy a explicarlo más detenidamente.
Es medida de temperatura y humedad únicamente con sensores internos y externos. Para la temperatura he pensado el LM35 es lo más facil, pero en el de la humedad, no se muy bien cual elegir. Cada sensor quiero que tome una muestra de temperatura a intervalos de 1s y que las envíe al
control. Todo esto que sea mostrado en LCD, como tu lo tienes, las temperaturas y la humedad de los dos sensores,
y almacenar los valores máximos y mínimos de todas ellas. Tambien que se pueda visualizar cualquiera de los datos almacenados a través de pulsadores. También tengo la duda si utilizar un rfPIC para esto, ¿es conveniente?Gracias de nueco y un saludo!  ;D

Desconectado David Met

  • Administrador
  • Stratus Cumulus
  • *****
  • Mensajes: 3086
  • Sexo: Masculino
  • Cumulonimbus
    • Impresiones en 3D
Re: Estación automática en lenguaje C.
« Respuesta #3 en: Abril 05, 2009, 11:29:14 pm »
Una vez estube apunto de utilizar en rfPIC pero no lo hise, en cambio utilizé los módulos TWS y RWS que son muy fáciles de manejar. Te aconcejo este último.
Por lo que deduzco, es que el dataloger va a estar a una distancia X con respecto en dónde se lee los datos. Hay que saber de cuanto es la distancia que hay que cubrir. Lo segundo es que necesitas manejar una memoria externa si se necesita guardar muchos valores pero si son pocos, se puede utilizar la memoria EEPROM interna del PIC.

Por lo que describes, es sencillo lo que necesitas. Me imagino que el teclado, estará en la planta receptora y también la encargada de guardar los datos. Y como es obvio, estará el LCD.

Te paso unos pasos que podría hacer el programa del transmisor (dataloger)

Transmisor

1- Configuro al PIC
2- Configuro al Timer correspondiente para que cuente 1 segundo
3- Espero a que pase 1 segundo. Cuando pasó 1 segundo sigo
4- Mido la temperatura externa, guardo el dato
5- Mido la humedad externa , guardo el dato
6- Mido la temperatura interna, guardo el dato
7- Mido la humedad interna, guardo el dato.
8- Repito los pasos del 4 al 5 para hacer los promedios
9- Una vez tenido los suficientes datos, hacemos el promedio y el dato lo guardamos en la RAM
10- Enviamos el dato a la planta receptora
11- Volvemos al punto 2

Receptor

1- Configuro al PIC
2- Doy un mensaje de bienvenida
3- Activo las interrupciones por receptción de datos
4- Exploro el teclado
5- Si se precionó el teclado, realizo la tarea pedida y luego continuo por el punto 6
6- Continuo al punto 4

interrupción

1- Primer dato recibido, guardo en la EEPROM (externa o interna)
2- Espero el segundo dato y guardo en la eeprom
3- Espero el tercer dato y guardo en la eeprom
4- Espero el cuarto dato y guardo en la eeprom
5- Visualizo los valores en el LCD
6- Retorno de donde me quedé cuando pasó la interrupción.

Analiza esto, modifica lo que quieras, descartalo, utilizalo para hacer un resumen nuevo, o lo que se te ocurra. Una vez que tengas un bosquejo de como sería el programa, hay que empezar a armarlo. Cada uno de estos puntos, tendrá un diagrama de flujo.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado Zhewol

  • Neblina
  • *
  • Mensajes: 6
Re: Estación automática en lenguaje C.
« Respuesta #4 en: Abril 05, 2009, 11:29:54 pm »
Hola!Lo siento por mi ausencia estos días pero he estado enfermo. El esquema que me has dado me parece bastante bueno, le he analizado y he hecho varios cambios. Lo del mensaje de bienvenida lo veo bien pero no creo que lo utilice. Esos promedios de temperatura y humedad tengo pensado guardarlos en la memoria EEPROM del mismo PIC. Tengo varias preguntas, la interrupción, en que PIC va? ¿Me recomiendas utilizar el 16F877 como tu montaje? ¿En qué consisten los módulos TWS y RWS? y por último, ¿Cómo debo seguir? ¿Voy haciendo los diagramas de flujo?.
Lo siento pero es que aún soy un estudiante de electrónica y me bloqueo facilmente. Vuelvo a agradecerte tu ayuda, gracias!

Desconectado David Met

  • Administrador
  • Stratus Cumulus
  • *****
  • Mensajes: 3086
  • Sexo: Masculino
  • Cumulonimbus
    • Impresiones en 3D
Re: Estación automática en lenguaje C.
« Respuesta #5 en: Abril 05, 2009, 11:31:11 pm »
Espero que haya sido una enfermedad suave y que no sea nada complicado.

Yo te recomiendo el 16F877 pero dependerá de la cantidad de memoria que necesites. no creo que tengas problemas ni con la RAM ni con la memoria de programa, si no con la EEPROM ya que siquieres guardarla ahí, hay que ver si te es suficiente.
La interrupciones son los medios por el cual, el PIC interactua con el medio exterior sin depender del tiempo (tiempo de horas) Cuando se utiliza el módulo de transmisión que posee el 16F877, cuando finaliza la recepción, produce una interrupción y se dirige a una nueva posición de memoria, que es la posición 04h. Aquí hay que agregar las instrucciones necesarias según nuestra necesidad.

Te paso unos link en dónde están los datasheet de cada módulo así puedes entender como funcionan y como se conectan TWS (transmisor) RWS (receptor) Básicamente, su funcionamiento es más que simple y efectivo (yo voy a utilizar estos), tienes que enviar en forma serial, los datos a travez de 1 pin del TWS, y por el pin de salida del RWS recibes la señal proveniente del receptor. En cada datasheet, que te muestro, hay un ejemplo de como utilizarlo, hay un chip que codifica la señal y luego la decodifica, estos dos chip, son muy importantes a la hora de trabajar con RF porque evita que llegue a nuestro circuito, emisiones y armónicas de otras frecuencias. Si quieres omitir estos 2 chips, tiene que hacer lo mismo que hace estos, pero por medio de software. A tu gusto.

¿Cómo debes continuar?, pues investiga todo lo que tienes que utilizar del PIC, sobre los módulos, como manejar una LCD y sobre la transmisión de datos con el PIC y una vez que sepas todo esto, podrás comenzar con un diagrama de flujo. Cuando veas que tienes el diagrama de flujo correcto, empiezas a escribir el programa. SI quieres antes de empezar a programar, puedes mostrarme el diagrama de flujo e indicarte si hay que modificar algo o como mejorarlo.   ;)

¿te parece?   :-\ :-\
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado Zhewol

  • Neblina
  • *
  • Mensajes: 6
Re: Estación automática en lenguaje C.
« Respuesta #6 en: Abril 05, 2009, 11:31:53 pm »
Si, me parece correcto, voy mirandome el tutorial que me has pasado, el datasheet de esos dos módulos y con el esquema-resumen que me diste ire haciendo un diagrama de flujo. Uno para el trasmisor, otro para el receptor y otro para la interrupción. Cuando le tenga terminado, te lo mostraré para ver que te parece y continuar. Muchas gracias!  :D :D :D

Desconectado David Met

  • Administrador
  • Stratus Cumulus
  • *****
  • Mensajes: 3086
  • Sexo: Masculino
  • Cumulonimbus
    • Impresiones en 3D
Re: Estación automática en lenguaje C.
« Respuesta #7 en: Abril 05, 2009, 11:32:31 pm »
Dale. Quedamos así. :D :D :D
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado Zhewol

  • Neblina
  • *
  • Mensajes: 6
Re: Estación automática en lenguaje C.
« Respuesta #8 en: Abril 05, 2009, 11:33:21 pm »
Hola de nuevo!
Me he leido todo el tutorial de los PIC16F87X...esta bastante bien, tambien he buscado como utilizar una LCD (te lo pasaré por correo). Tambien entiendo lo de los módulos TWS y RWS, pero no hay manera de encontrarles en España y las páginas que me facilitaste no las se manejar o estan obsoletas, y prefiero comprar las cosas dentro de España. Por lo que he pensado al final utilizar los rfPIC, por lo que tendre que cambiar los diagramas de flujo. ¿No te importaria ayudarme asi?Muchas gracias de nuevo, te envio el correo con lo de la LCD  :D

Desconectado David Met

  • Administrador
  • Stratus Cumulus
  • *****
  • Mensajes: 3086
  • Sexo: Masculino
  • Cumulonimbus
    • Impresiones en 3D
Re: Estación automática en lenguaje C.
« Respuesta #9 en: Abril 05, 2009, 11:34:32 pm »
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado Zhewol

  • Neblina
  • *
  • Mensajes: 6
Re: Estación automática en lenguaje C.
« Respuesta #10 en: Abril 05, 2009, 11:35:29 pm »
Lo siento por la tardanza.
Por fin encontre los dos módulos!Y si, tenias razón de venta en España, aunque me ha tardado encontrarlos. Voy a pedirlos y a comprarlos. Ya te ire comentando, muchas gracias!Seguimos en contacto.   8) 8) 8) 8) 8) 8)