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
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: