I am trying to get 5x AS5600 encoders to work on an Adafruit TCA9548A Multiplexer that is attached to an Arduino Mega. So far, I have been able to use the examples to read one sensor connected directly to the Mega. Using the multiplexer, I can use the code on Adafruit's website to read the sensor type, but beyond that, I am having zero luck.
I think my issue is setting up the multiplexer code. Standard disclaimer - I am no coder, so I am trying to piece things together, which usually doesn't work. I can't seem to get a simple reading from the encoder through the multiplexer. Is there a sample using the multiplexer just to read an AS5600 sensor?
If anyone wants to see what example sketch's I am working with I can post them. My modified code is garbage, so I want to start from scratch.
Ok, I've been working on a sketch to read 2 AS5600 encoders through the TCA9548A Multiplexer. I'm getting some errors with the sensor2.begin section. If someone could let me know how to fix this I would greatly appreciate it. This is a continuation of the OP.
#include <TI_TCA9548A.h>
#include <AS5600.h>
#include <Wire.h>
AS5600 sensor1;
AS5600 sensor2;
void TCA9548A(uint8_t bus)
{
Wire.beginTransmission(0x70); // TCA9548A address is 0x70
Wire.write(1 << bus); // send byte to select bus
Wire.endTransmission();
}
void displayPosition(float position){
}
void setup() {
// Start Wire library for I2C
Wire.begin();
// Set multiplexer to channel 1 and initialize sensor with I2C addr 0x36
TCA9548A(1);
sensor1.begin(AS5600, 0x36);
// initialize sensor with I2C addr 0x36
TCA9548A(2);
sensor2.begin(AS5600, 0x36);
}
void loop() {
// Delay to allow sensor to stabilize
delay(2000);
// Read position
float p = AS5600.position();
// Set multiplexer to channel 1 and display temperature
TCA9548A(1);
displayPosition(t);
serialWrite.position();
}