Entrée audio analogique et OPAMP

Bonjour,

Je tente de créer un module qui coupera l'alimentation 220v de mes monitoring et d'un DCX quand le son n'est plus joué depuis un certain temps et de réalimenter le matériel dès qu'un son est détecté de nouveau en sortie de carte son.

Pour la partie 220v pas de soucis, j'utilise une carte avec 4 relais en digital, c'est très simple donc un "digitalWrite" suffit à activer / désactiver une alim.

En revanche, pour l'entrée audio ça se gâte. Ma carte son délivre une entrée de ligne très faible. Environ 200mV AC. Or je dois d’après ce que j'ai compris, amplifier le signal à +2,5v pour qu'il corresponde à l'entrée de l'Arduino (0 à 5V pour 0 à 1023).

Je dispose aujourd'hui d'un OPAMP que j'avais en stock, un ne5532p (http://www.ti.com/lit/ds/symlink/ne5532.pdf) mais je ne sais pas comment le raccorder à mon entrée. J'ai vraiment un nivéau zéro en ce qui concerne l'électronique (je suis dev de métier) mais je dispose tout de même de résistances et de condensateurs de multiples valeurs et d'autres composants (diodes, potentiomètres, résistances variables).

Sauriez-vous m'indiquer un schéma pour que je puisse câbler mon ne5532p afin d'arriver à lire les bonnes valeurs analogiques sur mon arduino ?

Merci.

Olivier.

Bonjour, ce qu'il vous faut, c'est amplifier le signal audio et le redresser.

Vous aurez ainsi une tension continue proportionnelle au signal d'entrée.

Il faut ensuite l'adapter au niveau logique pour que l'arduino puisse le lire avec un digitalread.

Petite recherche avec les mots clé "redresseur audio ampli op" pourrait donner des pistes.

Bonjour,

Merci beaucoup pour cette réponse, mais ça ne m'aide pas vraiment. Je sais déjà ce que de dois faire. Ce que je ne sais pas c'est "comment". Comment raccorder mon OPAMP de ma carte son à mon Arduino. J'ai bien l'info via le datasheet du ne5532p mais ce n'est pas si simple.

Comme je l'indique plus haut, je n'ai aucune notion en électronique. Si une simple recherche permettait de me donner les réponses je serais déjà à l'oeuvre et je ne posterais pas ici.

Cordialement,

Olivier.

en utilisant mon moteur de recherche avec les mots clés, je trouve:

ça

et vous avez éventuellement ça
c’est a mon avis une bonne piste.

J’ai vraiment un niveau zéro en ce qui concerne l’électronique (je suis dev de métier)

Les électroniciens sont des développeurs, ils existaient déjà alors que les premiers développeurs en codage portaient encore des couches, tu es sur un forum multi-compétances et un mécanicien c’est aussi un développeur. :grin:

Tu as plusieurs solutions : quasiment toutes t’ont été données par Leptro ou pepe.

  • Amplification suffisante pour pouvoir redresser et filtrer et la valeur continue,
  • Se servir du comparateur interne du micro pour déclencher une interuption, plus simple avec une UNO qu’avec une Mega où on ne peut comparer qu’avec des seuils fixes car il manque une pin essentielle qui n’est pas accessible.
  • Décaler le signal avec le pont proposé par pepe et détecter une valeur de crète qui dépasse un certain seuil.
  • Soit après amplification/redressement utiliser un comparateur externe genre LM393 pour déclencher une interruption.

Les solutions qui pourront générer un signal d’interruption sont AMHA les plus adaptées à ton sujet.

Mais pour fixer les valeurs d’amplification et le nombre d’étages amplificateur il faut que tu communique les niveaux, personne ne pourra les inventer.

Déjà moi je ne sais pas ce qu’est un DCX, ici les spécialités sont nombreuses et personne ne connaît tout ,donc un peu d’explications ne sera pas du superflu.

Ensuite tu ne nous à pas indiqué le matériel dont tu dispose et si tu avais lu le message épinglé “Bienvenue sur le forum de la communauté francophone” tu aurais vu que c’est indispensable → lis les messages épinglés.

Dire “je n’y connais rien” est une information utile pour nous mais aucunement une excuse.
Les liens donnés par Lepto sont de bon liens que tu devrais regarder attentivement.

La devise du forum est : Commence par t’aider et le forum t’aidera.
Le but de ce forum n’est pas de réaliser à la place du demandeur, le but de ce forum est d’aider le demandeur à devenir indépendant.

Choix des ampli :
Il y a ce qu’on appelle des rails d’alimentation : la tension d’alim positive et la tension d’alimentation négative
Le rail + est le Vcc et le rail- le Vee. Souvent Vee est relié à la masse (0V ou gnd) MAIS ce n’est pas obligatoire : sur un schéma d’ampli tu verra écrit Vee et jamais Gnd c’est parce que Vee peut être mis à la masse MAIS aussi à une alim négative par rapport à la masse.

Pour les excursions des signaux électriques il faut surveiller les niveaux extrêmes acceptables en entrée et pour la sortie voir quelles sont les valeurs des tensions de déchets.
Généralement le rail - est plus facile à atteindre que le rail plus.

Si tu ne comprend pas tout pose des questions précises à partir d’une datasheet et on t’aidera.

bonjour +1 avec les options de pepe et de 68tjs

Perso si je devais faire en partant de zero

j'acheterais un module sound sensor avec micro à "peanuts"

qui embarque un ampli à transistor et un LM393

je retirerais le micro et j'y mettrais une entrée "ligne" à la place

Tellement d’informations et de précisions que je ne sais pas par quoi commencer, si ce n'est vous remercier tous pour vos intervenions :D

Je voudrais réagir sur la réponse de pepe mais je vais d’abord précisé un chose:

Avant de venir poster ici, j'ai bien évidemment essayé de raccorder directement la sortie de ma carte son à la broche A0 de mon Arduino (Nano au passage), pourquoi se compliquer la vie lorsqu'on peut faire simple ^^

Cela fonctionnait donc lorsque le volume était à plus de 20% mais pas avant. Cela s'explique par le fait que brancher le signal provenant directement de la carte son l'ampute de la partie négative du signal puisque AnalogRead ne lit que de 0 à 5V.

Avec la méthode de pepe je récupère donc cette partie du signal et dorénavant je peux détecter le signal dès lors que le potentiomètre du volume dépasse les 5%. Cela peut suffire pour le moment, mais c'est vrai que cela peut être gênant que le son se coupe tout seul lorsque le volume est relativement bas, il m'arrive assez souvent d'écouter la musique à très faible volume, en deçà des 5%.

=> Juste une question au passage : ce montage ne risque pas d’endommager les composants connectés (Enceintes, DCX, carte son) ? Avec la tension de 3.3V de l'Ardiuno ?

Pour ce qui est du seuil, justement je ne parviens pas à le déterminer. Déjà, ma carte son est une carte son semi-pro, très précise. Sa sortie est symétrique et j'utilise masse et point chaud pour la mesure. Je ne possède qu'un multimètre qui mesure les V AC/DC 3 chiffres après la virgule, mais il ne semble pas très précis. Juste allumé et posé sans que je le touche il affiche déjà une tension de 0,004V. En mesurant directement la sortie de ma carte son, j'obtiens des valeurs de 0,004 à 0,008 pour les premiers pourcentages mais c'est évidemment relatif à la musique qui est jouée puisqu'il s'agit d'un signal audio.

Je dirais que c'est effectivement au millivolt près donc, et l'Arduino ne peut détecter que 4,9mV / unité (This yields a resolution between readings of: 5 volts / 1024 units or, .0049 volts (4.9 mV) per unit).

Donc je pense que le signal aurait bien besoin d'une amplification.

68tjs: tu es sur un forum multi-compétances et un mécanicien c'est aussi un développeur

Oui, en tant que dev, je connais les principes fondamentaux relatifs à la majorité des langages (routines, variables, instructions). Je me vois mal expliquer à une personne qui souhaite réaliser un programme complet comment procéder alors qu'elle ne sait pas ce qu'est une simple boucle... C'est pour situer un peu mon niveau :sweat_smile:

68tjs: Déjà moi je ne sais pas ce qu'est un DCX, ici les spécialités sont nombreuses et personne ne connaît tout ,donc un peu d'explications ne sera pas du superflu.

Un DCX est un processeur Audio (DCX2496 Behringer), je suis navré je n'ai pas épilogué dessus car je pensais que cela n'avait pas d'importance. Il s'agit simplement d'un filtre audio qui vient se positionner entre ma carte son et mes enceintes monitoring. Le DCX est rackable et se trouve dans une baie, et il est donc assez ennuyeux de devoir l'allumer manuellement chaque fois que je veux écouter de la musique.

Artouste: Perso si je devais faire en partant de zero

j'acheterais un module sound sensor avec micro à "peanuts"

qui embarque un ampli à transistor et un LM393

je retirerais le micro et j'y mettrais une entrée "ligne" à la place

Super idée ! Merci beaucoup je pense que je vais partir sur cette solution très simple. Car étant donné mon niveau très médiocre je serais bien incapable de réaliser moi-même un montage correct. Il faut effectivement que quelqu'un me "mache le travail" comme l'a fait pepe plus haut.

Non pas encore une fois que je rechigne à l'effort, mais l'électronique me dépasse complètement car je n'en maîtrise absolument pas les concepts fondamentaux. Même si pourtant cela me passionne, je n'ai pas le temps de me documenter correctement et d'apprendre les bases pour le moment, mon métier me prend beaucoup trop de temps et j'ai déjà du mal à rester à la page avec les technos qui changent tous les 4 matins.

Quoi qu'il en soit merci encore à vous tous pour le temps que vous avez pris à me répondre.

Mayzz: => Juste une question au passage : ce montage ne risque pas d’endommager les composants connectés (Enceintes, DCX, carte son) ? Avec la tension de 3.3V de l'Ardiuno ?

Bonsoir Dans la mesure où "Nulle part ailleurs" 8) tu n'injecte du 3.3V dans ton système purement audio = tu cherche juste à faire du ON/OFF de dispos "intercalés" Il n'y à pas de problemes

et l’Arduino ne peut détecter que 4,9mV / unité (This yields a resolution between readings of: 5 volts / 1024 units or, .0049 volts (4.9 mV) per unit).

Non.
L’arduino Le microcontrôleur, de marque Atmel, qui équipe la carte de la société arduino ne fait que découper la tension de référence en 1024 pas.

Il se trouve que le microcontrôleur atmega328p de la société Atmel a par défaut à l’allumage sa tension de référence reliée au Vcc c’est à dire 5V pour un micro alimenté en 5V et 3,3V pour un micro alimenté en 3,3V.

Mais il est aussi possible d’utiliser la référence interne du micro (1,1V), le pas de mesure sera alors de 1 mV, ou tout autre valeur de référence du moment qu’elle est comprise entre 1,1V et le Vcc.

L’utilisation est assez souple.

68tjs: Non. L'arduino Le microcontrôleur, de marque Atmel, qui équipe la carte de la société arduino ne fait que découper la tension de référence en 1024 pas.

Il se trouve que le microcontrôleur atmega328p de la société Atmel a par défaut à l'allumage sa tension de référence reliée au Vcc c'est à dire 5V pour un micro alimenté en 5V et 3,3V pour un micro alimenté en 3,3V.

Mais il est aussi possible d'utiliser la référence interne du micro (1,1V), le pas de mesure sera alors de 1 mV, ou tout autre valeur de référence du moment qu'elle est comprise entre 1,1V et le Vcc.

L'utilisation est assez souple.

8) Yep voir meme aussi (mais perso pas expérimenté) jusqu'où peut descendre le AREF externe pour acquérir +/- correctement

  • tu t’approche pour AREF du max de l’amplitude à acquerir ,meilleure sera la dynamique

AMHA , là un simple pont diviseur imposant +/- un 200 mv en AREF devrait ameliorer "la solution" purement soft 8)

Hello !

Effectivement merci pour le AREF du coup je me suis documenté...

Alors déjà, je me suis rendu compte que mon multimètre était complètement biaisé, je l'ai donc rangé tranquillement à sa place => poubelle. J'en ai acheté un autre et depuis tout va mieux ;D

J'ai mesuré la tension de ma carte, elle monte à 1,4V potentiomètre à fond, mais c'est un signal audio donc difficile de mesurer la tension max. D'après Wikipedia (cf. Niveau de ligne) elle est en réalité de +-1.736V puisque +4 dBu.

Mais bien entendu, ce n'est pas une alim. de labo, le potentiomètre de volume ne délivre pas un courant stable proportionnellement à sa position. La tension en début de course reste toujours très faible. D'où le besoin de précision dans la lecture.

J'ai donc modifié comme suit:

  • > double diviseur de tension avec R1/R2 10kΩ = 1.65V (en théorie, en réalité j'ai ~1.7V mais bon)
  • > 3.3V vers AREF. Donc, 3.3 / 1024 = 3,2mV. Ce qui semble suffisant pour me permettre d'écouter à très faible volume après plusieurs tests.

Bien entendu, dans le cas d'un volume à 100% (ce qui n'arrivera jamais) je pourrais avoir des soucis. Mais le volume de la carte son sous Windows est à 50% (je ne peux le monter plus car sinon j'ai le vu mettre en peak, peut être de là le 1.4V).

Je me pose donc quelques questions en rapport:

  • La valeur ne peut être négative. 1.65V (théorique) + -1.736V = -0,086V. Cette valeur peut-elle endommager la carte à long terme ? (Toujours en théorie je n'écoute jamais le son à fond).

  • Même chose dans l'autre sens mais je n'ai pas lu que dépasser le voltage de AREF posait problème, juste qu'il ne fallait pas dépasser +5V. Si mon AREF est de +3.3V et que la valeur dans A0/A1 dépassent 3.3V, cela pose-t-il problème ? (1.7V + 1.736 = 3.436V)

Aussi:

Si je voulais utiliser "INTERNAL" sur AREF (1.1V sur Atmega328p) pour encore plus de précision, comment pourrais-je amener le signal d'entrée de ma carte son de 0 à +1.1V ?

En tous cas, un grand merci à vous tous de partager votre savoir. J'apprends énormément grâce à vous c'est très appréciable et sans cela je n'aurai certainement pas réussi ce petit projet.

Et une dernière chose, ça va peut être vous paraître ridicule mais quel est le rôle de C sur le schéma de pepe et quel impact aurait la modification de valeur ? Et pourquoi un condensateur polarisé alors que le courant de la carte son est alternatif ? Merci encore.

Olivier.

Quelques photos du projet terminé juste comme ça, même si on ne voit pas grand chose...

Le montage de pepe permet de polariser l'entrée A0 à environ 430mV. 3.3 / ((R2+R1)/R1) Le condensateur C évite d'injecter du courant continu dans ta sortie audio. Sa borne + est côté tension positive bien sûr. L'augmentation de sa valeur ne ferait que diminuer sa fréquence de coupure, les basses passeraient mieux.

Le fait d'utiliser la référence interne 1.1V ne signifie pas qu'un signal d'entrée supérieur à cette valeur est dangereux. L'ADC est saturé, c'est tout. L'essentiel est de ne pas dépasser le maximum admissible sur l'entrée analogique, 5.5V il me semble.

@+

Le montage de pepe permet de polariser l'entrée A0 à environ 430mV.

Cela veut dire bien sûr qu'au repos, sans signal, l'entrée A0 lira 430mV. Ensuite le signal fera évoluer cette valeur vers le haut et vers le bas.

Par ailleurs, l'amplificateur opérationnel proposé (NE5532P) n'est pas adapté aux systèmes alimentés sous 5V, car ses tensions de déchet sont trop importantes, ce qui limite l'amplitude de sa tension de sortie à une valeur très réduite.

Si une amplification s'avérait nécessaire, il faudrait choisir un AOP "Single Supply", par exemple OPA350. Orienter les recherches sur "5V rail to rail opamp".

@+