プロジェクト22 ノイズメーター
1. 説明
ノイズメーターは、LEDマトリクス上の点の数を使ってノイズの大きさを反映します。
2. 配線図

3. テストコード
/*
keyestudio ESP32 Inventor Learning Kit
Project 22 Noisemeter
http://www.keyestudio.com
*/
#include <LedControl.h>
int DIN = 23;
int CLK = 18;
int CS = 15;
int sensor = 34;
LedControl lc=LedControl(DIN,CLK,CS,1);
byte data_val[8][8]= {
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01},
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01},
{0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x03, 0x01},
{0x00, 0x00, 0x00, 0x00, 0x0f, 0x07, 0x03, 0x01},
{0x00, 0x00, 0x00, 0x1f, 0x0f, 0x07, 0x03, 0x01},
{0x00, 0x00, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01},
{0x00, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01},
{0xff, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01}
};
void setup()
{
lc.shutdown(0,false); //When powering on, MAX72XX is in the power saving mode.
lc.setIntensity(0,8); //Set the brightness to the maximum
lc.clearDisplay(0); //Clear the display
}
void loop()
{
int val = analogRead(sensor);
Serial.println(val);
int temp = map(val,0,800,0,7); //The range of analog values in the 0-800 is the most appropriate
for(int i=0;i<8;i++)
{
lc.setRow(0,7-i,data_val[temp][i]);
}
}
4. テストコードの説明
音センサーが検出する音の値が大きいほど、LEDマトリクス上の点が多く点灯します。

