You do realize that I have posted code that shows how to read registers. You can use this code assuming you want to use Wire.h
byte wrReg(unsigned char regID, unsigned char regDat){
Wire.beginTransmission(sensor_addr >> 1);
Wire.write(regID);
Wire.write(regDat);
if(Wire.endTransmission()){
return 0;
while(1);
}
delay(1);
return 1;
}
Before using the function please add this to setup()
Wire.begin();
Also you will need to add
#define sensor_addr 0x42
To your code
Also yes you do need to provide a clock. The best way to provide a clock is to use PWM, using PWM you can generate an 8mhz clock. You will need to convert the 5v clock to 3.3v. I use a buffer to do this.