Buscador de rango ultrasónico con un solo transductor

2

Me gustaría hacer un buscador de rango ultrasónico con un solo transductor. La razón de que solo haya un transductor es porque estoy limitado en la cantidad de espacio que tengo para lo que estoy sintiendo. He comprado el sensor ultrasónico EZ01 y funciona bien, pero ahora necesito hacer el mío con un transductor a prueba de agua. Tengo el transductor que es de 40kHz pero necesito juntar los otros componentes junto con mi arduino. Me pregunto si alguien tiene alguna experiencia con esto y podría dirigirme a un esquema o cualquier información sobre cómo conectar esto y usar el transductor como transmisor y receptor.

    
pregunta bostoncommon

1 respuesta

0

¿Cómo se hace un sensor de rango con un transductor:

ComopuedeverenlahojadedatosdelEZ01,tienelacapacidaddehacerambascosas.EselmismopinoutquemisensorMB7380:

¿Cómoimpermeabilizanlossensoreselectrónicos?

  • Cómo empaquetar un sensor herméticamente un entorno de bricolaje?

→ tubería termocontraíble de silicona y epoxi impermeable

Hay sensores ultrasónicos impermeables de $ 13 en eBay ($ 15 en Amazon). Como dice Chris Stratton, el EZ01 no está diseñado para funcionar en entornos acuáticos. Después de todo, el agua es 850 veces más densa que el aire.

C

unsigned long startMillis;
unsigned long currentMillis;

const byte pinTX = 9; // trigger
const byte pinRX = 10; // echo

void setup() {
  startMillis = millis();  // initial start time

  pinMode(pinTX, OUTPUT);
  Serial.begin(9600);
}
void loop() {
  currentMillis = millis(); // milliseconds since start

  // Reads & returns sound wave traveled in microseconds
  duration = pulseIn(echoPin, HIGH);

  // Calculate distance
  distance= duration*0.034/2;  // DO: Change this calculation...

  // From here it depends on how you want to output the data: datalogger, LCD screen, etc.
  // See https://howtomechatronics.com/tutorials/arduino/ultrasonic-sensor-hc-sr04/
}

// Function you probably don't need: 
void read(){ // for connecting to pin 4 on sensor
  int len, m;
  char testStr[] = "R012\r";   // <test> This version takes 1870 bytes
//  in = Serial.read(pinRX);
  len = strlen(testStr);        // <test>
//  len = strlen(in);
return m = atoi(&testStr[len - 3]);  // <test>
//  Serial.println(m);          // <test>
//  m = atoi(&in[len - 3]);     // measured TTL serial output converted

}
    
respondido por el Adam Uraynar

Lea otras preguntas en las etiquetas