1515#include < Adafruit_NeoPixel.h>
1616
1717// --- Hardware Konfiguration (Muss an die Verdrahtung angepasst werden) ---
18- #define MATRIX_PIN 4 // GPIO Pin, an dem die Matrix angeschlossen ist
18+ #define MATRIX_PIN 5 // GPIO Pin, an dem die Matrix angeschlossen ist
1919#define MATRIX_WIDTH 32 // Breite der Matrix in Pixel
2020#define MATRIX_HEIGHT 8 // Höhe der Matrix in Pixel
2121// Flags: Ursprung oben links, Spalten-Layout, Zick-Zack-Muster (typische Verdrahtung für viele Panels)
@@ -75,7 +75,7 @@ volatile bool isScrolling = false;
7575volatile bool stopScrollRequested = false ;
7676
7777// Mikrofon-Pin + Mikrokontrolle-Flag
78- #define MIC_PIN 6
78+ #define MIC_PIN 4
7979volatile bool micControlEnabled = true ; // wird durch /mic GET gesetzt
8080
8181// Zufallspixel-Modus: wenn aktiv, werden regelmäßig zufällige Pixel gemäß Mic-Pegel gezeichnet
@@ -602,10 +602,11 @@ int readMicLevel(int max) {
602602 unsigned long startMillis = millis ();
603603 unsigned int peakToPeak = 0 ;
604604 unsigned int signalMax = 0 ;
605- unsigned int signalMin = 1024 ;
605+ unsigned int signalMin = 4096 ;
606+ // Serial.println(analogRead(MIC_PIN));
606607 while (millis () - startMillis < 50 ) {
607608 int sample = analogRead (MIC_PIN);
608- if (sample < 1024 ) {
609+ if (sample < 4096 ) {
609610 if (sample > signalMax) {
610611 signalMax = sample;
611612 } else if (sample < signalMin) {
@@ -614,13 +615,19 @@ int readMicLevel(int max) {
614615 }
615616 }
616617
617- peakToPeak = signalMax - signalMin;
618- double sig = (peakToPeak * 5.0 ) / 1024 ;
619- Serial.println (sig);
620618
621- const int maxInput = 2000 ;
622- const int schwelle = 50 ;
623- int mapped = map (constrain (sig, schwelle, maxInput)-schwelle, 0 , maxInput, 0 , max);
619+ peakToPeak = signalMax - signalMin;
620+ // Serial.print(peakToPeak);
621+ // Serial.print(" ");
622+ const int maxInput = 2500 ;
623+ const int schwelle = 400 ;
624+ peakToPeak=constrain (peakToPeak,schwelle,maxInput)-schwelle;
625+ // Serial.print(peakToPeak);
626+ // Serial.print(" ");
627+
628+
629+ int mapped = map (peakToPeak, 0 , maxInput-schwelle, 0 , max);
630+ // Serial.println(mapped);
624631 return mapped;
625632}
626633
0 commit comments