基于 Arduino Nano 的智能运动感应水枪
组件与物料
| 组件 | 数量 | 备注 |
|---|---|---|
| Arduino Nano R3 | 1 | |
| PIR 运动传感器 (通用) | 1 | |
| 半尺寸无焊面包板 | 1 | |
| 通用 NPN 三极管 (2N3904) | 1 | |
| 330 Ω 电阻 | 1 | 值不必精确,稍大或稍小均可 |
所需工具和机器
- 激光切割机 (通用)
项目介绍
该项目灵感来源于 Tinkernut 的 Arduino 运动检测喷水枪。由于在购买 Raid 自动扳机困难,作者在淘宝网发现了一款类似产品(价格约 ¥78.80),且无需拆解内部结构,只需改装按钮使其兼容面包板/Arduino 即可。
项目被改造为工作坊形式,因此包含大量幻灯片和大字体说明。
步骤 1:改装水枪
通过拆解水枪,将原按钮引出至面包板,实现 Arduino 控制。以下图片展示详细拆解过程:
步骤 2:与 Arduino 连接
首先搭建并测试 PIR 运动传感器与 Arduino Nano 的连接:
/* PIR 传感器测试代码 */
int calibrationTime = 10; // 传感器校准时间 (10-60 秒)
int outputPin = 2; // LED 输出引脚
int inputPin = 4; // PIR 传感器输入引脚
int pirState = LOW; // 初始状态:无运动
int val = 0; // 读取引脚状态变量
void setup() {
pinMode(outputPin, OUTPUT);
pinMode(inputPin, INPUT);
digitalWrite(outputPin, LOW); // 防止上电误触发
Serial.begin(9600);
Serial.print("calibrating sensor ");
for(int i = 0; i < calibrationTime; i++) {
Serial.print(".");
delay(1000);
}
Serial.println(" done");
Serial.println("SENSOR ACTIVE");
delay(50);
}
void loop() {
val = digitalRead(inputPin);
if (val == HIGH) {
digitalWrite(outputPin, HIGH);
if (pirState == LOW) {
Serial.println("Motion detected!");
pirState = HIGH;
}
} else {
digitalWrite(outputPin, LOW);
if (pirState == HIGH) {
Serial.println("Motion ended!");
pirState = LOW;
}
}
}
通过串口监视器确认工作正常后,连接水枪电路:使用三极管和电阻驱动水枪电机。
完成后即可得到一个运动感应喷水装置。作者使用激光切割制作木质外壳(也可用 3D 打印)。代码中包含 10 秒校准延时,以便传感器稳定。

制造工艺
- 泵动水枪演进史:从发明到全球市场霸主
- 树莓派 PIR 运动传感器控制 LED 实战指南
- 用 Arduino 打造绚丽显示器 Ambilight 系统
- 用 Arduino UNO 和 OLED 显示屏制作经典 Pong 游戏:分步教程
- K30 CO₂ 传感器:室内空气质量实时监测
- DIY 数字身高仪:Arduino Nano + VL53L0X 激光测距 + OLED 显示
- Arduino 音频频率检测:基于 FFT 测量最响亮声音峰值
- 互动 LED 矩阵门显:PIR 触发节日问候 + 待机特效
- Arduino 井字棋游戏:MAX7219 点阵屏 + 纸板外壳 DIY
- Arduino Cloud 传感器塔:温度、动作与气体监测
- 使用 SparkFun 7 段数码管构建可靠的 Arduino 倒计时器
- 自制 Arduino 遥控保时捷赛车:从改装底盘到手机 App 控制全攻略