我想用arduino板和hcsr04还有四个小灯制作一个可以显示内含垃圾数量的垃圾桶,根据超声波传感器的读数来控制垃圾桶的灯数,显示垃圾桶的填满情况。距离越近,则显示的灯数越多。请问代码是怎样的
时间: 2024-02-25 20:57:29 浏览: 57
智能垃圾桶,基于Arduino和超声波传感器设计-电路方案
5星 · 资源好评率100%
好的,根据您的要求,我会提供一个简单的 Arduino 代码示例,实现通过 HCSR04 超声波传感器检测垃圾桶内的垃圾数量,并根据垃圾数量点亮相应的 LED 灯。
首先,您需要将 HCSR04 模块连接到 Arduino 板上。您需要将 HCSR04 的 VCC 引脚连接到 Arduino 的 5V 引脚,将 GND 引脚连接到 Arduino 的 GND 引脚,将 Trig 引脚连接到 Arduino 的数字引脚 9,将 Echo 引脚连接到 Arduino 的数字引脚 10。此外,您还需要将四个 LED 灯连接到 Arduino 板上的数字引脚 2~5 上。
接下来,就是代码的编写了。以下是一个示例代码,您可以根据自己的实际需要进行修改。
```
const int trigPin = 9;
const int echoPin = 10;
const int led1 = 2;
const int led2 = 3;
const int led3 = 4;
const int led4 = 5;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
int distance = duration * 0.034 / 2;
Serial.print("Distance: ");
Serial.println(distance);
if(distance < 10) {
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
} else if(distance < 20) {
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, LOW);
} else if(distance < 30) {
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
} else if(distance < 40) {
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
} else {
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
}
delay(1000);
}
```
在上述代码中,我们设置 trigPin 和 echoPin 分别连接到 HCSR04 模块的 Trig 和 Echo 引脚,led1~led4 分别连接到 Arduino 的数字引脚 2~5 上。
在循环中,我们首先通过 HCSR04 模块获取当前距离,然后根据距离的大小控制 LED 灯的点亮情况。当距离小于 10cm 时,点亮所有 LED 灯;当距离在 10cm~20cm 之间时,点亮前三个 LED 灯;当距离在 20cm~30cm 之间时,点亮前两个 LED 灯;当距离在 30cm~40cm 之间时,点亮前一个 LED 灯;当距离大于 40cm 时,所有 LED 灯都熄灭。
注意:以上代码仅为示例,具体实现可能需要根据您的实际需要进行修改。
阅读全文