TODOPIC
Otros Microcontroladores / Dispositivos programables => Arduino => Mensaje iniciado por: John en 08 de Mayo de 2015, 19:50:19
-
Buenas a todos ;-)
Soy nuevo en el foro y espero que esa breve y explique bien mi problema.
He estado trabajando con el arduino uno r3 y con los sensores TMP102, lo que busco es conectar 4 sensores por medio del protocolo I2C, este es el direccionamiento para los 4 sensores:
0x48 ---> GND
0x49 ---> VCC
0x4a ---> SDA
0x4b ---> SCL
Estos escritos en Hexadecimal.
el código que utilizo es el siguiente:
#include <Wire.h>
int tmp102Address = 0x49;
void setup(){
Serial.begin(9600);
Wire.begin();
}
void loop(){
float celsius = getTemperature();
Serial.print("Celsius: ");
Serial.println(celsius);
delay(200);
}
float getTemperature(){
Wire.requestFrom(tmp102Address,2);
byte MSB = Wire.read();
byte LSB = Wire.read();
int TemperatureSum = ((MSB << 8) | LSB) >> 4;
float celsius = TemperatureSum*0.0625;
return celsius;
}
Había utilizado el siguiente encapsulado TMP102 Funcional con las direcciones (http://wiki.oz9aec.net/index.php/TMP102), luego compre el mismo sensor pero con otro encapsulado TMP102 no funcional con las direcciones (https://www.sparkfun.com/products/11931), lo que paso con este sensor es que las direcciones 0x49, 0x4a y 0x4b no funcionaban con el sensor en el momento de polarizar el pin ADD0, al polarizarlo el programa se bloquea y debo reiniciar el arduino pero con la dirección 0x48 que esta polarizada a GND funciona, es con la única dirección que el programa trabaja.
De antemano agradezco cualquier respuesta y gracias por su atención.
-
Y que conversor de nivel lógico usas, ya que el arduino uno, usa pulsos de 5v y este sensor usa pulsos de 3.3V.
-
El arduino uno r3 tiene una salida de 3.3V para el sensor TMP 102, Le conecto directamente el sensor al arduino.
-
No me refiero a la alimentación si no a la conexión de pines de comunicación no puedes conectarlos directos por que e3l sensor TMP 102 saca niveles de pulsos de ttl 3.3v. y el arduino saca en sus pines pulsos de ttl 5v. así que necesitas un adaptador de 3 a 5 lógico bidireccional
-
No me refiero a la alimentación si no a la conexión de pines de comunicación no puedes conectarlos directos por que e3l sensor TMP 102 saca niveles de pulsos de ttl 3.3v. y el arduino saca en sus pines pulsos de ttl 5v. así que necesitas un adaptador de 3 a 5 lógico bidireccional
en I2C las salidas son Open colector