超声波测水位arduino
时间: 2023-08-15 21:05:31 浏览: 81
超声波传感器可以用于测量水位,Arduino可以作为控制器来读取传感器数据并进行处理。以下是基本的超声波测水位Arduino代码:
```
#define trigPin 9
#define echoPin 10
#define waterLevelPin A0
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(waterLevelPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
Serial.print(distance);
Serial.println(" cm");
if (distance < 5) {
digitalWrite(waterLevelPin, HIGH);
} else {
digitalWrite(waterLevelPin, LOW);
}
delay(500);
}
```
这个代码使用了Arduino的pulseIn函数来测量超声波信号从发射到接收的时间。根据声音在空气中的传播速度,可以计算出水位的距离。如果距离小于5厘米,就会点亮连接到A0引脚的LED灯,表示水位过高。你可以根据具体情况修改代码中的距离阈值和输出方式。