Multiple Thermocouples Setting i2C address

I’m trying to connect 4 type-k thermocouples powered by Arduino.

I have two choices as I understand it:

  1. Use a multiplexer
  2. Change the address on the thermocouple itself

I do have the multiplexer but I’m not having much luck there, the path of least resistance would be the ability to set each thermocouple to its own address.

Any help would be appreciated.


Hi Rob,

Which multiplexer do you have? We may have sample code for it.

Hi Travis,

I have this board: [

TCA9546A 4-Channel I2C Bus Multiplexer


Thank you!

Hi Rob,
It looks like we don’t have any sample code for that IC, however there appears to be a library available on GitHub here you might check:

Thank you for the help, much appreciated.

Hi Travis,

Do you have an i2c multiplexer that you have sample code for? I would be willing to buy another multiplexer as the code above I could not get working.

Thank you again,

its super easy to use TCA9546.
Step one – set the output port
Step 2-- run mcp9600 code to read temp

Lazy way-- my preferred method
There is pot on the board. use a screw driver to turn it ( a very small turn will go long way)

  1. step one – run i2c scan
  2. it will comes with an address, write down this address on the board
  3. take board two
  4. run the i2c scan. if the address is same as old board turn the pot slightly and scan again
  5. once you get a new address write it down and repeat this for all MCP9600.

Thanks Bhaskar,

I too changed the POTS and took the lazy way! But your mux code was exactly what I needed and now the multiplexer is working perfectly as well.