Go Down

Topic: Alguien ha utilizado el HP03 Sensor de Presion (Read 2302 times) previous topic - next topic

David_Ardu

Resulta que los datos de compensacion que trae de fabrica si que los puedo leer pero los datos que son la temperatura y la presion (D2 y D1 )  me dice que tengo que seguir esta secuencia

S 11101110
A Un
11111111 11111111
A Un
11110000 11110000
A Un
PDS 11101110 PDS 11101110
A Un
11111101 11111101
A Un
S 11101111 S 11101111
A Un
MSB MSB
A Un
LSB LSB
NP NP
Temperature Measure: Medir la temperatura:
S 11101110 S 11101110
A Un
11111111 11111111
A Un
11101000 11101000
A Un
PDS 11101110 PDS 11101110
A Un
11111101 11111101
A Un
S 11101111 S 11101111
A Un
MSB MSB
A Un
LSB LSB
NP N
pero no lo  enntiendo muy bien.
Eso esta sacado del DAtasheet !! de la pagina 6
8-)Gracias de antemano 8-)

eried

Eso es el protocolo de los mensajes. En la mayoría de salidas y entradas "más inteligentes" existe algo similar.

A grandes razgos si te dice enviar 00000000 es que se refiere a 8 bits en cero, lo que es equivalente a un print por serial de un byte 0x00, un 11111111 es un 0xFF, así, con tu calculadora puedes sacar equivalencias y crear tu mecanismo para comunicarte.
My website: http://ried.cl

David_Ardu

ya pero no me referia a eso me referia pero gracias voy a probar

David_Ardu

A ver si alguien me puede ayudar. Tengo que mandar esta secuencia

S: condición de arranque
P: condición de parada
A: reconoce de esclavos
R: reconocer de maestro
N: no se reconoce de maestro (enviar un poco en su lugar)
D: retraso para un mínimo de 40 ms
MSB: resultado de la conversión de MSB
LSB: resultado de la conversión de LSB.

La direccion del dispositivo es 0x50

Medir la presion

S 11101110 A 11111111 A 11110000 A P D S 11101110 A 11111101 A S 11101111 A MSB R LSB N P
      0xEE           0xFF            0xF0                     0xEE          0xFD              0xEF      |------> apartir de aqui el me da ya la presion. el problema que estoy teniendo es que no se como mandar eso exactamente para que me mande la presion.

Gracias de antemano  8-)

eried

My website: http://ried.cl

David_Ardu

no lo quiero mandar por el puerto serie sino al dispositivo I2C, es decir , tengo que seguir esa secuencia para que asi me mande mi MSB y LSB
Gracias:P

eried

Pero si realmente tienes tan claro lo que necesitas porqué no lo colocas en google?

http://www.google.com/search?q=i2c+arduino

el primer link ya lo explica todo con detalle
My website: http://ried.cl

David_Ardu

ya lo mire pero no dice nada de nada de como hacerlo solo habla a la hora de mandar informacion a una eeprom no de como conseguir k responda un dispositivo i2c a una secuencia de codigo desde el arduino pero muhcas gracias

Igor R

#8
Dec 21, 2010, 01:02 pm Last Edit: Dec 21, 2010, 01:06 pm by igorreal Reason: 1
Hola,

Que no parezca "brusco":

1- Abro Google.
2- Escribo "hp03 arduino i2c pressure sensor"
3- Tachán!!!!!

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1223819446


Ahi tienes código para responder a tus preguntas (librería con las funciones para manejar el sensor).... O al menos un post con gente que ha usado dicho sensor.....



;)

Igor R

#9
Dec 21, 2010, 01:26 pm Last Edit: Dec 21, 2010, 02:07 pm by igorreal Reason: 1
Puedes encontrar un ejemplo en C aunque sea de otro micro en la "Programming Guide" del propio sensor:

http://www.hoperf.com/upfile/hp03_code.pdf



David_Ardu

Muchas Gracias IGor he estado mirando el primero pero me da los siguientes errores y he hecho lo que pone en la web que me has pasado y nada .
Estos son los errores

In file included from /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/WProgram.h:6,
                from sketch_dec02c.cpp:10:
/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/include/math.h:439: error: expected unqualified-id before 'double'
/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/include/math.h:439: error: expected `)' before 'double'
/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/include/math.h:439: error: expected `)' before 'double'

eso es un error de la libreria WProgram.h ,no?

David_Ardu

creo k es un problema de la libreria math

David_Ardu

solucione algunos pero ahora me sale este error sobre el timer

HP03/HP03.cpp.o: In function `HP03class::begin()':
/Applications/Arduino.app/Contents/Resources/Java/libraries/HP03/HP03.cpp:136: undefined reference to `FrequencyTimer2::setPeriod(unsigned long)'
/Applications/Arduino.app/Contents/Resources/Java/libraries/HP03/HP03.cpp:137: undefined reference to `FrequencyTimer2::enable()'

eried

Viste en ese mismo link que te pasó Igor los errores que le salen a esas personas?
My website: http://ried.cl

David_Ardu

Gracias lo tengo solucionado
el problema lo tenia con el Frequencytimer2 lo que quitado del cpp y a funcionar.
Ahora cuando termine todo mi codigo lo pondre porque quiero hacer una mas facil y corto para mi proyecto
GRACIAS!!!!!!
:D ::) ::) ::) ::)

Go Up