Teensy 3.6 not detecting MCP9808 sensor

0
 
Chandler obviously had problems including an image in a message and has emailed me the photo. I've resized it (it was over 3MB) and include it here:
View attachment 21728

Looks to me like you haven't got SDA and SCL wired properly. SDA on the MCP9808 should go to SDA on the T3.6, and similarly with SCL. You have SDA to SCL.

Pete
 
Last edited by a moderator:
Chandler obviously had problems including an image in a message and has emailed me the photo. I've resized it (it was over 3MB) and include it here:
View attachment 21728

Looks to me like you haven't got SDA and SCL wired properly. SDA on the MCP9808 should go to SDA on the T3.6, and similarly with SCL. You have SDA to SCL.

Pete

Just fixed that issue and still throwing that the sensor cant be found
 
The rest of your wiring looks OK.
I hooked up a T3.6 with several I2C devices, including the Chronodot. I tried two different I2C scanners and both find all 5 addresses on the bus using a range of pullups - I tried 2k2, 4k7 and even no pullups at all.

The only thing I can think of to try is to use a multimeter with continuity tester and make sure that all of the jumper wires are good.

Pete
 
Again maybe show current picture (sized to < 1mb...) The attachments above are not valid...
 
Again at least with that last photo, it is hard to follow the wires, but I am unsure if on A4/A5 Or if it is off by one A5/A6... (again why I run the HiLow test to take the doubt out of things...)
 
Again I would suggest check your wiring.

My one arrived today, I hooked it up to a T3.6 ... Quick and dirty

screenshot.jpg

I ran the unedited Adafruit library test program:
Code:
/**************************************************************************/
/*!
This is a demo for the Adafruit MCP9808 breakout
----> http://www.adafruit.com/products/1782
Adafruit invests time and resources providing this open source code,
please support Adafruit and open-source hardware by purchasing
products from Adafruit!
*/
/**************************************************************************/

#include <Wire.h>
#include "Adafruit_MCP9808.h"

// Create the MCP9808 temperature sensor object
Adafruit_MCP9808 tempsensor = Adafruit_MCP9808();

void setup() {
  Serial.begin(9600);
  while (!Serial); //waits for serial terminal to be open, necessary in newer arduino boards.
  Serial.println("MCP9808 demo");
  
  // Make sure the sensor is found, you can also pass in a different i2c
  // address with tempsensor.begin(0x19) for example, also can be left in blank for default address use
  // Also there is a table with all addres possible for this sensor, you can connect multiple sensors
  // to the same i2c bus, just configure each sensor with a different address and define multiple objects for that
  //  A2 A1 A0 address
  //  0  0  0   0x18  this is the default address
  //  0  0  1   0x19
  //  0  1  0   0x1A
  //  0  1  1   0x1B
  //  1  0  0   0x1C
  //  1  0  1   0x1D
  //  1  1  0   0x1E
  //  1  1  1   0x1F
  if (!tempsensor.begin(0x18)) {
    Serial.println("Couldn't find MCP9808! Check your connections and verify the address is correct.");
    while (1);
  }
    
   Serial.println("Found MCP9808!");

  tempsensor.setResolution(3); // sets the resolution mode of reading, the modes are defined in the table bellow:
  // Mode Resolution SampleTime
  //  0    0.5°C       30 ms
  //  1    0.25°C      65 ms
  //  2    0.125°C     130 ms
  //  3    0.0625°C    250 ms
}

void loop() {
  Serial.println("wake up MCP9808.... "); // wake up MCP9808 - power consumption ~200 mikro Ampere
  tempsensor.wake();   // wake up, ready to read!

  // Read and print out the temperature, also shows the resolution mode used for reading.
  Serial.print("Resolution in mode: ");
  Serial.println (tempsensor.getResolution());
  float c = tempsensor.readTempC();
  float f = tempsensor.readTempF();
  Serial.print("Temp: "); 
  Serial.print(c, 4); Serial.print("*C\t and "); 
  Serial.print(f, 4); Serial.println("*F.");
  
  delay(2000);
  Serial.println("Shutdown MCP9808.... ");
  tempsensor.shutdown_wake(1); // shutdown MSP9808 - power consumption ~0.1 mikro Ampere, stops temperature sampling
  Serial.println("");
  delay(200);
}

Code:
MCP9808 demo
Found MCP9808!
wake up MCP9808.... 
Resolution in mode: 3
Temp: 21.3750*C	 and 70.4750*F.
Shutdown MCP9808.... 

wake up MCP9808.... 
Resolution in mode: 3
Temp: 21.4375*C	 and 70.5875*F.
Shutdown MCP9808.... 

wake up MCP9808.... 
Resolution in mode: 3
Temp: 21.4375*C	 and 70.5875*F.
Shutdown MCP9808....


The wire scanner program finds it.
Code:
I2C Scanner
Scanning...
Device found at address 0x18  (LIS331DLH)
done

Scanning...
Device found at address 0x18  (LIS331DLH)
done

Scanning...
Device found at address 0x18  (LIS331DLH)
done
Although maybe need to add the logical name for device as one of them that might be using address 0x18

Update: FYI - I moved the SCL wire to 37 and SDA wire to pin 38 and edited the Adafruit program like:
Code:
  if (!tempsensor.begin(0x18, &Wire1)) {

And it worked as well.
 
Last edited:
Back
Top