サウンドレベルデータ用のLCD付きサウンドセンサー起動LED!
コンポーネントと消耗品
> |
| × | 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であると想定されているが、過去の値が1234であったため、6194になります。
ここから.cppファイルと.hファイルをダウンロードします。
************************************************** ****************************
フォローするソーシャルメディアリンク(つまり、必要に応じて):
Facebook-https://fb.me/HeathenHacks
Twitter-https://twitter.com/HeathenHacks
Instagram-https://instagr.am/HeathenHacks
************************************************** ****************************
<図>https://drive.google.com/file/d/15NRocdFjr-DG7Hu2zyyvSvRz7bcncvU7/
<図>
コード
- SoundSensorLEDwData
SoundSensorLEDwData Arduino
説明のためにコードにコメントを追加しました。私が何をしているのかを知っているといいのですが。 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 255LiquidCrystal_PCF8574 LCDi2C; //名前を追加ブレッドボード上の電球+ Arduinoで接続されている場所// LED1はブレッドボード上のLED電球1で、3はArduino上のデジタルPWM3です.intLED1 =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」が接続されている場所です。intsensorValue=analogRead(A0); //これはサウンドセンサーの「AO」が接続されている場所です。booleanLEDStatus=false; void setup(){Serial.begin(9600); LCDi2C.begin(LCD_COLUMNS、LCD_ROWS、LCD_ADDRESS、BACKLIGHT); //これらは前に定義したものです。 pinMode(soundSensor、INPUT); //サウンドセンサーは入力デバイスであるため。 pinMode(LED1、OUTPUT); pinMode(LED2、OUTPUT); pinMode(LED3、OUTPUT); pinMode(LED4、OUTPUT); pinMode(LED5、OUTPUT); pinMode(LED6、OUTPUT); pinMode(LED7、OUTPUT); pinMode(LED8、OUTPUT); pinMode(sensorValue、OUTPUT); // 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( "SoundLevel Data:"); // LCDの行1に表示されて留まるテキスト。 LCDi2C.setCursor(0,1); //これは、テキストが上にスクロールして消えないようにし、sensorValueデータが追加されているときに再度表示されるようにするためです。 LCDi2C.print(sensorValue); // LCDに表示されるデータ。 LCDi2C.print( ""); //これは、過去の値からの余分な桁が現在の値に表示されないようにするためです。同様に、過去の値が1234の場合、現在の値は619であると想定されますが、6194と表示されます。} if(sensorValue> =750){// sensorValueがXX以上。 XX番号は、シリアルモニターの最新データから収集されます。それをコピーしてスプレッドシートに貼り付け、音量レベルが最も低いものから最も高いものへと並べていきます。 digitalWrite(LED8、HIGH); //センサー値データに従って対応するLED電球を表示または点灯することにより、センサーのように機能させたい場合は、各LED電球のセンサーとは異なる値を使用できます。 } //センサーが小音量の音を拾うと、黄色のLED電球が点灯します。最小音量レベル。音量レベルに問題がない場合は緑色のLED電球が点灯し、音量が大音量のしきい値に達すると赤色のLED電球が点灯します。 else {//または、すべてのLEDを同時に反応させたい場合は、すべてのLEDに同じ値を追加することもできます。 LEDStatus =false; //センサーの値を操作してLEDを踊らせることもできます。たとえば、センサー値をランダムに再配置します。または、2つのLEDを同じ値で反応させ、他のLEDを他の値に反応させます。 digitalWrite(LED8、LOW); } if(sensorValue> =735){digitalWrite(LED7、HIGH); } else {LEDStatus =false; digitalWrite(LED7、LOW); } if(sensorValue> =725){digitalWrite(LED6、HIGH); } else {LEDStatus =false; digitalWrite(LED6、LOW); } if(sensorValue> =720){digitalWrite(LED5、HIGH); } else {LEDStatus =false; digitalWrite(LED5、LOW); } if(sensorValue> =715){digitalWrite(LED4、HIGH); } else {LEDStatus =false; digitalWrite(LED4、LOW); } if(sensorValue> =700){digitalWrite(LED3、HIGH); } else {LEDStatus =false; digitalWrite(LED3、LOW); } if(sensorValue> =675){digitalWrite(LED2、HIGH); } else {LEDStatus =false; digitalWrite(LED2、LOW); } if(sensorValue> =650){digitalWrite(LED1、HIGH); } else {LEDStatus =false; digitalWrite(LED1、LOW); }} else {LEDStatus =false; //なぜこれを追加したのかよくわかりません。笑。 digitalWrite(LED1、LOW); digitalWrite(LED2、LOW); digitalWrite(LED3、LOW); digitalWrite(LED4、LOW); digitalWrite(LED5、LOW); digitalWrite(LED6、LOW); digitalWrite(LED7、LOW); digitalWrite(LED8、LOW); }}
回路図
ワイヤーを端から端までたどるだけです。 製造プロセス
- センサーフュージョンアルゴリズムは、自動車モデルの生データを使用します
- Würth:プリセット機能を備えた3軸加速度センサー
- センサーデータとRaspberryPiマイクロプロセッサーの統合
- RPiを備えたライントラッキングセンサー
- RPiを使用した環境センサーAPI
- ビジュアルデータをIoTと統合する可能性
- センサー情報に基づくアプリケーションを成功させるための6つの重要事項
- Arch Systemsは、製造データ変換のためにFlexと提携しています
- ロボット用の皮膚に匹敵する特性を備えたソフト触覚センサー
- ISS用のWiFiRSSIセンサートラッカー
- 次世代LEDベースのデータ通信のための材料