Change I2C-address of the srf08 with arduino

Hi,

I want to change the I2C-address of a srf08 ultrasonic sensor with an arduino UNO.

I shifted the Codes but it does not work:

#include <Wire.h>

#define Old_Address 0x70
#define New_Address 0x72

void setup() {

  Wire.begin();
  
  delay(100);
  
    Wire.beginTransmission(Old_Address);
    Wire.write(0);
    //Wire.write(0xA0);
    Wire.write(0x50);
    Wire.endTransmission();
    delay(60);
     
    Wire.beginTransmission(Old_Address);
    Wire.write(0);
    //Wire.write(0xAA);
    Wire.write(0x55);
    Wire.endTransmission();
    delay(60);
    
    Wire.beginTransmission(Old_Address);
    Wire.write(0);
    //Wire.write(0xA5);
    Wire.write(0x52);
    Wire.endTransmission();
    delay(60);
    
    Wire.beginTransmission(Old_Address);
    Wire.write(0);
    Wire.write(New_Address);
    Wire.endTransmission();
    delay(60);
}
  
void loop(){

}

You have to send it in one sequence, not 4 and use the correct values as the datasheet describes:

#include <Wire.h>

#define Old_Address 0x70
#define New_Address 0xF2

void setup() {

  Wire.begin();
  
  delay(100);
  
    Wire.beginTransmission(Old_Address);
    Wire.write(0);
    //Wire.write(0xA0);
    Wire.write(0x50);
    Wire.endTransmission();
    delay(60);
     
    Wire.beginTransmission(Old_Address);
    Wire.write(0xA0);
    Wire.write(0xAA);
    Wire.write(0xA5);
    Wire.write(New_Address);
    Wire.endTransmission();
}
  
void loop(){
}

After that you have to use the new address, which will be 0x79 (8bit 0xF2 shifted to the right one bit).

It is still not working. :relaxed:

#include <Wire.h>

#define Old_Address 0x70
#define New_Address 0xF2

void setup() {

  Wire.begin();
  
  delay(100);

    Wire.beginTransmission(Old_Address);
    Wire.write(0xA0);
    delay(50);
    Wire.write(0xAA);
    delay(50);
    Wire.write(0xA5);
    delay(50);
    Wire.write(New_Address);
    Wire.endTransmission();
}
  
void loop(){
}

Ok. I have it. Thank you for your help!

#include <Wire.h>

#define oldad 0x70
#define newad 0xE4

void setup() {

  Wire.begin();
  
  delay(100);

    Wire.beginTransmission(oldad);
    Wire.write(0x00);
    Wire.write(0xA0);
    Wire.endTransmission();
    delay(60);
    
    Wire.beginTransmission(oldad);
    Wire.write(0x00);
    Wire.write(0xAA);
    Wire.endTransmission();
    delay(60);
    
    Wire.beginTransmission(oldad);
    Wire.write(0x00);
    Wire.write(0xA5);
    Wire.endTransmission();
    delay(60);
    
    Wire.beginTransmission(oldad);
    Wire.write(0x00);
    Wire.write(newad);
    Wire.endTransmission();

}
  
void loop(){
}