Autor Tema: Dudas con pic y sensor  (Leído 3797 veces)

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

Desconectado petazetas

  • PIC10
  • *
  • Mensajes: 5
Dudas con pic y sensor
« en: 17 de Mayo de 2006, 14:13:00 »
Buenas, soy nuevo por aqui y tengo bastantes dudas.

Lo que tengo que hacer es usar un sensor para medir temperatura y humedad del ambiente. esa temperatura se transmitira por cable serie al ordenador y mediante un programa de java (que tenemos que programar) nos saldria por pantalla del ordenador la humedad y temperatura. El tema es que no se si usando un pic nos sirve o tendriamos que usar mas de uno ( nos han dado el 16f84a pero posiblemente este sea solo para hacer pruebas ya que no tiene para cambiar una señal analogica a digital, por lo que supongo que tendremos que usar otro que tambien nos han ofrecido, el  pic16f876, que este si que tiene un conversor de analogico a digital. Tampoco se si tendria que usar los 2 a la vez necesariamente).

El sensor a utilizar es el sht7x: http://www.sensirion.com/images/getFile?id=25

Mi problema ya empieza con el sensor. Ya he mirado los datasheets pero quizas no sepa interpretarlos bien ya que no se que señal devuelve ni como la devuelve (y mira que los he leido una y otra vez pero no entinedo bien). No se como conectar esos datos que me daria el sensor al PIC ni tampoco como hacer la conversion de analogico a digital en el PIC. Acto seguido, del PIC supongo que pasaria al puerto serie y de ahi al programa en java.

A ver si me podeis echar una mano y aclarar todos estos asuntos (decirme tambien si lo que he dicho es correcto), os estaria muy agradecido, la verdad es que es bastante urgente :(.

Un saludo y gracias.

PD: supongo que de la patilla que envia los datos que tiene el sensor, ira a una de las entradas analogicas del pic. luego por que pin sale la temperatura en digital? (pone que utiliza 10 bits), como los recibo por el puerto serie?
« Última modificación: 17 de Mayo de 2006, 14:33:05 por petazetas »

Desconectado LabPIC

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 143
Re: Dudas con pic y sensor
« Respuesta #1 en: 17 de Mayo de 2006, 14:59:55 »
OK, si lo que quieres es realizar una adquisición de datos de 2 variables con un PIC sería mas que suficiente, que sería el PIC16F876.

Al micro hay que descarguelo un progrma que ralice las tareas que tu quieres, para eso te hago unas preguntas:

¿Has tenido alguna experiencia previa con los PIC´s?
¿Has programado algun microcontrolador?
¿Que lenguaje utilizas en caso de haber progrmado anteriormente?

He leido las hojas de datos y los sensores tienen internamente un conversor A/D de 14 bits, cuando se mide humedad solamente funcionan con 12, pero con tempetarura usa los 14 bits de resolucion.

Saludos LabPIC
¡¡¡Viva México cabrones!!!

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Dudas con pic y sensor
« Respuesta #2 en: 17 de Mayo de 2006, 15:04:23 »
Amigo Petazetas:

De le he dado un vistazo al Datasheet y sin entrar en profundidad creo que es un protocolo muy normal, es una  comunicación serie síncrono, del estilo del I2C o del PS/2 (mas parecido al primero que al segundo). Aunque no es exactamente para principiantes, no deberías tener demasiada dificultad para implementarlo. Con un par de pines para la comunicacion serie asíncrona (RS232) con el PC y otro par para cada sensor hay mas que de sobra. Lo que este sensor te devuelve es una medida digital pura y dura, por lo que no tienes por qué disponer de conversor A/D en el PIC ...

Imagino que con 16F84A se puede montar sin demasiadas dificultades, y con el 16F876 seguro que se puede (y hasta sobra micro).

Si vas a trabajar en C (y quieres) puedes darle un vistazo a mis Ejemplitos 16F876A o al proyecto Ponga un teclado PS/2 en su PIC (vida) donde tienes algunos ejemplos de cosas parecidas.

Y alegra la cara hombre, que no es para tanto  :) ya veras como con un poco de ayuda de estos amigos lo sacas adelante.


Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado petazetas

  • PIC10
  • *
  • Mensajes: 5
Re: Dudas con pic y sensor
« Respuesta #3 en: 18 de Mayo de 2006, 01:24:51 »
Buenas de nuevo, muchas gracias por vuestras respuestas!

Para empzar deciros que no he tenido antes contacto con liospics por lo que estoy un poco verde en el tema. El programa tenemos que hacerlo en ensamblador y le metemos la config al pic mediante el u-pic trainer.

Mis dudas en principio es como y donde hacer las conexiones de la placa. Si me pudierais echar una mano en como hacer la conexion de la placa... despues ya me meteria enensamblador jeje. El tema es:

-Si no hay que usar un conversor de analogico a digital, para que usaremos el pic?
-Del sensor hacia donde van los datos? directamente al puerto serie?

Si pudierais explicarme un poquillo como seria el esquema basico (de donde a donde va cada cable mas o menos y lo que enviaria cada cosa)...

Muchas gracias!


Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Dudas con pic y sensor
« Respuesta #4 en: 18 de Mayo de 2006, 02:37:43 »
Vayamos por partes, como decía Jack el Destripador ....

Si, te veo muy verde.


-Si no hay que usar un conversor de analogico a digital, para que usaremos el pic?


Pues usaras el PIC porque hace muchas mas cosas además de conversiones A/D. Por ejemplo: Leerá los datos del sensor, que son datos serie síncronos de 12 o 14 bits y los convertirá en un par de bytes enteros y los transmitirá al PC de una forma inteligible por él. Y podrá leer de varios sensores y tratarlos de manera análoga al anterior, y controlará cada cuanto tiempo realiza las medias, e incluso podrias tranmitir al PC solo la media de varias medidas consecutivas para evitar errores puntuales ... y ...

Todo, absolutamente todo, lo que puede hacer el PIC lo tienes en 16F84A y 16F876 si la lengua de Shakespeare no es un impedimento.

En estos documentos encontrarás facilmente las patillas donde conectar tu sensor. Supongo que algunas del PORTB son las ideales (responden con una interrupción a los cambios de estado y eso facilita mucho las cosas)


-Del sensor hacia donde van los datos? directamente al puerto serie?


No, como te dije antes el sensor tiene una especie de protocolo serie síncrono a nivel TTL(+5V 0V), la comunicacion con el PC se establece mediante un protocolo serie asíncrono a nivel V24 (+12V -12V) llamado RS232. Como puedes ver no son lo mismo, ni nada que se le parezca.

Del sensor van dos hilitos a dos patillas del PIC (supongamos que RB0 y RB1 por decir algunas); otros dos hilitos deben ir desde otro par de patillas (RC6 y RC7 por decir algunas si lo que tienes es un 16F876) a un integrado del estilo del MAX232 y de éste tres hilitos al PC ....

Y despues hacer que esas patillas hagan lo que se espera de ellas ...

Con los tres datsheets sobre la mesa (el del sensor, el del pic y el del max232), leídos y comprendidos puede tirarte a la piscina de intentar integrarlo todo en un sistema que funcione.

Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado petazetas

  • PIC10
  • *
  • Mensajes: 5
Re: Dudas con pic y sensor
« Respuesta #5 en: 18 de Mayo de 2006, 06:15:42 »
vale, gracias por responder, yo tambien ire por partes jeje.

-del sensor has dicho que van 2 patillas al pic, cuales? si el sensor solo tiene 4 patillas (vcc, tierra, datos y clock). solo tendre que conectar la de los datos al pic no? el clock tendre que poner uno aparte y ahi conectar el sensor y el pic?

-que es exactamente ese "integrado" que tu llamas? ya que en la documentacion que nos han dado para este proyecto no habia leido nada parecido. para que sirve exactamente? no se puede usar otra cosa?

-tenemos la opcion de usar 2 pics, el  16F84A y/o 16F876. Si se puede hacer con el 16F84A, seria recomendable hacerlo con ese no? (ya que al ser mas sencillo, tambien es mas barato y al ser un proyecto, a la hora de evaluar tambien se tendra eso en cuenta). es posible hacerlo con ese o es recomendable usar el 16F876?

-el sensor envia hasta 14 bits en grupos de 4 al pic no?entonces el pic como procesa estos datos, por que puerto saldria y como saldria? el pc como va a entender esos datos? (tenemos que saber entender esos datos ya que el programa en java debe de recibir esos datos y sacar de ahi la informacion).

un saludo y muchisimas gracias!

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Dudas con pic y sensor
« Respuesta #6 en: 18 de Mayo de 2006, 16:03:20 »
-del sensor has dicho que van 2 patillas al pic, cuales? si el sensor solo tiene 4 patillas (vcc, tierra, datos y clock). solo tendre que conectar la de los datos al pic no? el clock tendre que poner uno aparte y ahi conectar el sensor y el pic?

VCC -> Alimentación del sensor, a 5V+
GND-> Alimentación del sensor, a 0 V
Clock-> Señal de sincronismo del sensor, conectado a RB0 del PIC (Patilla 6 del 16F84A ó patilla 21 del 16F876, ambos en encapsulado PDIP)
Data-> Señal de datos del sensor, conectado a RB1 del PIC (Patilla 7 del 16F84A ó patilla 22 del 16F876, ambos en encapsulado PDIP)

Definición (sui generis) de Clock: Pulso generado normalmente por el dispositivo emisor de los datos, hay casos en que no tiene por que ser así, por ejemplo en las comunicaciones PC-> PS/2 en que es el receptor el que genera la señal de Clock, que sirve para indicar cuándo hay disponible un bit en la línea de la señal de Data. La señal de Clock puede ser activa en alto (hay que leer la línea data unos microsegundos despues de pasar la línea de clock de estado bajo, 0V, a estado alto, +5V) ó activa en bajo (hay que leer la línea data unos microsegundos despues de pasar la línea de clock de estado alto, +5V, a estado bajo, 0V)

En el caso de tu sensor puedes mirar la página 2, figura 2, en la que puede verse que es el micro quien genera los pulsos de la señal de Clock, y cada vez que envía un pulso el sensor responde con un bit. Tambien puede leerse a su izquierda una nota donde dice que la señal de clock no tiene una frecuencia mínima, eso significa que tienes libertad para decidir a qué velocidad vas a establecer tu comunicacion, sin demasiados impedimentos para ello.

Implementar el protocolo del sensor es solo cuestión de leerse el datasheet, y comprendiendo lo que allí pone, hacer que tus pines del PIC (donde has conectado el sensor) pasen de bajo a alto, o viceversa, con la candencia y la estructura necesaria y suficiente.



-que es exactamente ese "integrado" que tu llamas? ya que en la documentacion que nos han dado para este proyecto no habia leido nada parecido. para que sirve exactamente? no se puede usar otra cosa?

Una comunicación "serie" es un estilo de comunicación en el que la información viaja secuencialmente por la linea de transmisión-recepción. Se puede transmitir en "serie" utilizando muchas maneras de hacerlo, usando voltajes a nivel TTL (0v,+5V) o a nivel V24 (-12V,+12V), de forma síncrona (con señal de Clock) o asíncrona (sin señal de Clock), con protocolos RS232, RS485, IEE488, I2C, SPI, X-10 .... la bliblia en pasta de formas, modos y maneras. Todas esas y otras miles de formas son comunicaciones "serie". Pero se dá el caso de que para conectar un PIC con un PC que reciba los datos transmitidos por aquel mediante un programa en Java, en C, en Basic, en Pascal o incluso en Forth (¿se acuerda alguien del Forth?) tienen ambos que adecuarse en los niveles de tension, en lo protocolos a usar y en las frecuencias de transmisión-recepción de ambos, porque de lo contrario no se hablarán entre ellos nunca. Y resulta que el PIC habla en "Serie nivel TTL Protocolo RS-232 a X baudios" y el PC habla en "Serie nivel V24 protocolo RS-232 a X baudios" .... despejando lo común entre ambas maneras de hablar "serie" tenemos solo que adecuar el Nivel TTL con el Nivel V24 .... y tatachan ... para eso es el "integrado" MAX232.



-tenemos la opcion de usar 2 pics, el  16F84A y/o 16F876. Si se puede hacer con el 16F84A, seria recomendable hacerlo con ese no? (ya que al ser mas sencillo, tambien es mas barato y al ser un proyecto, a la hora de evaluar tambien se tendra eso en cuenta). es posible hacerlo con ese o es recomendable usar el 16F876?

Insisto en la frase anterior: "Imagino que con un 16F84 se puede hacer ...." pero .... el 16F876 tiene mas memoria, mas velocidad, mas pines disponibles y sobre todo: Tiene USART. ¿Que qué es eso? pues un chirimbolo hardaware que realiza toda la comunicación serie rs232 con el PC sin tener que gastar un miligramo de memoria de programa para transmitir y recibir a y desde el PC.

Además el 16F84A cuesta 2,71$ y el 16F876A sale por 3,40$ o sea 69 centavos de dólar de diferencia ... si vas a fabricar un millar de "lo que sea" quizás te merezca la pena pensar en otro micro pero ...

-el sensor envia hasta 14 bits en grupos de 4 al pic no?entonces el pic como procesa estos datos, por que puerto saldria y como saldria? el pc como va a entender esos datos? (tenemos que saber entender esos datos ya que el programa en java debe de recibir esos datos y sacar de ahi la informacion).

El PIC recogería los bits uno a uno .... compondría un par de bytes (16 bits) con ellos y los transmitiría al PC vía serie mediante la USART y el MAX232 y un cable de tres hilos que lo uniría con .... el PC que recibiria dos byes y haría el cálculo correspondiente para componer un entero de 16 bits recibiendo los dos Bytes MSB y LSB en que se descompone. (una multiplicación)

un saludo y muchisimas gracias!

Otro saludo y muchisimas de nadas.

« Última modificación: 18 de Mayo de 2006, 16:09:06 por RedPic »
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado petazetas

  • PIC10
  • *
  • Mensajes: 5
Re: Dudas con pic y sensor
« Respuesta #7 en: 18 de Mayo de 2006, 17:31:49 »
Buenas, muchisimas gracias por responder Red.

Aqui voy con alguna cosilla mas:

-porque conectas el clock al RB0 y el data al RB1? hay algun motivo?

-entonces la patilla clkin se usara para meterle la señal de un clock externo al pic no? (ya que el pic no dispone de clock no?) y el clkout para que se usa?

-no tengo muy claro lo que recibiria el pc. has dicho que recibe 2 bytes de datos (que envia el max232 no?) pero, como se haria el calculo para hacerlo entendible por nosotros? (humedad es en porcentaje y temperatura en grados creo). Te pregunto esto ya que tenemos que saber como hacer ese calculo en el programa de java.

-que tiene de especial el USART ese que no tenga el PIC 16F84A?


Desconectado petazetas

  • PIC10
  • *
  • Mensajes: 5
Re: Dudas con pic y sensor
« Respuesta #8 en: 30 de Mayo de 2006, 07:03:53 »
Buenas, aqui sigo y ya vamos montando el pic.

Ahora tengo una duda nueva. El problema es que no se como y que usar como clock externo al pic (ni como conectarlo, supongo que va en la patilla llamada CLKIN del pic). Alguien me puede echar una mano? (teniendo en cuenta que soy muy novato en el tema).

Un saludo y gracias!


 

anything