声音传感器作为一种能够感应环境声音的模块,在物联网和智能家居中有着广泛应用。本项目结合树莓派Pico 、声音传感器 、电机模块 与风叶片,实现了一个简单的声控风扇系统。通过声音的强弱,用户可以控制风扇的开关,并通过Pico板的LED指示风扇状态。
一、项目目标
利用声音传感器感应周围环境的声音强度,当声音强度超过设定阈值时,控制电机模块驱动风扇旋转,并点亮树莓派Pico板上的LED。反之,当声音强度低于阈值时,风扇停止转动,LED熄灭。
二、所需元件
- 树莓派Pico开发板 × 1
- 声音传感器模块 × 1
- 130电机模块 × 1
- 三叶软桨 × 1
- 220Ω电阻 × 1
- USB线 × 1
- 杜邦线若干
- 面包板 × 1
三、元件知识
1. 声音传感器
声音传感器一般由内置的电容驻极体麦克风和功率放大器组成,能够感应周围环境的声音强度。该模块提供模拟输出(S引脚),可以通过树莓派Pico的模拟输入接口采集实时的声音信号。传感器还配有电位器,用于调节灵敏度,便于设置阈值。
2. 130电机模块
该电机模块采用HR1124S电机驱动芯片,适用于低功耗、低电压的应用。它通过H桥电路控制电机的转动方向和启停。
四、电路连接
-
声音传感器与树莓派Pico连接:
- 声音传感器的
VCC
连接到 Pico 的3.3V
。 - 声音传感器的
GND
连接到 Pico 的GND
。 - 声音传感器的
S
引脚(模拟输出)连接到 Pico 的GPIO28
(ADC2)。
- 声音传感器的
-
电机模块与树莓派Pico连接:
- 电机模块的
Motor_IN+
引脚连接到 Pico 的GPIO17
。 - 电机模块的
Motor_IN-
引脚连接到 Pico 的GPIO16
。 - 电机模块的
VCC
连接到 Pico 的5V
。 - 电机模块的
GND
连接到 Pico 的GND
。
- 电机模块的
-
LED与树莓派Pico连接:
- LED的正极通过220Ω电阻连接到 Pico 的
GPIO25
(内置LED引脚)。 - LED的负极连接到 Pico 的 GND。
- LED的正极通过220Ω电阻连接到 Pico 的
五、代码实现
以下代码通过声音传感器读取环境声音强度,当声音强度超过阈值时,驱动风扇转动并点亮LED,反之则停止风扇转动并熄灭LED。
//**********************************************************************************
/*
* 文件名 : 声控风扇
* 描述 : 通过声音传感器控制风扇
* 作者 :
*/
#define PIN_ADC2 28 // 声音传感器的引脚
#define PIN_Motorla 17 // 电机的Motor_IN+引脚
#define PIN_Motorlb 16 // 电机的Motor_IN-引脚
#define PIN_LED 25 // Pico板上内置LED的引脚
void setup() {
pinMode(PIN_LED, OUTPUT); // 设置LED为输出
pinMode(PIN_Motorla, OUTPUT); // 设置电机Motor_IN+为输出
pinMode(PIN_Motorlb, OUTPUT); // 设置电机Motor_IN-为输出
pinMode(PIN_ADC2, INPUT); // 设置声音传感器的ADC引脚为输入
}
void loop() {
int adcVal = analogRead(PIN_ADC2); // 读取声音传感器的ADC值
if (adcVal > 600) { // 根据阈值判断声音强度
digitalWrite(PIN_LED, HIGH); // 点亮LED
digitalWrite(PIN_Motorla, HIGH); // 电机正转,风扇启动
digitalWrite(PIN_Motorlb, LOW);
delay(5000); // 延时5秒,风扇持续转动
} else {
digitalWrite(PIN_LED, LOW); // 熄灭LED
digitalWrite(PIN_Motorla, LOW); // 停止电机转动
digitalWrite(PIN_Motorlb, LOW);
}
}
//**********************************************************************************
代码解析:
- 读取声音传感器 :使用
analogRead(PIN_ADC2)
读取声音传感器的模拟输出值,返回0到1023之间的数字值。 - 判断声音强度:设置阈值(600),当声音强度超过阈值时,LED点亮并且电机开始转动。
- LED控制 :通过
digitalWrite(PIN_LED, HIGH)
或LOW
控制Pico内置LED的状态,反馈风扇是否启动。
六、测试与实验现象
-
上传代码:
- 将代码上传到树莓派Pico。
- 确保声音传感器与Pico正确连接,电机模块和LED按图连接。
-
实验现象:
- 正常情况下,当周围环境的声音强度较低时,风扇停止旋转,LED熄灭。
- 当对声音传感器进行拍手或产生较大声音时,声音强度超过设定阈值,风扇开始转动,LED点亮。
- 风扇在5秒后自动停止,并熄灭LED,进入待机状态。
七、总结与扩展
通过本项目,您不仅学会了如何使用声音传感器与树莓派Pico进行声音感应,还实现了一个基本的声控风扇系统。该项目具有很好的扩展性,可以与其他传感器结合,实现更复杂的智能控制。
扩展建议:
- 声音识别:除了声音强度,还可以结合语音识别模块,实现基于特定指令的风扇控制。
- 多风扇控制:通过多路PWM控制多个风扇,形成更复杂的环境控制系统。
- 结合云平台:将数据上传到云平台,通过手机或其他设备远程控制风扇状态。
通过这个项目,您不仅学习了如何搭建声控设备的基本流程,还为将来更多嵌入式应用的开发打下了坚实的基础。