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
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.
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.
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
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
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.....
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'
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()'
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!!!!!!
: : : :
Una cosita, estoy haciendo mi proyecto final de carrera con el arduino y con unos 5 sensores el problema que tengo ahora es que por separado todo funciona bien, es decir, los datos son correctos(temperatura, lueminosidad, co2, co, presion , altura , posicion, humedad...) pero cuando junto todo ello algunos valores son iguales y otros no. Por ejemplo la temperatura me da 21ºC con su programa y cuanod lo junto con el proyecto que tiene mucho codigo me da por ejemplo unos 24 despues 22 luego 21....etc. Entonces me preguntaba si eso tiene que ver porque el arduino necesita un tiempo para procesar toda la informacion???????Cabe decir que todos los sensores son por I2C.
Gracias de antemano.
Te ocurre siempre? Si ocurre sólo al principio durante un corto periodo de tiempo, tampoco creo que influya mucho.
Puede ser que al montarlo en el proyecto, si lo has tenido que mover igual lo has cogido del sensor de temperatura y lo has calentado.
También puede ser que algo de capacitancia sobre todo si usas placas de prototipo, pero me extraña si te va bajando luego la temperatura hasta que se establece.
Si se pudiera saber que titulación estás cursando y un poco sobre el alcance del proyecto no estaría mal, jejeje.
Soy ingeniero de Teleco. pero ya lo tengo solucionado. Es lo que tu dices, resulta que tenia una protoboard y demasiados cables que hacian de bobinas y bastante capacidades por ahi jejejej
Gracias