【小组成员】
五组:王韵淇 冯怡 吴瑶 褚冉 王澍 宋格格
实验目的
通过Arduino Uno和雨滴传感器模块,检测雨滴的数量,并在雨滴数量超过设定阈值时,点亮雨滴传感器模块上的LED灯和Arduino Uno板上连接到Pin 13的LED灯。
实验设备与材料
- Arduino Uno开发板
- 雨滴传感器模块
- 面包板
- 连接线
- 9V电池
- 电脑(安装Arduino IDE 2.3.4)
实验原理
雨滴传感器模块通过检测水滴的导电性来判断是否有雨滴落在传感器上。当雨滴数量超过设定的阈值时,传感器模块的数字输出引脚(D0)会输出高电平信号。Arduino Uno通过读取该信号,控制LED灯的亮灭。
实验步骤
1. 硬件连接
将雨滴传感器模块的A0引脚连接到Arduino Uno的A0引脚。
将雨滴传感器模块的D0引脚连接到Arduino Uno的数字引脚7。
将雨滴传感器模块的VCC引脚连接到Arduino Uno的5V电源。
将雨滴传感器模块的GND引脚连接到Arduino Uno的GND。
将Arduino Uno的Pin 13连接到LED灯。
2. 编写程序
打开Arduino IDE 项目“Raindrop sensor.ino”。
编写如下代码:
```cpp
const int analogPin = A0; // the A0 of the module attach to A0
const int digitalPin = 7; // D0 attach to pin7
const int beep = 13; // pin 13 built-in led
int Astate = 0; // store the value of A0
boolean Dstate = 0; // store the value of D0
void setup() {
pinMode(beep, OUTPUT); // set the ledpin as OUTPUT
pinMode(digitalPin, INPUT); // set digitalpin as INPUT
Serial.begin(9600); // initialize the serial monitor
}
void loop() {
Astate = analogRead(analogPin); // read the value of A0
Serial.print("A0:");
Serial.println(Astate); // print the value in the serial monitor
Dstate = digitalRead(digitalPin); // read the value of D0
Serial.print("D0:");
Serial.println(Dstate);
if (Dstate == HIGH) {
digitalWrite(beep, HIGH); // turn on the led
} else { // if the value of D0 is Low
digitalWrite(beep, LOW); // turn off the led
}
}
```
3. 上传程序
将Arduino Uno通过USB线连接到电脑。
在Arduino IDE中选择正确的开发板和端口。
点击上传按钮,将程序上传到Arduino Uno。
4. 实验测试
在雨滴传感器模块上滴几滴水,观察LED灯是否点亮。
打开Arduino IDE的串口监视器,查看A0和D0的读数。
实验结果
当雨滴传感器模块上滴有水滴时,D0引脚输出高电平信号,Arduino Uno检测到该信号后,点亮连接到Pin 13的LED灯。同时,串口监视器中显示A0和D0的读数,当D0为高电平时,LED灯点亮。
实验结论
通过本次实验,成功实现了雨滴传感器模块与Arduino Uno的连接和数据读取。当雨滴数量超过设定阈值时,能够正确点亮LED灯,验证了雨滴传感器模块和Arduino Uno的正常工作。
实验体会
本次实验加深了对Arduino开发板和传感器模块的理解,掌握了如何通过编程控制硬件设备。在实验过程中,遇到了一些硬件连接和程序编写的问题,通过查阅资料和调试,最终成功完成了实验。实验过程中,也体会到了团队合作的重要性,通过与同学的讨论和交流,解决了许多问题。