Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
8 years, 8 months ago. This question has been closed. Reason: Off Topic
I2C Pins??
I'm successfully reading the temperature from the TMP102 device but only if I use pin references 28 and 29 in the program below although my device is actually connected via pins 9 and 10? Is there a simple explanation? If I change the program to pins 9 and 10 I get no readings?
#include "mbed.h"
#include "TextLCD.h"
#include "TMP102.h"
I2C i2c(p28, p27); // sda, scl
TextLCD lcd(p15, p16, p17, p18, p19, p20); // rs, e, d4-d7
TMP102 TMP102(p28,p27,0x90); //Define SDA, SCL pin and i2c address
float TempReading() {
float value;
value = TMP102.read();
return value;
}
int main() {
lcd.printf("I2CU! Searching for I2C devices...\n");
int count = 0;
for (int address=0; address<256; address+=2) {
if (!i2c.write(address, NULL, 0)) { // 0 returned is ok
lcd.printf(" - I2C device found at address 0x%02X\n", address);
count++;
wait(5);
lcd.cls();
}
}
lcd.printf("%d devices found\n", count);
while (1){
float temperature = TempReading();
lcd.printf("Temperature: %2.f degC\n", temperature);
}
}