Problem interfacing Duemilanove with SRF10

Hi, I'm newbie at robotics and electronics. I'm trying to interface an Arduino Duemilanove with a SRF10 ultrason sensor. I have followed the instructions and conections. The problem is that it is supposed that the SRF should be capable of measuring up to 3m but the maximum measurement that I'm getting is 24cm. Can someone help me out with this problem.
The code that 'm using is the following:

/*

SRF02 sensor reader

language: Wiring/Arduino Reads data from a Devantech SRF02 ultrasonic sensor.

Should also work for the SRF08 and SRF10 sensors as well.

Sensor connections:

SDA - Analog pin 4

SCL - Analog pin 5

created 5 Mar. 2007

by Tom Igoe

*/

// include Wire library to read and write I2C commands:

#include <Wire.h> // Verificar libreria Wire

// the commands needed for the SRF sensors:

#define sensorAddress 0x70 //Constantes hexadecimales de memoria predefinida

#define readInches 0x50 //Constantes hexadecimales de memoria predefinidas

// use these as alternatives if you want centimeters or microseconds:

#define readCentimeters 0x51 //Constantes hexadecimales de memoria predefinidas

#define readMicroseconds 0x52 //Constantes hexadecimales de memoria predefinidas

// this is the memory register in the sensor that contains the result:

#define resultRegister 0x02 //Constantes hexadecimales de memoria predefinida

void setup()

{

// start the I2C bus

Wire.begin(); // inicia el programa por medio de la conexion

// open the serial port:

Serial.begin(9600); //Comunicacion para mostrar resultados en pantalla

}

void loop()

{

// send the command to read the result in inches:
// sendCommand(sensorAddress, 0x02, 0x1F); //Configura rango de medicion
//sendCommand(sensorAddress, 0x01, 0x10); //Establece una ganancia
sendCommand(sensorAddress, 0x00, 0x51); //Enviar al sensor un comando lectura centimetros //0x00, 0x51

// wait at least 70 milliseconds for a result:

delay(70);

// set the register that you want to reas the result from:

setRegister(sensorAddress, resultRegister);

// read the result:

int sensorReading = readData(sensorAddress, 2);

// print it:

Serial.print("Distancia: ");

Serial.print(sensorReading);

Serial.println(" Microsegundos");

// wait before next reading:

delay(70);

}

/*

SendCommand() sends commands in the format that the SRF sensors expect

*/

void sendCommand (int address, int Register, int command) { //int Register

// start I2C transmission:

Wire.beginTransmission(address);

// send command:

Wire.send(Register); //Register

Wire.send(command);

// end I2C transmission:

Wire.endTransmission();

}

/*

setRegister() tells the SRF sensor to change the address pointer position

*/

void setRegister(int address, int thisRegister) {

// start I2C transmission:

Wire.beginTransmission(address);

// send address to read from:

Wire.send(thisRegister);

// end I2C transmission:

Wire.endTransmission();

}

/*

readData() returns a result from the SRF sensor

*/

int readData(int address, int numBytes) {

int result = 0; // the result is two bytes long

// send I2C request for data:

Wire.requestFrom(address, numBytes);

// wait for two bytes to return:

while (Wire.available() < 2 ) {

// wait for result

}

// read the two bytes, and combine them into one int:

result = Wire.receive() * 256;

result = result + Wire.receive();

// return the result:

return result;

}