Software multiplexer

Hi
I'm trying to use this guide: Software I2C Multiplexer – Arduino Craft Corner
In order to read data from multiple SEN0390 sensors.

Can anybody help?

#include <DFRobot_B_LUX_V30B.h>
#include <FlexWire.h>


#define MAXSENSOR 2

// The pins that we use for the I2C buses
uint8_t sdapin[MAXSENSOR] = { 2, 4 };
uint8_t sclpin[MAXSENSOR] = { 3, 5 };

// Array of Flexwire instances
FlexWire wire[MAXSENSOR] = { {sdapin[0], sclpin[0]}, {sdapin[1], sclpin[1]} }; 

// Create array of instances of the HTU21D class
DFRobot_B_LUX_V30B mylux[MAXSENSOR];

void setup()
{
  Serial.begin(9600);
  Serial.println(F("Multi-I2C example with HTU21D"));
  for (uint8_t i=0; i < MAXSENSOR; i++) mylux[i].begin(wire[i]);
}

void loop()
{
  for (uint8_t i=0; i < MAXSENSOR; i++) {
    Serial.print(F("Sensor "));
    Serial.print(i+1);
    Serial.print(F(": "));
    Serial.print(mylux[i].lightStrengthLux(), 1);
    Serial.println("lux");
  }
  Serial.println();
  delay(1000);
}

Error :

Arduino: 1.8.19 (Windows 10), Board: "Arduino Uno"





















Software_multiplexer:15:35: error: no matching function for call to 'DFRobot_B_LUX_V30B::DFRobot_B_LUX_V30B()'

 DFRobot_B_LUX_V30B mylux[MAXSENSOR];

                                   ^

In file included from C:\Users\Agri\Documents\Arduino\Software_multiplexer\Software_multiplexer.ino:1:0:

C:\Program Files (x86)\Arduino\libraries\DFRobot_B_LUX_V30B-master/DFRobot_B_LUX_V30B.h:136:3: note: candidate: DFRobot_B_LUX_V30B::DFRobot_B_LUX_V30B(uint8_t, uint8_t, uint8_t)

   DFRobot_B_LUX_V30B(uint8_t cEN, uint8_t scl = SCL, uint8_t sda = SDA);

   ^~~~~~~~~~~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\DFRobot_B_LUX_V30B-master/DFRobot_B_LUX_V30B.h:136:3: note:   candidate expects 3 arguments, 0 provided

C:\Program Files (x86)\Arduino\libraries\DFRobot_B_LUX_V30B-master/DFRobot_B_LUX_V30B.h:40:7: note: candidate: constexpr DFRobot_B_LUX_V30B::DFRobot_B_LUX_V30B(const DFRobot_B_LUX_V30B&)

 class DFRobot_B_LUX_V30B{

       ^~~~~~~~~~~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\DFRobot_B_LUX_V30B-master/DFRobot_B_LUX_V30B.h:40:7: note:   candidate expects 1 argument, 0 provided

C:\Users\Agri\Documents\Arduino\Software_multiplexer\Software_multiplexer.ino: In function 'void setup()':

Software_multiplexer:21:63: error: no matching function for call to 'DFRobot_B_LUX_V30B::begin(FlexWire&)'

   for (uint8_t i=0; i < MAXSENSOR; i++) mylux[i].begin(wire[i]);

                                                               ^

In file included from C:\Users\Agri\Documents\Arduino\Software_multiplexer\Software_multiplexer.ino:1:0:

C:\Program Files (x86)\Arduino\libraries\DFRobot_B_LUX_V30B-master/DFRobot_B_LUX_V30B.h:145:8: note: candidate: void DFRobot_B_LUX_V30B::begin()

   void begin(void);

        ^~~~~

C:\Program Files (x86)\Arduino\libraries\DFRobot_B_LUX_V30B-master/DFRobot_B_LUX_V30B.h:145:8: note:   candidate expects 0 arguments, 1 provided

exit status 1

no matching function for call to 'DFRobot_B_LUX_V30B::DFRobot_B_LUX_V30B()'

Board at COM7 is not available



This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

8 posts were merged into an existing topic: Multiple software I2C, how?