- Matériaux nécessaires:
- Schéma:
- Utilisation de la méthode de régression pour calculer le dB à partir de la valeur ADC:
- Programme Arduino pour mesurer le niveau sonore en dB:
- Fonctionnement du sonomètre Arduino:
- Amplificateur avec circuit de filtres:
La pollution sonore a vraiment commencé à prendre de l'importance en raison de la forte densité de population. Une oreille humaine normale peut entendre des niveaux sonores de 0 dB à 140 dB dans lesquels les niveaux sonores de 120 dB à 140 dB sont considérés comme du bruit. Le niveau sonore ou les niveaux sonores sont généralement mesurés en décibel (dB), nous avons des instruments qui pourraient mesurer les signaux sonores en dB mais ces compteurs sont un peu chers et malheureusement nous n'avons pas de module de capteur prêt à l'emploi pour mesurer les niveaux sonores en décibels. Et il n'est pas économique d'acheter des microphones coûteux pour un petit projet Arduino qui devrait mesurer le niveau sonore dans une petite salle de classe ou un salon.
Donc, dans ce projet, nous utiliserons un microphone à condensateur électret normal avec Arduino et essayerons de mesurer le niveau de pollution sonore ou sonore en dB aussi près que possible de la valeur réelle. Nous utiliserons un circuit amplificateur normal pour amplifier les signaux sonores et le fournirons à Arduino dans lequel nous utiliserons la méthode de régression pour calculer les signaux sonores en dB. Pour vérifier si les valeurs obtenues sont correctes, nous pouvons utiliser l' application Android «Sound Meter», si vous avez un meilleur compteur, vous pouvez l'utiliser pour l'étalonnage. Notez que ce projet ne vise pas à mesurer le dB avec précision et donnera simplement des valeurs aussi proches que possible de la valeur réelle.
Matériaux nécessaires:
- Arduino UNO
- Microphone
- LM386
- POT variable 10K
- Résistances et condensateurs
Schéma:
Le circuit de ce sonomètre Arduino est très simple dans lequel nous avons utilisé le circuit d'amplification audio LM386 pour amplifier les signaux d'un microphone à condensateur et le fournir au port analogique d'Arduino. Nous avons déjà utilisé ce LM386 IC pour construire un circuit amplificateur audio basse tension et le circuit reste plus ou moins le même.
Le gain de cet ampli-op particulier peut être réglé de 20 à 200 en utilisant une résistance ou un condensateur sur les broches 1 et 8. S'ils sont laissés libres, le gain sera défini sur 20 par défaut. Pour notre projet, nous avons le gain maximum possible par ce circuit, nous utilisons donc un condensateur de valeur 10uF entre les broches 1 et 8, notez que cette broche est sensible à la polarité et que la broche négative du condensateur doit être connectée à la broche 8. L'amplificateur complet Le circuit est alimenté par la broche 5V de l'Arduino.
Le condensateur C2 est utilisé pour filtrer le bruit CC du microphone. Fondamentalement, lorsque le microphone détecte un son, les ondes sonores sont converties en signaux CA. Ce signal AC peut avoir un certain bruit DC couplé avec lui qui sera filtré par ce condensateur. De même, même après amplification, un condensateur C3 est utilisé pour filtrer tout bruit continu qui aurait pu être ajouté lors de l'amplification.
Utilisation de la méthode de régression pour calculer le dB à partir de la valeur ADC:
Une fois que nous sommes prêts avec notre circuit, nous pouvons connecter l'Arduino à l'ordinateur et télécharger le programme d'exemple «Analog Read Serial» d'Arduino pour vérifier si nous obtenons des valeurs ADC valides de notre microphone. Nous devons maintenant convertir ces valeurs ADC en dB.
Contrairement à d'autres valeurs telles que la mesure de la température ou de l'humidité, la mesure du dB n'est pas une tâche simple. Parce que la valeur du dB n’est pas linéaire avec la valeur des ADC. Il y a peu de façons dont vous pouvez arriver, mais toutes les étapes possibles que j'ai essayées ne m'ont pas donné de bons résultats. Vous pouvez lire ce forum Arduino ici si vous voulez l'essayer.
Pour mon application, je n'avais pas besoin de beaucoup de précision pour mesurer les valeurs dB et j'ai donc décidé d'utiliser un moyen plus simple d'étalonner directement les valeurs ADC avec des valeurs dB. Pour cette méthode, nous aurons besoin d'un compteur SPL (un compteur SPL est un instrument qui pourrait lire les valeurs dB et l'afficher), mais malheureusement je n'en avais pas et la plupart d'entre nous ne le feront certainement pas. Nous pouvons donc utiliser l' application Android appelée «Soundmètre» qui peut être téléchargée gratuitement sur le Play Store. Il existe de nombreux types d'applications et vous pouvez télécharger tout ce de votre choix. Ces applications utilisent le microphone intégré du téléphone pour détecter le niveau de bruit et l'afficher sur notre mobile. Ils ne sont pas très précis, mais fonctionneraient sûrement pour notre tâche. Commençons donc par installer l'application Android, la mienne une fois ouverte ressemblait à ceci ci-dessous
Comme je l'ai dit plus tôt, la relation entre les valeurs dB et analogiques ne sera pas linéaire, nous devons donc comparer ces deux valeurs à des intervalles différents. Notez simplement la valeur de l'ADC affichée à l'écran pour différents dB affichés sur votre téléphone mobile. J'ai pris environ 10 lectures et elles ressemblaient à ceci ci-dessous, vous pouvez varier un peu
Ouvrez une page Excel et saisissez ces valeurs, pour le moment, nous utiliserons Excel pour trouver les valeurs de régression pour le nombre ci-dessus. Avant cela, traçons un graphique et vérifions comment ils se rapportent tous les deux, le mien ressemblait à ceci ci-dessous.
Comme nous pouvons le voir, la valeur de dB n'est pas liée linéairement avec ADC, ce qui signifie que vous ne pouvez pas avoir un multiplicateur commun pour toutes les valeurs ADC pour obtenir ses valeurs dB équivalentes. Dans ce cas, nous pouvons utiliser la méthode de la «régression linéaire». Fondamentalement, il convertira cette ligne bleue irrégulière en ligne droite la plus proche possible (ligne noire) et nous donnera l'équation de cette ligne droite. Cette équation peut être utilisée pour trouver la valeur équivalente de dB pour chaque valeur d'ADC que l'Arduino mesure.
Dans Excel, nous avons un plug-in pour l'analyse des données qui calculera automatiquement la régression pour votre ensemble de valeurs et publiera ses données. Je ne vais pas expliquer comment le faire avec Excel, car cela sort du cadre de ce projet, il est également facile pour vous de Google et de l'apprendre. Une fois que vous avez calculé la régression pour la valeur, Excel donnera des valeurs comme indiqué ci-dessous. Nous ne nous intéressons qu'aux chiffres mis en évidence ci-dessous.
Une fois que vous avez obtenu ces chiffres, vous pourrez former l'équation ci-dessous comme
ADC = (11,003 * dB) - 83,2073
À partir de laquelle vous pouvez dériver le dB à
dB = (ADC + 83,2073) / 11,003
Vous devrez peut-être conduire votre propre équation car l'étalonnage peut différer. Cependant, gardez cette valeur en sécurité car nous en aurons besoin lors de la programmation de l'Arduino.
Programme Arduino pour mesurer le niveau sonore en dB:
Le programme complet pour mesurer le dB est donné ci-dessous, quelques lignes importantes sont expliquées ci-dessous
Dans ces deux lignes ci-dessus, nous lisons la valeur ADC de la broche A0 et la convertissons en dB en utilisant l'équation que nous venons de déduire. Cette valeur en dB peut ne pas être précise à la valeur réelle en dB, mais reste assez proche des valeurs affichées sur l'application mobile.
adc = analogRead (MIC); // Lire la valeur ADC de l'amplificateur dB = (adc + 83.2073) / 11.003; // Convertit la valeur ADC en dB à l'aide des valeurs de régression
Pour vérifier si le programme fonctionne correctement, nous avons également ajouté une LED à la broche numérique 3 qui est faite pour aller haut pendant 1 seconde lorsque l'Arduino mesure un bruit fort supérieur à 60 dB.
if (dB> 60) {digitalWrite (3, HIGH); // allume la LED (HIGH est le niveau de tension) delay (1000); // attend une seconde digitalWrite (3, LOW); }
Fonctionnement du sonomètre Arduino:
Une fois que vous êtes prêt avec le code et le matériel, téléchargez simplement le code et ouvrez votre moniteur série pour regarder les valeurs dB mesurées par votre Arduino. Je testais ce code dans ma chambre où il n'y avait pas beaucoup de bruit à l'exception du trafic extérieur et j'ai obtenu les valeurs ci-dessous sur mon moniteur série et l'application Android affichait également quelque chose de proche de cela
Le fonctionnement complet du projet peut être trouvé dans la vidéo donnée à la fin de cette page. Vous pouvez utiliser pour projeter pour détecter le son dans la pièce et vérifier s'il y a une activité ou combien de bruit est généré dans chaque salle de classe ou quelque chose du genre. Je viens de faire une LED pour aller haut pendant 2 secondes s'il y a un son enregistré au-dessus de 60 dB.
Le travail est étrangement satisfaisant, mais peut certainement être utilisé pour des projets et d'autres prototypes de base. Avec quelques recherches supplémentaires, j'ai trouvé que le problème venait en fait du matériel, qui me faisait encore du bruit de temps en temps. J'ai donc essayé d'autres circuits qui sont utilisés dans les cartes de microphones amusantes à étincelles dotées d'un filtre passe-bas et passe-haut. J'ai expliqué le circuit ci-dessous pour que vous puissiez l'essayer.
Amplificateur avec circuit de filtres:
Ici, nous avons utilisé des filtres passe-bas et passe-haut avec amplificateur pour réduire le bruit dans ce circuit de mesure du niveau sonore afin d'augmenter la précision.
Dans ce circuit ci-dessus, nous avons utilisé le populaire amplificateur LM358 pour amplifier les signaux du microphone. Avec l'amplificateur, nous avons également utilisé deux filtres, le filtre passe-haut est formé par R5, C2 et le filtre passe-bas est utilisé par les C1 et R2. Ces filtres sont conçus pour n'autoriser qu'une fréquence de 8 Hz à 10 KHz, car le filtre passe-bas filtrera tout ce qui est en dessous de 8 Hz et le filtre passe-haut filtrera tout ce qui dépasse 15 kHz. Cette plage de fréquences est sélectionnée car mon microphone à condensateur ne fonctionne que de 10 Hz à 15 KHZ, comme indiqué dans la fiche technique ci-dessous.
Si votre demande de fréquence change, vous pouvez utiliser les formules ci-dessous pour calculer la valeur de la résistance et du condensateur pour votre fréquence requise.
Fréquence (F) = 1 / (2πRC)
Notez également que la valeur de la résistance utilisée ici affectera également le gain de l'amplificateur. Le calcul de la valeur de la résistance et du condensateur utilisés dans ce circuit est indiqué ci-dessous. Vous pouvez télécharger la feuille Excel à partir d'ici pour modifier les valeurs de Fréquence et calculer les valeurs de régression.
L'ancien circuit a fonctionné de manière satisfaisante à mes attentes, je n'ai donc jamais essayé celui-ci. Si vous essayez ce circuit, faites-moi savoir s'il fonctionne mieux que le précédent à travers les commentaires.