Capteur de Son pour Equalizer

Bonjour à tous ! :slight_smile:

Je rencontre certaines difficultés pour faire fonctionner mon système...
Pour expliquer mon projet, j'ai une matrice led 8x32, en son ambiant je veux que tout soit éteint, et quand je parle dans le micro, il faudrait que la matrice s'allume en colonne, progressivement en partant du centre jusqu'aux bords.

Led :

Capteur de son

https://www.amazon.fr/Meisijia-MAX9812-Microphone-Amplificateur-détection/dp/B07G343Q91/ref=sr_1_5?s=lighting&ie=UTF8&qid=1536890164&sr=1-5&keywords=capteur+de+son+arduino

Je suis débutant total et je vais vous expliquer comment j'ai fais mon code jusque là.
La première chose je voulais pouvoir allumé une led, une fois la chose faite tout une colonne.
J'ai donc mis par paquet de led chaque colonne. Exemple avec la colonne 1 :

void colonne1 (){

matrix.setPixelColor(0, a, b, c);
matrix.setPixelColor(1, a, b, c);
matrix.setPixelColor(2, a, b, c);
matrix.setPixelColor(3, a, b, c);
matrix.setPixelColor(4, a, b, c);
matrix.setPixelColor(5, a, b, c);
matrix.setPixelColor(6, a, b, c);
matrix.setPixelColor(7, a, b, c);

//(Numéro de la led, R, V, B)
}

Tout ça jusque la led 256. Ce n'est absolument pas ergonomique et propre mais ça marche et c'est simple assez simple pour moi x)

Voilà le problème c'est qu'avec les valeurs (analogique) que me balance le capteur je ne sais pas vraiment comment poursuivre. Peut importe comment je le règle (physiquement), lorsque je parle les valeur bouge très peu, voir même descendent des fois, pour avoir une réaction logique je dois souffler (très) fort dans le micro pour que la valeur monte vraiment...

Par exemple je règle autour de 500 quand je ne parle pas, j'ai beau collé ma bouche au micro et parler distinctement (je gueule pas non plus mais c'est pas le but de tout façon) :

Analog: 504
Analog: 502
Analog: 503
Analog: 503
Analog: 508 --->Je parle
Analog: 506
Analog: 500
Analog: 497
Analog: 479
Analog: 496
Analog: 528
Analog: 502
Analog: 542
Analog: 498
Analog: 504
Analog: 499
Analog: 503
Analog: 505
Analog: 503 ---> J'arrête
Analog: 504
Analog: 503
Analog: 504
Analog: 504
Analog: 504
Analog: 504
Analog: 504

Ca ne fais donc aucun sens... J'avais prévu au départ de garder, par exemple 500 ambiant, et quand je parle si normalement ça atteint par expemple toujours 800, qu'entre ces captations, les colonnes s'allume en fonction du résultat... Sauf que vu ce que les résultats illogique que ça m'affiche je suis perdu et je requière votre aide... Merci beaucoup !

Bonjour

Faudra étudier l’usage de la boucle for :slight_smile:for(int index=0; index <= 7; index++) matrix.setPixelColor(index, a, b, c);

Mettez la matrice de côté et postez un bout code « tout bête » ou vous lisez sur une pin analogique (disons A0) la sortie marquee A0 sur votre module (assurez vous bien sûr d’avoir connecté GND et 5V) et affichez la valeur dans la console série (115200 bauds au moins).

Chargez ce programme , lancez le, parlez et regardez comment les valeurs évoluent
Vérifiez que tourner le potentiomètre n’influe pas sur le comportement

Ensuite faut voir ce que vous voulez afficher et faire - un equalizer permet de filtrer ou d'amplifier différentes bandes de fréquences composant un signal audio, et même si vous ne faites que de l’affichage des fréquences ce n’est pas ce que vous donne en sortie ce microphone