Arduino Sound Sensor: Difference between revisions
From wikiluntti
Line 9: | Line 9: | ||
See https://www.atomic14.com/2020/09/12/esp32-audio-input | See https://www.atomic14.com/2020/09/12/esp32-audio-input | ||
== Code 1. The simple == | == Digital Sound sensor == | ||
=== Code 1. The simple === | |||
Tutorial page: https://arduinogetstarted.com/tutorials/arduino-sound-sensor | Tutorial page: https://arduinogetstarted.com/tutorials/arduino-sound-sensor | ||
Line 33: | Line 35: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Exercises == | == Exercises == |
Revision as of 21:11, 20 June 2025
Introduction
Simple sound sensor; output True or False.
See https://www.atomic14.com/2020/09/12/esp32-audio-input
Digital Sound sensor
Code 1. The simple
Tutorial page: https://arduinogetstarted.com/tutorials/arduino-sound-sensor
#define SENSOR_PIN 7
int lastState = HIGH; // the previous state from the input pin
int currentState; // the current reading from the input pin
void setup() {
Serial.begin(9600);
pinMode(SENSOR_PIN, INPUT);
}
void loop() {
currentState = digitalRead(SENSOR_PIN);
if (currentState){
Serial.println( currentState );
}else{
Serial.print("Schii");
}
}
Exercises
Code 1
Turn on the one more LED if the sound is strong enough.
#include <FastLED.h>
#define SENSOR_PIN 7
#define NUM_LEDS 10
#define LED_PIN 5
int soundState = HIGH; // the previous state from the input pin
int numLeds = 0;
CRGB leds[NUM_LEDS];
void setup() {
Serial.begin(9600);
pinMode(SENSOR_PIN, INPUT);
FastLED.addLeds<WS2812B, LED_PIN, GRB>(leds, NUM_LEDS);
FastLED.setBrightness(20);
}
void loop() {
soundState = digitalRead(SENSOR_PIN);
if (soundState){
numLeds++;
}
for (int i=0; i<min( numLeds, NUM_LEDS); i++){
leds[i] = CRGB::Green;
FastLED.show();
}
if (soundState){
Serial.println("");
Serial.println( soundState );
}else{
Serial.print("Schii");
}
}
Code 2
- Turn all the LEDS to black in the SetUp()
- Add delay when sound is noticed (not two LEDs turning on at the same time).
- turn of the last led after a while.
Code 3: test
#include <FastLED.h>
// Arduino's pin connected to OUT pin of the sound sensor
#define SENSOR_PIN 7
#define NUM_LEDS 10
#define LED_PIN 5
int soundState = HIGH; // the previous state from the input pin
int numLeds = 0;
CRGB leds[NUM_LEDS];
unsigned long turnOffStart;
void setup() {
Serial.begin(9600);
pinMode(SENSOR_PIN, INPUT);
FastLED.addLeds<WS2812B, LED_PIN, GRB>(leds, NUM_LEDS);
FastLED.setBrightness(20);
for (int i=0; i<NUM_LEDS; i++){
leds[i] = CRGB::Black;
FastLED.show();
}
turnOffStart = millis();
}
void loop() {
soundState = digitalRead(SENSOR_PIN);
if (soundState){
numLeds++;
turnOffStart = millis();
delay(50);
}
if (millis() - turnOffStart > 200){
turnOffStart = millis();
numLeds = max( 0, numLeds--);
}
for (int i = min( numLeds, NUM_LEDS); i<NUM_LEDS; i++){
leds[i] = CRGB::Black;
FastLED.show();
}
for (int i=0; i<min( numLeds, NUM_LEDS); i++){
leds[i] = CRGB::Green;
FastLED.show();
}
}
HQ: Gravity: Analog Sound Level Meter
https://www.dfrobot.com/product-1663.html and the Wiki https://wiki.dfrobot.com/Gravity__Analog_Sound_Level_Meter_SKU_SEN0232
MAX4466 / GY4466
MAX4466 Microphone Amplifier Module
MAX9814
Electret Microphone Amplifier - MAX9814 with Auto Gain Controller is a mic with integrated pre-amp plus audio amplifier. It is analog.
INMP441
Digital I2S MEMS microphone.
SPH0645
Digital I2S MEMS microphone.
Hiwonder sound module
LM358 Operational Amplifier Module
To amplify the analog data.