You just found the perfect I2C sensor, and you want to wire up two or three or more of them to your Arduino when you realize "Uh oh, this chip has a fixed I2C address, and from what I know about I2C, you cannot have two devices with the same address on the same SDA/SCL pins!" Are you out of luck? You would be, if you didn't have this ultra-coolTCA9548A 1-to-8 I2C multiplexer!
Finally, a way to get up to 8 same-address I2C devices hooked up to one microcontroller - this multiplexer acts as a gatekeeper, shuttling the commands to the selected set of I2C pins with your command.
Using it is fairly straight-forward: the multiplexer itself is on I2C address 0x70 (but can be adjusted from 0x70 to 0x77) and you simply write a single byte with the desired multiplexed output number to that port, and bam - any future I2C packets will get sent to that port. In theory, you could have 8 of these multiplexers on each of 0x70-0x77 addresses in order to control 64 of the same-I2C-addressed-part.
Some header is required and once soldered in you can plug it into a solderless-breadboard. The chip itself is 3V and 5V compliant so you can use it with any logic level.
{"id":1649642045512,"title":"TCA9548A 1-to-8 I2C Multiplexer","handle":"tca9548a-1-to-8-i2c-multiplexer","description":"\u003cp\u003eYou just found the perfect I2C sensor, and you want to wire up two or three or more of them to your Arduino when you realize \"Uh oh, this chip has a fixed I2C address, and from what I know about I2C, you cannot have two devices with the same address on the same SDA\/SCL pins!\" Are you out of luck? You would be, if you didn't have this ultra-cool\u003cspan\u003e \u003c\/span\u003e\u003cstrong\u003eTCA9548A 1-to-8 I2C multiplexer\u003c\/strong\u003e!\u003c\/p\u003e\n\u003cp\u003eFinally, a way to get up to 8 same-address I2C devices hooked up to one microcontroller - this multiplexer acts as a gatekeeper, shuttling the commands to the selected set of I2C pins with your command.\u003c\/p\u003e\n\u003cp\u003eUsing it is fairly straight-forward: the multiplexer itself is on I2C address 0x70 (but can be adjusted from 0x70 to 0x77) and you simply write a single byte with the desired multiplexed output number to that port, and bam - any future I2C packets will get sent to that port. In theory, you could have 8 of these multiplexers on each of 0x70-0x77 addresses in order to control 64 of the same-I2C-addressed-part.\u003c\/p\u003e\n\u003cp\u003eSome header is required and once soldered in you can plug it into a solderless-breadboard. The chip itself is 3V and 5V compliant so you can use it with any logic level.\u003c\/p\u003e\n\u003ch5\u003eSpecifications\u003c\/h5\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0014\/4313\/5560\/files\/1d3756af4dcdaab4a9a6c86e03d27035_480x480.jpg?v=1593108542\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0014\/4313\/5560\/files\/1552821068_480x480.jpg?v=1593108536\" alt=\"\"\u003e\u003c\/p\u003e\n\u003ch5\u003eResources\u003c\/h5\u003e\n\u003cp\u003e\u003ca href=\"https:\/\/github.com\/thinkrobotics\/DATASHEET\/tree\/master\/ELECTRONIC_COMPONENTS\/ELC3006\"\u003eDatasheet\u003c\/a\u003e\u003c\/p\u003e\n\u003cp\u003e\u003ca href=\"https:\/\/github.com\/thinkrobotics\/LIBRARIES\/tree\/master\/ELECTRONIC_COMPONENTS\/ELC3006\"\u003eSample Code\u003c\/a\u003e\u003c\/p\u003e\n\u003cp\u003e\u003ca href=\"https:\/\/github.com\/thinkrobotics\/LIBRARIES\/tree\/master\/ELECTRONIC_COMPONENTS\/ELC3006\"\u003eLibrary\u003c\/a\u003e\u003c\/p\u003e\n\u003ch5\u003eTutorial\u003c\/h5\u003e\n\u003ciframe width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/wxCEFxf73eU\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\"\u003e\u003c\/iframe\u003e\n\u003cp\u003e \u003c\/p\u003e","published_at":"2022-12-06T11:23:10+05:30","created_at":"2019-03-02T19:51:36+05:30","vendor":"ThinkRobotics.in","type":"Breakout Boards","tags":["1-8","BRK-MISC","ELC3","I2C","multiplexer","TCA9548A","UART-MOD"],"price":23999,"price_min":23999,"price_max":23999,"available":true,"price_varies":false,"compare_at_price":43500,"compare_at_price_min":43500,"compare_at_price_max":45400,"compare_at_price_varies":true,"variants":[{"id":27847102496840,"title":"Without Soldered Pin","option1":"Without Soldered Pin","option2":null,"option3":null,"sku":"ELC3006","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"TCA9548A 1-to-8 I2C Multiplexer - Without Soldered Pin","public_title":"Without Soldered Pin","options":["Without Soldered Pin"],"price":23999,"weight":20,"compare_at_price":45400,"inventory_management":"shopify","barcode":"27847102496840","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":16220344877128,"title":"With Soldered Pin","option1":"With Soldered Pin","option2":null,"option3":null,"sku":"ELC3006S","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"TCA9548A 1-to-8 I2C Multiplexer - With Soldered Pin","public_title":"With Soldered Pin","options":["With Soldered Pin"],"price":23999,"weight":20,"compare_at_price":43500,"inventory_management":"shopify","barcode":"16220344877128","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/thinkrobotics.com\/cdn\/shop\/products\/InkedHTB18Av9X2jsK1Rjy1Xaq6zispXan_LI.jpg?v=1577796121","\/\/thinkrobotics.com\/cdn\/shop\/products\/HTB15wb1X4_rK1RkHFqDq6yJAFXaI.jpg?v=1577796121","\/\/thinkrobotics.com\/cdn\/shop\/products\/HTB11j_1X0jSspiq6AEqXXaC.jpg?v=1577796121","\/\/thinkrobotics.com\/cdn\/shop\/products\/HTB1cbf1X5LxK1RjdVXa2.jpg?v=1577796121"],"featured_image":"\/\/thinkrobotics.com\/cdn\/shop\/products\/InkedHTB18Av9X2jsK1Rjy1Xaq6zispXan_LI.jpg?v=1577796121","options":["Soldered"],"media":[{"alt":"TCA9548A 1-To-8 I2C Multiplexer","id":864270123080,"position":1,"preview_image":{"aspect_ratio":1.078,"height":742,"width":800,"src":"\/\/thinkrobotics.com\/cdn\/shop\/products\/InkedHTB18Av9X2jsK1Rjy1Xaq6zispXan_LI.jpg?v=1577796121"},"aspect_ratio":1.078,"height":742,"media_type":"image","src":"\/\/thinkrobotics.com\/cdn\/shop\/products\/InkedHTB18Av9X2jsK1Rjy1Xaq6zispXan_LI.jpg?v=1577796121","width":800},{"alt":"TCA9548A 1-To-8 I2C Multiplexer","id":864270155848,"position":2,"preview_image":{"aspect_ratio":1.08,"height":741,"width":800,"src":"\/\/thinkrobotics.com\/cdn\/shop\/products\/HTB15wb1X4_rK1RkHFqDq6yJAFXaI.jpg?v=1577796121"},"aspect_ratio":1.08,"height":741,"media_type":"image","src":"\/\/thinkrobotics.com\/cdn\/shop\/products\/HTB15wb1X4_rK1RkHFqDq6yJAFXaI.jpg?v=1577796121","width":800},{"alt":"TCA9548A 1-To-8 I2C Multiplexer","id":864270188616,"position":3,"preview_image":{"aspect_ratio":1.07,"height":748,"width":800,"src":"\/\/thinkrobotics.com\/cdn\/shop\/products\/HTB11j_1X0jSspiq6AEqXXaC.jpg?v=1577796121"},"aspect_ratio":1.07,"height":748,"media_type":"image","src":"\/\/thinkrobotics.com\/cdn\/shop\/products\/HTB11j_1X0jSspiq6AEqXXaC.jpg?v=1577796121","width":800},{"alt":"TCA9548A 1-To-8 I2C Multiplexer","id":864270221384,"position":4,"preview_image":{"aspect_ratio":1.089,"height":734,"width":799,"src":"\/\/thinkrobotics.com\/cdn\/shop\/products\/HTB1cbf1X5LxK1RjdVXa2.jpg?v=1577796121"},"aspect_ratio":1.089,"height":734,"media_type":"image","src":"\/\/thinkrobotics.com\/cdn\/shop\/products\/HTB1cbf1X5LxK1RjdVXa2.jpg?v=1577796121","width":799}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003eYou just found the perfect I2C sensor, and you want to wire up two or three or more of them to your Arduino when you realize \"Uh oh, this chip has a fixed I2C address, and from what I know about I2C, you cannot have two devices with the same address on the same SDA\/SCL pins!\" Are you out of luck? You would be, if you didn't have this ultra-cool\u003cspan\u003e \u003c\/span\u003e\u003cstrong\u003eTCA9548A 1-to-8 I2C multiplexer\u003c\/strong\u003e!\u003c\/p\u003e\n\u003cp\u003eFinally, a way to get up to 8 same-address I2C devices hooked up to one microcontroller - this multiplexer acts as a gatekeeper, shuttling the commands to the selected set of I2C pins with your command.\u003c\/p\u003e\n\u003cp\u003eUsing it is fairly straight-forward: the multiplexer itself is on I2C address 0x70 (but can be adjusted from 0x70 to 0x77) and you simply write a single byte with the desired multiplexed output number to that port, and bam - any future I2C packets will get sent to that port. In theory, you could have 8 of these multiplexers on each of 0x70-0x77 addresses in order to control 64 of the same-I2C-addressed-part.\u003c\/p\u003e\n\u003cp\u003eSome header is required and once soldered in you can plug it into a solderless-breadboard. The chip itself is 3V and 5V compliant so you can use it with any logic level.\u003c\/p\u003e\n\u003ch5\u003eSpecifications\u003c\/h5\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0014\/4313\/5560\/files\/1d3756af4dcdaab4a9a6c86e03d27035_480x480.jpg?v=1593108542\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0014\/4313\/5560\/files\/1552821068_480x480.jpg?v=1593108536\" alt=\"\"\u003e\u003c\/p\u003e\n\u003ch5\u003eResources\u003c\/h5\u003e\n\u003cp\u003e\u003ca href=\"https:\/\/github.com\/thinkrobotics\/DATASHEET\/tree\/master\/ELECTRONIC_COMPONENTS\/ELC3006\"\u003eDatasheet\u003c\/a\u003e\u003c\/p\u003e\n\u003cp\u003e\u003ca href=\"https:\/\/github.com\/thinkrobotics\/LIBRARIES\/tree\/master\/ELECTRONIC_COMPONENTS\/ELC3006\"\u003eSample Code\u003c\/a\u003e\u003c\/p\u003e\n\u003cp\u003e\u003ca href=\"https:\/\/github.com\/thinkrobotics\/LIBRARIES\/tree\/master\/ELECTRONIC_COMPONENTS\/ELC3006\"\u003eLibrary\u003c\/a\u003e\u003c\/p\u003e\n\u003ch5\u003eTutorial\u003c\/h5\u003e\n\u003ciframe width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/wxCEFxf73eU\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\"\u003e\u003c\/iframe\u003e\n\u003cp\u003e \u003c\/p\u003e"}