Lautstärke messen HW-484

Hallo liebe Arduino Community,
dies hier ist mein erster Beitrag, ich hoffe ihr habt Verständnis, falls nötige angaben eventuell fehlen.
Ich habe vor, durch Musik eine Multicolor LED zu steuern, die je nach Lautstärke und Frequenz die Helligkeit bzw. die Farbe ändert.
Leider scheitert mein Projekt schon beim ermitteln der Lautstärke. Ich weiß nichtmal, ob das mit meinem Soundsensor modul überhaupt funktioniert.

Ich benutze das Modul HW-484 zum Aufnehmen der Geräusche. ANgeschlossen ist das Modul mit dem Analogen ausgang an einem Analogen eingang beim Arduino.

zum überprüfen habe ich ein LCD display angeklemmt, welches den aktuellen Wert sowie min und max Wert des Signals anzeigt.

Leider sind die Unterschiede zwischen min und max sehr gering, egal wie ich den regler verstelle ( ich nehme an, dass es sich um ein Poti handelt)

Nachfolgend kommt mein quelltext, eventuell liegt auch hier der fehler.

#include <LiquidCrystal.h>

LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
int mic = A0;
int laut = 0;
int lautmax = 0;
int lautmin =12000;

void setup()
{
lcd.begin(16, 2);
Serial.begin(9600);
}

void loop()
{
delay(20);
laut=analogRead(mic);
//laut = map(analogRead(mic), 10, 30, 0, 255);
//laut = constrain(laut, 0, 255);
lcd.clear();

  lcd.setCursor(0, 0);
  lcd.print("Aktuell:"); 
  lcd.setCursor(8, 0);
  lcd.print(laut);
  
  lcd.setCursor(9, 1);
  lcd.print(lautmax);
   
  lcd.setCursor(0, 1);
  lcd.print(lautmin);

  if (laut > lautmax)
  {
        lautmax = laut;
  }
  if (laut < lautmin)
  {
        lautmin = laut;
   }

}

ich hoffe, dass ich mein Problem ausreichend geschildert habe und ihr mir helfen könnt.

Mit freundlichen Grüßen
Mario

P.S.: Entschuldigt bitte die Verwendung von delay(), werde es noch in millis() umändern :wink:

Hallo
Lasse dir am Besten mit dem IDE Plotter die puren Messwerte vom Sensor ausgeben.

Diese Module sind für eine Lautstärkemessung nicht geeignet. Da gibt es def. bessere Module. Ich schau mal, ob ich einen Link finde.

vielleicht dieses hier?
Ein Mikrofon-Breakout-Board mit eingebautem Vorverstärker, das man direkt an einen Analog-Eingang des Arduino anschliessen kann und so den Lautstärke-Pegel grob messen kann.

Sollte es noch differenzierter werden und Du zusätzlich die Pegel von verschiedenen Frequenzbereichen auswerten möchtest, kannst du dich auch am MSGEQ7 versuchen.

Das von Dir beschriebene Modul eignet sich eher dazu, das Überschreiten eines bestimmten Pegels zu messen und dann ein digitales Ausgangssignal zu liefern. Einsetzbar z.B. als Klatschschalter.

Vielen dank für die Hilfe.
Habe das problem jetzt gelöst, indem ich einen klinkenstecker verwende und auf das Mikro verzichte :wink:

nur der Neugier halber: und womit wertest du jetzt den Pegel aus?
Wenn du direkt mit dem Audio-Signal (ist das eigentlich Line oder ein verstärktes Signal z.B. für Kopfhörer?) an einen Pin des Arduino gehst, dürfte das Probleme mit sich bringen, weil das sich ja auch im negativen Spannungsbereich bewegen könnte..

Aber warten wir die Meinung der Experten mal ab.. :innocent: