Table des matières:
- Étape 1: Composants utilisés
- Étape 2: suiveur d'enveloppe
- Étape 3: PWM pour le compteur analogique
- Étape 4: Calibrage du microphone
- Étape 5: Application Android
- Étape 6: Résumé
Vidéo: Vumètre analogique compatible Bluetooth : 6 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:06
C'était mon projet pour l'un de mes cours universitaires appelé SMP. Comme nous utilisions la carte de développement STM32F103RB, j'ai basé mon projet là-dessus, en partant d'un simple VU-mètre. J'ai ensuite ajouté des fonctionnalités supplémentaires telles que la prise en charge Bluetooth pour diffuser les valeurs de l'ADC vers une application Android afin de créer un graphique dB simple.
Étape 1: Composants utilisés
- Carte de développement STM32F103RB
- Module Bluetooth HC-05 zs040
- Panneau VU-mètre analogique (lien)
- Micro à électret
- Amplificateur-op quadruple LM324N
- 2 transistors TIP120
- 3 diodes 1N4148
- Divers condensateurs et résistances
Bien que vous puissiez piloter ce circuit hors du rail 5V de la carte, j'ai également utilisé une alimentation externe 5V.
Étape 2: suiveur d'enveloppe
La pièce principale de cette conception est le suiveur d'enveloppe qui prend le signal du microphone à électret et délivre une tension proportionnelle à l'amplitude du signal du microphone.
Le signal brut du microphone passe d'abord par un amplificateur avec un gain de 150.
Le signal passe ensuite par le suiveur d'enveloppe réel qui ne doit sortir que les parties de signal positives.
La dernière partie consiste à soustraire la tension de décalage de 1,65 V de la sortie du suiveur d'enveloppe pour fournir un signal de 0 V pour aucun son, 1,65 V pour un son moyen et 3,3 V pour un son fort qui devrait être compatible avec le intégré ADC du conseil d'administration.
Ce suiveur d'enveloppe est implémenté à partir de cette excellente réponse StackExchange.
Étape 3: PWM pour le compteur analogique
Pour faire fonctionner l'aiguille de la jauge, j'ai configuré le temporisateur TIM4 de la carte du microcontrôleur avec une fréquence d'environ 500 Hz.
En essayant successivement différents cycles de service, je me suis fixé des valeurs suffisantes pour que l'aiguille passe de 0 à 100.
Je vais détailler le processus d'affichage d'une valeur exacte à l'étape suivante en appliquant quelques mathématiques.
Étape 4: Calibrage du microphone
Après avoir terminé le suiveur d'enveloppe, j'ai ensuite écrit un code simple pour utiliser l'ADC et vérifié que la valeur lue change effectivement en fonction du volume à l'intérieur de la pièce.
Afin de "traduire" cette valeur en une lecture réelle en dB, j'ai utilisé un générateur de sons en ligne avec une fréquence de 550 Hz et mon Android pour fournir une lecture de référence.
J'ai tracé ces valeurs et utilisé l'outil Curve Fit de MatLAB pour obtenir une fonction qui mappe les lectures ADC à des approximations réelles des niveaux de dB (ou au moins suffisamment proche des lectures de mon téléphone).
Nous pouvons voir que cela suit l'échelle logarithmique du microphone.
J'ai également fait la même chose pour mapper la position de l'aiguille sur les valeurs PWM. J'ai rassemblé ces valeurs en incrémentant la valeur PWM de 10 successivement jusqu'à ce que le besoin atteigne la lecture sur son échelle.
En combinant ces 2 fonctions, j'ai obtenu un moyen simple d'afficher la lecture de l'ADC à une valeur réelle sur l'indicateur de jauge.
Étape 5: Application Android
L'application utilise cette bibliothèque intéressante pour communiquer via une série Bluetooth afin d'échanger des informations sur les octets.
Le principal inconvénient de ce système est que la longueur maximale des mots envoyés via Bluetooth est de 8 bits et que la valeur ADC est représentée par 12 bits. Pour surmonter ce problème, j'ai divisé une valeur ADC en 2 valeurs distinctes de 6 bits (MSB et LSB) avec les 2 bits restants utilisés pour identifier le type de message (MSB, LSB, CHK).
Par conséquent, pour une seule valeur ADC que nous souhaitons diffuser, nous divisons la valeur réelle en 2 messages. Pour vérifier l'intégrité de ces messages, j'ai envoyé un troisième message avec le XOR des 2 premiers messages.
Une fois l'intégrité de la valeur vérifiée, nous pouvons appliquer la même fonction pour obtenir le niveau dB et le tracer sur notre graphique en direct.
Étape 6: Résumé
Bien que la partie micro-contrôleur de ce projet fonctionne assez bien pour afficher le volume à l'intérieur d'une pièce, j'ai rencontré quelques problèmes lors de l'envoi de données via Bluetooth en raison de la perte de paquets.
Le code source de ce projet se trouve ici:
- Application compagnon Android - dépôt
- Code du microcontrôleur - dépôt
N'hésitez pas à contribuer si vous trouvez cela utile de quelque manière que ce soit.
Conseillé:
Mettez à niveau un rétroéclairage de vumètre à LED bleue à l'aide d'anciennes pièces d'ampoule CFL. : 3 étapes
Mise à niveau d'un rétroéclairage de vumètre à LED bleue à l'aide d'anciennes pièces d'ampoule CFL.: Lors de la réparation d'un ancien magnétophone à bobines Sony TC630, j'ai remarqué que l'une des ampoules en verre du rétroéclairage du vumètre était cassée. Aucune quantité de peinture conductrice fonctionnait car le plomb s'était rompu sous la surface du verre. Le seul remplaçant que j'ai pu
Vumètre utilisant Arduino : 4 étapes
VU-mètre utilisant Arduino : Bonjour à tous, voici un tutoriel simple et rapide sur la façon de créer un VU (unité de volume) à l'aide d'Arduino UNO et de LED. C'est très bien pour les débutants qui apprennent à utiliser Arduino. Pièces nécessaires : 1x Arduino (UNO) 1x Planche à pain 12x LED 5mm 13x Fils
LIGHT BOX - un haut-parleur Bluetooth portable avec vumètre : 10 étapes (avec photos)
LIGHT BOX - un haut-parleur Bluetooth portable avec vu-mètre : Ce que j'ai fabriqué est un haut-parleur stéréo portable associé à un VU-mètre (c'est-à-dire un compteur d'unité de volume). Il se compose également d'une unité audio pré-construite qui permet la connectivité Bluetooth, un port AUX, un port USB, un port pour carte SD et amp; Radio FM, contrôle du volume
Circuits GPIO Raspberry Pi : Utilisation d'un capteur analogique LDR sans ADC (convertisseur analogique-numérique) : 4 étapes
Circuits GPIO Raspberry Pi : Utilisation d'un capteur analogique LDR sans ADC (convertisseur analogique-numérique) : Dans nos précédents Instructables, nous vous avons montré comment vous pouvez lier les broches GPIO de votre Raspberry Pi aux LED et aux commutateurs et comment les broches GPIO peuvent être hautes ou Faible. Mais que faire si vous souhaitez utiliser votre Raspberry Pi avec un capteur analogique ? Si nous voulons utiliser un
Sonnette de porte Arduino avec vumètre : 4 étapes (avec photos)
Sonnette de porte Arduino avec vumètre : l'idée de base est que lorsque vous appuyez sur le bouton-poussoir de la sonnette de la porte, les LED commenceront à briller de manière rythmique avec le son du buzzer, après un certain temps, deux événements s'arrêteront automatiquement. Les LED peuvent être à l'extérieur de la porte pour divertir le visiteur ou à l'intérieur. Dans ce je