Arduino Forum

International => Français => Topic started by: Wrec04 on Mar 30, 2014, 08:10 am

Title: [RESOLU] Problème avec capsule electret + préampli analogRead
Post by: Wrec04 on Mar 30, 2014, 08:10 am
Bonjour,

J'ai réalisé un petit préampli avec un circuit intégré LM386  pour ma capsule electret. Lorsque je branche le V(out) sur une pin analogique arduino, et avec ce code... :

Code: [Select]
void setup()
{
 Serial.begin(9600);
}
void loop()
{
 Serial.println(analogRead(A9));
 delay(100);
}


... mon moniteur série affiche tantôt 0, tantôt 1023, quoique je fasse...
Serait-ce un souci au niveau de mon programme ou peut-être de mon circuit ?
Je vous remercie de votre attention et vous souhaite une bonne journée ;)
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: infobarquee on Mar 30, 2014, 09:01 am
bonjour,
pin A9?
quelle carte arduino?
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: Wrec04 on Mar 30, 2014, 09:09 am
J'ai choisi la pin analogique 9 complètement au hasard, mais je ne pense pas que ça puisse influer sur le problème que je rencontre. J'utilise une carte Arduino MEGA 2560 fournie par mon lycée.
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: infobarquee on Mar 30, 2014, 09:29 am
mets ton schéma de l'électret
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: Wrec04 on Mar 30, 2014, 09:50 am
Voici le schéma du circuit complet sur breadboard (electret + LM386) :
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: infobarquee on Mar 30, 2014, 10:08 am
il te manquerait pas un condo pour filtrer sur la sortie Vout?
http://www.learningaboutelectronics.com/Articles/Sound-detector-circuit.php
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: 68tjs on Mar 30, 2014, 10:26 am
Alternance 0/1023 cela sent un accrochage (ou  un pompage).
En termes plus concrets il est fort probable que l'ampli se transforme en oscillateur.

Ce que tu as donné c'est un schéma de câblage, ce n'est pas un schéma électrique. Il faut qu'on reconstitue le schéma électrique dans notre tête.  Regardes dans Fritzing pour tracer le schéma électrique à partir du schéma de câblage..

Sur ton montage, en accord avec  la datasheet de l'ampli op il y a bien entre la sortie et la masse une capa de 50nF avec une résistance en série de 10 ohms.
Il faudrait câbler le tout au plus court. Il faut considérer que le point de masse optimal sur ton montage est au plus prés des pins de masse du LM386. C'est là qu'il connecter tous les condensateurs. Et c'est ce point qu'il faut connecter à la masse de la Mega.

Si cela suffit a stabiliser le circuit un moyen digne du "pifomètre en voie de calibration" pour tester sa stabilité est de promener ses doigts au dessus du montage. Si l'alternance 0/1023 repart c'est qu'il faut encore améliorer le câblage, si rien ne se produit c'est que c'est bon.
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: Wrec04 on Mar 30, 2014, 11:14 am
Merci beaucoup pour vos réponses constructives :)
J'ai rajouté un condensateur 100µF entre la sortie du circuit et l'entrée analogique de l'Arduino et j'ai également optimisé le point de masse, l'alternance 0/1023 a disparu, mais maintenant, le moniteur série affiche une valeur montante en partant de 0, c'est à dire que toute les 5 secondes à peu près,  il y a une sorte d'incrémentation et ça se stabilise à 30, voici la courbe obtenue :
(en abscisse on a le temps (par incrément de 100ms) et en ordonnée, on a le chiffre affiché sur le moniteur série)
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: infobarquee on Mar 30, 2014, 11:34 am
retour la connexion entre le 1 et 8
tu amplifie par 20 toute la merdouille.
mais ca sent le pompage comme l'a suggéré 68tjs
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: Wrec04 on Mar 30, 2014, 11:52 am
J'ai démonté tout mon circuit et l'ai refait comme sur cette image : (http://www.learningaboutelectronics.com/images/Microphone-LM386-amplifier-circuit.png)

Cependant, mon moniteur série affiche désormais 0 tout le temps...
Que voulez-vous dire inforbarquee ?
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: infobarquee on Mar 30, 2014, 12:59 pm
pas d'inversion dans le montage de l'électret?
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: Artouste on Mar 30, 2014, 01:14 pm

J'ai démonté tout mon circuit et l'ai refait comme sur cette image :

Cependant, mon moniteur série affiche désormais 0 tout le temps...
Que voulez-vous dire inforbarquee ?

Bonjour
déjà qu'est ce cela donne en connectant un casque en sortie ? c'est audible ou pas ?
ensuite le LM386 est un amplificateur, gain entre 20 et 200
j'en utilise , mais jamais en prenant directement l'electret sur l'entrée,  toujours un petit preamp micro avec un transistor en entrée , n'est ce pas infobarquee ?  :smiley-mr-green:

le schema vient d'où ?
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: infobarquee on Mar 30, 2014, 01:27 pm
hein de quoi?
qui me cause?
ha c'est toi Artouste :)

juste une bourde dans mon post avant
1-8 x200 le gain :( et non 20
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: Wrec04 on Mar 30, 2014, 02:19 pm
J'ai pris le schéma de ce site : http://www.learningaboutelectronics.com/images/Microphone-LM386-amplifier-circuit.png

La capsule est bien branchée dans le bon sens et il n'y a pas de faux contact au niveaux des soudures.

J'ai essayé d'écouter le rendu avec un casque,  je n'entends strictement rien, sauf un "tic" quand je passe le fil qui relie la sortie du circuit sur la fiche de mon casque.
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: Artouste on Mar 30, 2014, 02:53 pm

J'ai pris le schéma de ce site : http://www.learningaboutelectronics.com/images/Microphone-LM386-amplifier-circuit.png

La capsule est bien branchée dans le bon sens et il n'y a pas de faux contact au niveaux des soudures.

J'ai essayé d'écouter le rendu avec un casque,  je n'entends strictement rien, sauf un "tic" quand je passe le fil qui relie la sortie du circuit sur la fiche de mon casque.

Alors si il n'y a rien en sortie  et avant de mettre un arduino derriere, il faut regler déjà ça  :smiley-mr-green:
quelle valeur chez toi R1 ?
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: Wrec04 on Mar 30, 2014, 02:59 pm
Pour R1, j'ai mis une résistance de 10k
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: Artouste on Mar 30, 2014, 03:00 pm

Pour R1, j'ai mis une résistance de 10k

pourquoi et calculée comment ?  8)
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: Wrec04 on Mar 30, 2014, 03:04 pm
Je pense que j'ai mis une 10k parce que pour les résistances de pull up de mes boutons poussoirs, je mets également du 10k, mais sinon, je n'ai aucune idée de comment calculer la valeur de cette résistance !
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: Artouste on Mar 30, 2014, 03:09 pm

Je pense que j'ai mis une 10k parce que pour les résistances de pull up de mes boutons poussoirs, je mets également du 10k, mais sinon, je n'ai aucune idée de comment calculer la valeur de cette résistance !

les infos à rechercher pour son calcul sont indiqué sur le site d'où tu a extrait le schéma  :smiley-mr-green:

Quote
R1 is a resistor that connects the microphone to positive voltage so that the microphone is able to power on. Microphones cannot work without the necessary power needed. The value of the resistor is variable because it depends on the specific microphone that you have in use. Check the datasheet of the microphone you are using to find out the most suitable value for the necessary pull-down resistor.


une methode de recherche alternative facile à utiliser et non destructive consiste à utiliser une resistance variable de 100K et de descendre sa valeur jusqu'à apparition d'une amplification en sortie, apres tu mesure la RV et tu remplace par une R fixe .
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: Wrec04 on Mar 30, 2014, 03:19 pm
Sur la fiche technique, une résistance de 2.2k est utilisée dans l'exemple. Cependant, avec la formule R=U/I, d'après la consommation de la capsule, j'obtiens R=3*5e-3 = 6k, donc quelle valeur dois-je prendre ?

http://www.produktinfo.conrad.com/datenblaetter/300000-324999/302155-da-01-en-MIKROFONKAPSEL_EM4.pdf
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: Artouste on Mar 30, 2014, 03:23 pm

Sur la fiche technique, une résistance de 2.2k est utilisée dans l'exemple. Cependant, avec la formule R=U/I, d'après la consommation de la capsule, j'obtiens R=3*5e-3 = 6k, donc quelle valeur dois-je prendre ?

http://www.produktinfo.conrad.com/datenblaetter/300000-324999/302155-da-01-en-MIKROFONKAPSEL_EM4.pdf

si tu n'a pas de potentiometre à monter en RV et puisque tu utilise des 10K
fais un test en en montant 2/3/4 en // et ecoute si tu a/obtient un signal en sortie d'ampli
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: Wrec04 on Mar 30, 2014, 03:36 pm
Malheureusement, je n'ai absolument rien en sortie, même en mettant 4 résistances 10k en parallèle ... J'essaie avec des plus hautes valeurs ?
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: infobarquee on Mar 30, 2014, 03:59 pm

Malheureusement, je n'ai absolument rien en sortie, même en mettant 4 résistances 10k en parallèle ... J'essaie avec des plus hautes valeurs ?

soit tu change de trou sur ta plaque, soit tu soude.
j'ai eu le même soucis avec la plaque d'essai, hein Artouste :)
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: Wrec04 on Mar 30, 2014, 04:04 pm
J'ai fait le test avec mon casque audio, et ça fonctionne ! en fait j'avais oublié de lier la masse de mon casque à la masse commune sur ma plaque ... Par contre la valeur du "analogRead" affichée par le moniteur série reste à 140
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: 68tjs on Mar 30, 2014, 04:50 pm
La liaison avec l'arduino me pose problème : c'est une liaison capacitive donc avec des tensions négatives

Si le but est effectivement de réaliser un détecteur sonore. j'intercalerais une diode série avec une capa parallèle
R1 :  décharge le condensateur en absence de signal sur D1.

Schéma réalisé avec gschem de la suite open source GEDA
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: Wrec04 on Mar 30, 2014, 05:34 pm
Eh bien en fait, mon objectif est de réaliser un VU-mètre, j'avais oublié de le mentionner ;)
A quoi correspondent les différents fils sur ton schéma 68tjs ?
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: 68tjs on Mar 30, 2014, 05:59 pm
Je brise la liaison directe entre le montage et l'entrée de la carte arduino.
Donc  la sortie de ton montage est maintenant reliée sur l'entrée de la diode, la sortie de mon interface est relié sur la l'entrée analogique de la carte arduino.
C'est ni plus ni moins qu'un classique détecteur de puissance moyenne.
Ne pas oublier les 0,7 V de chute aux bornes de la diode, il faut que l'ampli sorte suffisamment de niveau.
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: Wrec04 on Mar 30, 2014, 06:24 pm
Dernière question : comment puis-je calculer les valeurs de C1 et de R1 ?
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: 68tjs on Mar 30, 2014, 08:30 pm
Quote
Dernière question : comment puis-je calculer les valeurs de C1 et de R1 ?

Avec un  "pifomètre calibré". :smiley-mr-green:

C'est de l'analogique donc il faut donner la fréquence.
Admettons que ce soit autour de 1kHz.
L'impédance d'entrée d'une entrée analogique :  voyons la datasheet du micro --> supérieure à 100 kOhms.
La datasheet dit aussi que l'impédance du signal entrant sur une entrée analogique ne doit pas être supérieure à 10 k ohms.

J'ai complété le schéma avec une résistance pour faire un intégrateur  --> Attention renumérotation !
D1 = une diode signal type 1N4148 convient.
R1/C1 = ?
Le circuit R1C1 forme un intégrateur de constante de temps T=RC   --> voir la doc comme Wikipédia (oublier les grosses formules, ne garder que les résultats finaux et la forme des courants et tensions).
Un signal à 1kHz a pour période P= 1/F = 1ms. Le "pifomètre" dit qu'on peut partir sur une intégration de 10 périodes minimum
Pour le convertisseur analogique digital l'impédance ne doit pas dépasser 10 k ohms et comme on n'a pas envie de se prendre la tête on fait R1 = 10 kohms.
Maintenant pour C1
T = 10 ms  --> C = 1µF
T= 100ms ---C = 10 µF
T= 1s --> C= 100 µF

Ce n'est qu'une approche. Pour les valeurs finales fais ton choix selon que tu veux que cela fluctue lentement ou vite.

R2 = c'est une protection pour que le condensateur puisse se décharger.
Attention :
- L'impédance d'entrée du micro vient se mettre en parallèle sur R2 pour former une résistance équivalente Re
- R1 et Re forment un pont diviseur. Ce qu'on peut faire c'est choisir une valeur de Re qui fasse que le pont perturbe le moins possible.
Si on fait R1= 100k, Re vaudra  50 k (R1//Rmicro)
J'aurais tendance à dire, après avoir fait cette analyse, que la résistance R2 est superflue et qu'on peut se contenter d'utiliser celle du micro.

NB : Le réseau RC  c'est une approche matérielle, il y a sans doute une approche logicielle qui fait la même chose.
Title: Re: Alternance 0-1023 sur le moniteur série avec analogRead
Post by: Wrec04 on Mar 31, 2014, 08:41 pm
Merci, tout fonctionne correctement maintenant :)
Je vous remercie tous pour l'aide que vous m'avez apportée pour mon projet, j'ai pu tirer un certain enseignement théorique et pratique grâce à vous ;)
Title: Re: [RESOLU] Alternance 0-1023 sur le moniteur série avec analogRead
Post by: 68tjs on Mar 31, 2014, 09:06 pm
Y a pas de quoi.

Essaye de modifier le titre du PREMIER message afin que ce soit plus compréhensif et utilisable par les moteurs de recherches.