Aumentar alcance del SRF08

Buenas tardes alguien me podría orientar o guiar para poder medir hasta los 11 metros con este sensor ya que he leído pero no entiendo mucho les agradezco de ante mano su colaboración
si me podrían ayudar con el código para el arduino uno mejor
este es mi codigo pero no alcanza mas de 2.5 metros


Código:
#include <Wire.h>                                   // Byte for start of ranging data
#define srfAddress 0x70                             // Address of the SRF08
#define cmdByte    0x00                             // Command byte
#define rangeByte  0x02

byte lowByte;
byte highByte;
float nivel;

void setup(){
  Wire.begin();                                   // Initialize the I2C bus
  Serial.begin(9600);                             // Initialize the serial connection
  delay(100);                                     // Waits to make sure everything is powered up before sending or receiving data
}

void loop(){

  int rangeData = getRange();  // Calls a function to get the range data
    nivel = rangeData;
  //nivel = 600 - rangeData;
  //nivel = ((nivel*430)+430);
  if(nivel >= 100){
    nivel /= 100;
    Serial.print("nivel : ");
    Serial.print(nivel);
    Serial.print(" Mt ");
    Serial.println("");
    delay(1000);  
  }

  else{
    Serial.print("nivel : ");
    Serial.print(nivel);
    Serial.print(" Cm ");
    Serial.println("");
    delay(1000);  
  }


}



int getRange(){                                 // This function gets a ranging from the SRF08

  int range;

  Wire.beginTransmission(srfAddress);                 // Start communicating with SRF08
  Wire.write((byte)cmdByte);                      // Send Command Byte
  Wire.write(0x54);                            // Send 0x51 to start a ranging in cm
  Wire.endTransmission();

  delay(70);                                     // Wait for ranging to be complete 70

  Wire.beginTransmission(srfAddress);             // start communicating with SRFmodule
  Wire.write(rangeByte);                           // Call the register for start of ranging data
  Wire.endTransmission();

  Wire.requestFrom(srfAddress, 18);                // Request 2 bytes from SRF module 2
  while(Wire.available() < 2);                    // Wait for data to arrive
  byte highByte = Wire.read();                 // Get high byte
  byte lowByte = Wire.read();                  // Get low byte

  range = (highByte << 18) + lowByte;
  return(range);                                  // Returns Range
}
 
Última edición por un moderador:
muchas gracias dosmetros pero en la pagina de superrobotica dice que se puede alcanzar modificando la ganancia, y aun mas en el documento que me enviaste dice lo mismo muchas gracias pro su respuesta voy a seguir investigando haber si lo daño al menos jajaja gracias
 
Atrás
Arriba