声音传感器激活 LED,带有用于声级数据的 LCD!
组件和用品
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 | ||||
![]() |
| × | 2 | |||
![]() |
| × | 4 | |||
![]() |
| × | 2 | |||
| × | 4 | ||||
| × | 4 | ||||
![]() |
| × | 8 | |||
![]() |
| × | 4 | |||
![]() |
| × | 4 |
应用和在线服务
![]() |
|
关于这个项目
该项目是关于监测扬声器正在释放、产生或输出(?)的声级数据。
啊啊……这是好奇心和无聊的产物。
我使用 [KY-038] 麦克风声音传感器模块来拾取我然后从串行监视器收集的值,传输到电子表格,按升序排列,然后选择比其他值更重复出现的值,或者只是我选择的值喜欢。
我从最低范围到中高范围挑选了一些变量。
最低值范围的变量将激活黄色 LED,中值变量将激活绿色 LED,高值变量将激活红色 LED。
当声音传感器达到或检测到某个 sensorValue 时,LED 将被激活或打开。
我还提供了一个可选的 LCD 来实时查看数值,只是为了好玩。
我基本上只是升级了这段代码
从这里添加了一些代码
还有这里
LCD 代码来自我之前的项目
和用户名 MAS3 的评论在这里
我遇到了一个问题,显示在 LCD 上的数据有一些来自过去 sensorValue 的剩余数字。比如,当前值应该是 619,这是串行监视器上的值,但它变成了 6194,因为过去的值是 1234。
在此处下载 .cpp 和 .h 文件。
****************************************************** ********************************
要关注的社交媒体链接(我的意思是,如果您愿意):
Facebook - https://fb.me/HeathenHacks
推特 - https://twitter.com/HeathenHacks
Instagram - https://instagr.am/HeathenHacks
****************************************************** ********************************

https://drive.google.com/file/d/15NRocdFjr-DG7Hu2zyyvSvRz7bcncvU7/

代码
- SoundSensorLEDwData
SoundSensorLEDwDataArduino
我在代码上添加了注释以进行一些解释。我希望我知道我在做什么。 lol.#include "Arduino.h" #include "LiquidCrystal_PCF8574.h" #define LCD_ADDRESS 0x27#define LCD_ROWS 2#define LCD_COLUMNS 16#define SCROLL_DELAY 150#define BACKLIGHT 255LiquidCrystal8574.h"#define LCD_ADDRESS 0x27#def面包板上的灯泡 + Arduino 上的连接位置。// LED1 是面包板上的 LED 灯泡 1,3 是 Arduino 上的数字 PWM 3。int LED1=3;int LED2=4;int LED3=5;int LED4=6;int LED5=7;int LED6=8;int LED7=9;int LED8=10;int soundSensor=2; // Arduino 上的数字引脚 2 是连接声音传感器“DO”的地方。int sensorValue =analogRead(A0); //这是声音传感器的“AO”连接的地方。boolean LEDStatus=false;void setup() { Serial.begin(9600); LCDi2C.begin(LCD_COLUMNS, LCD_ROWS, LCD_ADDRESS, BACKLIGHT); //这些是我们之前定义的。 pinMode(声音传感器,输入); //因为我们的声音传感器是一个输入设备。 pinMode(LED1,输出); pinMode(LED2,输出); pinMode(LED3,输出); pinMode(LED4,输出); pinMode(LED5,输出); pinMode(LED6,输出); pinMode(LED7,输出); pinMode(LED8,输出); pinMode(传感器值,输出); //sensorValue 被声明为输出,因为它将被打印在 LCD 和串行监视器上。}void loop() { int sensorValue=analogRead(sensorValue); int SensorData=digitalRead(soundSensor); if(SensorData=1){ if(LEDStatus==false){ LEDStatus=true; Serial.println(sensorValue); //这将打印在串行监视器上,以确保 LCD 上的数据相同。 LCDi2C.setCursor(0,0); //这是为了在添加sensorValue数据时使文本不会向上滚动并消失然后再次重新出现。 LCDi2C.print("声级数据:"); //将出现并保留在 LCD 第一行的文本。 LCDi2C.setCursor(0,1); //这是为了在添加sensorValue数据时使文本不会向上滚动并消失然后再次重新出现。 LCDi2C.print(sensorValue); // 将出现在 LCD 上的数据。 LCDi2C.print(" "); // 这是为了防止过去值中的额外数字出现在当前值上。比如过去的值是1234,那么现在应该是619,结果显示为6194。 } if(sensorValue>=750) { // sensorValue 大于等于XX。 XX 数字是从串行监视器上的最新数据中收集的。将其复制并粘贴到电子表格上,然后从最低到半最高音量级别排列。数字写入(LED8,高); // 如果您希望每个 LED 灯泡通过根据传感器值数据显示或点亮相应的 LED 灯泡来充当传感器,则可以使用来自每个 LED 灯泡的传感器的不同值。 } // 就像黄色 LED 灯泡会在传感器接收到低音量声音时点亮。最小音量级别,当音量级别正常时绿色 LED 灯泡亮起,当音量达到大声音量阈值时红色 LED 灯泡亮起。 else{ // 或者,如果您希望所有 LED 同时做出反应,您可以向所有 LED 添加相同的值。 LED状态=假; // 您还可以使用传感器值让 LED 跳舞。例如,随机重新排列传感器值。或者让 2 个 LED 以相同的值作出反应,而其他 LED 以其他值作出反应。数字写入(LED8,低); } if(sensorValue>=735) { digitalWrite(LED7,HIGH); } else{ LEDStatus=false;数字写入(LED7,低); } if(sensorValue>=725) { digitalWrite(LED6,HIGH); } else{ LEDStatus=false;数字写入(LED6,低); } if(sensorValue>=720) { digitalWrite(LED5,HIGH); } else{ LEDStatus=false;数字写入(LED5,低); } if(sensorValue>=715) { digitalWrite(LED4,HIGH); } else{ LEDStatus=false;数字写入(LED4,低); } if(sensorValue>=700) { digitalWrite(LED3,HIGH); } else{ LEDStatus=false;数字写入(LED3,低); } if(sensorValue>=675) { digitalWrite(LED2,HIGH); } else{ LEDStatus=false;数字写入(LED2,低); } if(sensorValue>=650) { digitalWrite(LED1,HIGH); } else{ LEDStatus=false;数字写入(LED1,低); } } else{ LEDStatus=false; //不确定我为什么添加这个。哈哈。数字写入(LED1,低);数字写入(LED2,低);数字写入(LED3,低);数字写入(LED4,低);数字写入(LED5,低);数字写入(LED6,低);数字写入(LED7,低);数字写入(LED8,低); } }
示意图
只需按照电线从头到尾。
制造工艺