Other Parts Discussed in Thread: MSP430G2553,
I had a HDC1080 EVM. I read that the back end of the evm can be broken off from the perforation and used as a standalone sensor on a micro-controller. I tried to interface it with the MSP430G2553. I have done the following with no avail:
1) the jumper on P1.6 has been removed(no interference of led with SCL line)
2) I have tried using pullup resistors on both the SCL and SDA lines. I have tried out with the standard 4.7k resistors and also with 10k resistors.
3) I always get a temperature value of -40 degree C and humidity of 0%, which means that the MSP is not able to get the readings through.
4) I am using the Wire library on Energia1.6.10E18 and I followed TI's tutorial video on how to implement HDC1080 on Arduino. Here's the link ()
Here's my code:
#include <Wire.h> void setup() { // put your setup code here, to run once: Serial.begin(9600); Wire.begin(); //Wire.setModule(); Wire.beginTransmission(0x40); Wire.write(0x02); Wire.write(0x90); Wire.write(0x00); Wire.endTransmission(); delay(20); } void loop() { // put your main code here, to run repeatedly: double temperature; double humidity; humidity = readSensor(&temperature); Serial.println(temperature); Serial.println(humidity); delay(1000); } double readSensor(double* temperature){ uint8_t Byte[4]; int value; uint16_t temp; uint16_t humidity; Wire.beginTransmission(0x40); Wire.write(0x00); Wire.endTransmission(); delay(20); Wire.requestFrom(0x40,4); if(4<=Wire.available()) { Byte[0]=Wire.read(); Byte[1]=Wire.read(); Byte[3]=Wire.read(); Byte[4]=Wire.read(); temp = (((unsigned int)Byte[0] <<8 | Byte[1])); *temperature = (double)(temp)/(65536)*165-40; humidity = (((unsigned int)Byte[3] <<8 | Byte[4])); return (double)(humidity)/(65536)*100; } }
Where is it going wrong?