diff --git a/arduino/i2c_slave_with_sensor_reading.ino b/arduino/i2c_slave_with_sensor_reading.ino index a820baf3..29e7a6d8 100644 --- a/arduino/i2c_slave_with_sensor_reading.ino +++ b/arduino/i2c_slave_with_sensor_reading.ino @@ -1,43 +1,25 @@ #include #define REGISTER_0 0x00 - #define REGISTER_1 0x01 - #define REGISTER_2 0x02 - #define REGISTER_3 0x03 #define I2C_ADDRESS_SELF 0x4B - - unsigned int reg_0_value = 41151; - unsigned int reg_1_value = 1; - unsigned int reg_2_value = 2; - unsigned int reg_3_value = 3; - - uint8_t master_reg; // I2C master read register - uint8_t slave_reg; // I2C slave read register - - void setup() - { - Serial.begin(9600); //Begins Serial communication - Serial.println("Setup for sensor"); - - Wire.begin(I2C_ADDRESS_SELF); // join i2c bus // Wire.setClock(400000); // set I2C clock for full speed @@ -45,101 +27,55 @@ void setup() Serial.begin(9600); // start serial for output // digitalWrite(A4, LOW); - // digitalWrite(A5, LOW); Wire.onRequest(requestEvent); - Wire.onReceive(receiveEvent); - pinMode(PC13, OUTPUT); - Serial.println("Starting"); } - - void loop() - { - delay(1000); - - Serial.println("Read sensor value"); - - reg_0_value = 1; // set register 0 value to the sensor value - reg_1_value += 1; // increment a count of how many values read - } - - void receiveEvent(int bytes) { - // Slave reads the first byte to determine which register is concerned - slave_reg = Wire.read(); - Serial.print("Slave read register "); - Serial.println(slave_reg); - } - - void requestEvent() { - // Slave uses the the register variable to know what to send back - digitalWrite(PC13, HIGH); - if (slave_reg == REGISTER_0) { - Wire.write((uint8_t *)®_0_value, sizeof(reg_0_value)); - Serial.print("Slave writing value "); - Serial.println(reg_0_value); - } else if (slave_reg == REGISTER_1) { - Wire.write((uint8_t *)®_1_value, sizeof(reg_1_value)); - Serial.print("Slave writing value "); - Serial.println(reg_1_value); - } else if (slave_reg == REGISTER_2) { - Wire.write((uint8_t *)®_2_value, sizeof(reg_2_value)); - Serial.print("Slave writing value "); - Serial.println(reg_2_value); - } else if (slave_reg == REGISTER_3) { - Wire.write((uint8_t *)®_3_value, sizeof(reg_3_value)); - Serial.print("Slave writing value "); - Serial.println(reg_3_value); } else { - Serial.println("Slave unknown register"); - } - delay(50); - digitalWrite(PC13, LOW); - }