Ich möchte einen Ultraschall-Entfernungsmesser mit einem einzigen Wandler bauen. Der Grund für nur einen Wandler ist, dass ich nur begrenzt Platz für das habe, was ich erfasse. Ich habe den Ultraschallsensor EZ01 gekauft und er funktioniert gut, aber ich muss jetzt meinen eigenen mit einem wasserdichten Wandler machen. Ich habe den Wandler mit 40 kHz, muss aber die anderen Komponenten zusammen mit meinem Arduino zusammenstellen. Ich frage mich, ob jemand Erfahrung damit hat und mich auf einen Schaltplan oder Informationen zur Verkabelung verweisen und den einen Wandler als Sender und Empfänger verwenden kann.
Wie macht man einen Entfernungssensor mit einem Wandler:
Wie Sie dem EZ01-Datenblatt entnehmen können, ist beides möglich. Es ist die gleiche Pinbelegung wie mein MB7380-Sensor:
Wie macht man elektronische Sensoren wasserdicht?
→ Silikon-Schrumpfschlauch und wasserdichtes Epoxid
Es gibt 13 $ wasserdichte Ultraschallsensoren bei eBay (15 $ bei Amazon). Wie Chris Stratton sagt, ist der EZ01 nicht für den Einsatz in aquatischen Umgebungen ausgelegt. Immerhin ist Wasser 850-mal dichter als Luft.
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
}
Andi aka
Spehro Pefhany