Go Down

Topic: Un diviseur de tension capacitif (Read 3488 times) previous topic - next topic

Ziqumu

J'aimerais bien réalisé un capteur capacitif basé sur un diviseur de tention capacitif, enfin je vous passe les détails du dossier de 15 page  :P Le problème c'est que je débute un peu en electronique et en arduino aussi, donc si je me trompe dans mon explication n'hesitez pas a me le dire.

Mon diviseur de tension capacitif (http://www.ece.umd.edu/class/enee204.F2000/Assignment05/Topics/Topic03/sld004.htm) doit etre composé dans un premier temps pour que je comprenne comment ca marche de deux condensateurs de 1pF, ce qui d'après mes calculs et d'après un emulateur devrait donner 2,5V en sortie pour 5V au générateur. Le problème c'est qu'il faut de l'alternatif ou des impulsion vu que le montage comprend des condensateurs. De plus les entrées analogique de l'arduino ne me donnent pas des valeurs très logique, j'ai environ 230 lorsqu'il n'y a rien de branché dessus et j'ai très peu de changement avec le diviseur de tension capacitif...

Donc j'ai plusieurs questions, deja est ce que c'est possible de le faire et si oui doit-je utiliser une sortie en pwm pour faire les impulsion ou les faire manuellement ? Et comment récupérer une valeur que je pourrait étudier (le mieu serait de récupérer l'amplitude maximal) ?

Merci d'avance :)

Super_Cinci

#1
Feb 24, 2012, 08:16 am Last Edit: Feb 24, 2012, 08:23 am by Super_Cinci Reason: 1
Salut,

Bon, je n'ai pas que des bonnes nouvelles pour toi...

1 - le diviseur de tension capacitif ne fonctionne qu'en sinusoïdal (les équations sont différentes sur un signal carré...)

2 - tu utilises des capas de 1pF : on ne peut pas trouver plus petit. Vues les caractéristiques du CAN de l'arduino, il faudrait que tes capas atteignent les 10Kohms, c-a-d les faire travailler à une fréquence au dessus de 16MHz, et je doute que tu réussisses à rentrer du 16MHz dans ton analogique.

3 - conclusion : oublie tout de suite, j'ai mieux :



C = capteur, R1 et P1 = résistance de charge.

le principe :



t0 = mesure initialisée, en attente.
t1 = la pin arduino passe en entrée, le condensateur se charge à travers R1 et P1
t2 = le condensateur atteint la valeur "1" reconnue par la pin arduino, PINXn passe alors à 1.
t3 = on remet la pin arduino en sortie, elle passe à 0 et décharge le condensateur.
t4 = temps à attendre pour que C soit complètement déchargé.

Le but du jeu est donc de mesurer le temps que met C à se charger entre t1 et t2, c'est tout!

du code :
Code: [Select]

#define capteur 3  // le capteur est branché sur la pin 3

void setup(){
  Serial.begin(9200);  // démarrage du port série
}

long mesure(){   // renvoie le temps entre t1 et t2 en microsecondes
  long t1, t2;  // variables de mesure du temps

  digitalWrite (capteur, LOW);  // mise à 0 de la sortie
  pinMode (capteur, OUTPUT);  // pin capteur en sortie (DDRXn = 1)
  delay(100);                   // délai pour attendre que la capa soit déchargée
  t1 = micros();   // lecture du temps t1
  pinMode (capteur, INPUT);   // pin capteur en entrée, le condensateur commence à se charger
  while(!digitalRead(capteur));  // tant que le condensateur n'est pas assez chargé pour faire passer la pin capteur à 1, tourner en rond
                                // quand la pin capteur sera passée à 1, on sort de la boucle.
  t2 = micros();   // lecture du temps t2
  pinMode(capteur, OUTPUT);   // remise en sortie de la pin capteur pour décharger le condensateur
  return (t2-t1);
}

void loop(){
  serial.Print (mesure(), DEC);  // envoi sur port série de la valeur mesurée.
}


Il te faudra choisir R1 et P1 de façon à ce que pour la plus petite valeur de C, le temps de charge (t2-t1) soit supérieur à une centaine de microsecondes, avec la formule :

R1+P1 = 100.10-6 / (5 x Cmin)

puis il faudra faire des essais, la valeur renvoyée par mesure() est directement proportionnelle à la valeur de C (mesure() = A x C), déterminer A n'est pas très facile, car A dépend de pas mal de facteurs. Dans l'idéal, il te faudrait un étalonnage... il capte quoi, ton capteur? as-tu la formule de ton capteur, du genre "C = f(grandeur captée)"?

Bonne chance!

Snootlab

Bonjour,

Effectivement, le montage que tu veux faire nécessite un envirronement différent d'un arduino avec deux condensateurs.
Par contre, le petit exemple de Cinci à l'air bien "fun" électroniquement parlant, ça met en oeuvre de simples concepts fondamentaux, qui font quelque chose de plutôt rigolo à la fin :)
Essaye le si ça te tente, et partage ton retour :)

Bonne journée !

-----
Stéphane.
- Distributeur officiel Arduino - France

fdufnews

Le problème du montage proposé par Super_Cinci c'est qu'il ne tient pas compte du courant de fuite dans les broches d'entrées/sorties.
Avec une capacité de 1pF, il faut un couple R+P1 de plusieurs dizaines de MOhms ce qui veut dire un courant de quelques dizaines (ou centaines au mieux) de picoampères.
Le courant de fuites dans les I/O est spécifié à 1µA.
Cherchez l'erreur!!

Alors on peut éventuellement envisager un ampli pour isoler le montage. Mais le courant mis en oeuvre est si faible que les perturbations apportées par l'environnement vont rendre la mesure très (même très très) imprécise.

En fait je pense qu'il vaudrait mieux commencer par les bonnes questions:
    - qu'elle est la valeur nominale de la capacité. On le sait 1pF.
    - quelle variation doit-on détecter. Cette question est importante car cela va conditionner le montage. En effet si la variation de la capacité est faible le montage actuellement proposé ne donnera rien de bon. En fait si la valeur nominale est de l'ordre du pF on peut supposer que les variations du même ordre de grandeur voir plus faible.

Pour mesurer des variations très faibles, il n'y a guère que les montages en pont qui soient performants. Et du coup comme c'est un condensateur retour vers une source sinusoïdale. Et comme la capacité est faible une source sinusoïdale de fréquence relativement élevée.

Super_Cinci



En fait je pense qu'il vaudrait mieux commencer par les bonnes questions:
    - qu'elle est la valeur nominale de la capacité. On le sait 1pF.
    - quelle variation doit-on détecter. Cette question est importante car cela va conditionner le montage. En effet si la variation de la capacité est faible le montage actuellement proposé ne donnera rien de bon. En fait si la valeur nominale est de l'ordre du pF on peut supposer que les variations du même ordre de grandeur voir plus faible.

Pour mesurer des variations très faibles, il n'y a guère que les montages en pont qui soient performants. Et du coup comme c'est un condensateur retour vers une source sinusoïdale. Et comme la capacité est faible une source sinusoïdale de fréquence relativement élevée.
On ne le sait pas, justement, on n'a aucune donnée sur le capteur, ni même ce qu'il est censé capter... Ziqumu a fait un test avec deux capas de 1pF, ça ne veut pas dire que le capteur est aux alentours du pF. Je lui ai demandé les caractéristiques de son capteur, on ne peut rien affirmer tant qu'on n'a pas d'infos...

Il existe d'autres variantes, en utilisant un FET pour "amplifier" la capa du capteur... mais on va attendre un peu...

Ziqumu

#5
Feb 24, 2012, 09:32 pm Last Edit: Feb 24, 2012, 09:55 pm by Ziqumu Reason: 1
Déja merci beaucoup de m'aider, J'avou ne pas m'être encore bien pencher pour comprendre tout ce que vous avez dit, (il me faut du temps a moi :P). Je voulais juste vous donner les données que vous voulez pour l'instant. Je vais vous passer mon dossier pour que ce soit plus simple http://letactile.fr.nf/tpe.pdf. Seul le II vous interréssera pour comprende ce que je veut faire.

Pour résumer, le capteur est donc ici une seul ligne conductrice d'un pavé tactile ou d'un ecran tactile capacitif. J'ai des valeurs théoriques pour les condensateurs qu'un membre de futura science m'a conseiller.

-Cdoigt1 une capacité entre le doigt et la ligne conductrice de 1pF
-Cdoigt2 une capacité entre le doigt et la borne négative du générateur (relié par une surface conductrice sour le repose main) aussi de 1pF
-CParasite une capacité parasite qui serait donc présent meme quand le doigt n'est pas la et qui serait de 0,1pF
-C1 pour concorder avec le tout serait de 1pF

Le premier diviseur de tension est C1, et le deuxieme, qu'on va appeler C2, est donc formé par l'ensemple Cdoigt1, Cdoigt2 et CParasite. on peut calculer ce deuxiemme condensateur par:
-lorsque le doigt est présent :  C2=((C_doigt1 * C_doigt2)/(C_doigt1  + C_doigt2 ))+Cparasite=((1*1)/(1+ 1))+0,1=0,6
-lorsque il n'y a pas de doigt :  C2=Cparasite=0,1

Donc après en principe j'applique la formule suivante : Vsortie=Ventree*(C1/(C1+C2 )) mais bon d'après ce que que j'ai compris ca ne peut pas marcher. J'espere ne pas avoir été trop confus.
Merci encore de m'aider, je vais chercher a comprendre tout ce que vous raccontez ^^


EDIT: si vraiment appliquer ce systeme sur l'arduino est imposible, je suis près a changer de systeme a partir du moment ou il existe une capacité entre le doigt et la ligne conductrice.

Et sinon quesque P1 comme composant, je ne connais pas.

Super_Cinci

P1 est un potentiomètre (ou une résistance variable si tu préfères).

maintenant qu'on sait de quoi tu parles...

regarde le fonctionnement des micros "électret", c'est le même principe, sauf que pour attaquer une entrée de transistor, les variations de quelque dixièmes de pF sont amplifiées par un FET... en appuyant avec le doigt, tu rapproches les fibres, donc diminues la capa.  une capa sur la grille d'un fet fait varier sa résistance RDS, et c'est cette variation d'impédance que l'on va mesurer, c'est autour des 100Kohms, donc bien plus facile, il suffit de polariser le fet avec une résistance bien choisie pour voir apparaitre une belle variation de tension, le tout à partir d'un générateur de tension... continue, et oui.

Il faut que tu rajoutes sur ton étude une interface (qui est généralement intégrée au PAD), à base de FET... même un µP à 200MHz ne saurait gérer seul un réseau de fibres capacitives, il y a forcément de l'électronique entre les deux. creuse encore...

Ziqumu

Merci Super_Cinci, mais ton dernier message est un mistere pour moi, c'est un peu trop compliqué  :P oubli pas que je suis qu'en premiere et donc je n'ai pas etudier grand choses comme composant (par exemple j'avais jamais etudier les condensateur)

D'après ce que j'ai compris dans ton dernier message, tu voudrait que j'utilise la capacité entre deux fibres qui varie en les rapprochant ? Le problème c'est que la surface est en verre rien n'est souple l'avantage d'un ecran tactile capacitif et justement le fait qu'on ai juste besoin de froler pour communiquer avec le périphérique et non appuyer. Donc une présentation de ce système a l'oral n'aurait pas vraiment d'intérêt a apporter.

Sinon pour la gestion des coordonnées, j'avoue ne pas m'être trop pencher sur la question mais maintenant c'est un peu tard, je l'ai rendu. J'en toucherais peut être deux mots a l'oral, merci pour l'idée.

Le plus simple serait d'utiliser ta première idée qui me semble coller avec ce que je veut faire. Donc si tu pense que c'est toujours possible, j'ai quelques questions:
- Pourquoi un potentiometre ? Dan le montage final on n'est pas cencé changer la valeur de la résistance pendant l'utilisation, nan ? Donc si j'ai bien compris, c'est juste a des fins de calibration ?
- pour la formule R1+P1 = 100.10-6 / (5 x Cmin) quelles sont les unités pour etre sur ? Et elle a un nom cette formule que je puisse la trouver sur internet et explorer un peu le sujet.
- Doit-je encore utiliser le diviseur de tension capacitif ? Il ne me semble pas que c'est nécessaire puisqu'on peut connaitre juste la capacité entre le doigt et la surface tactile.
- J'ai essayer de faire une simulation avec un logiciel (Ltspice) et je ne voit aucune variation de tension au niveau de la sortie arduino. Est-ce le logiciel qui se trompe ou moi qui ait fait une mauvaise simulation ?
- J'ai quand meme essayer de le faire avec le diviseur de tension capacitif comme capteur capacitif, et donc au niveau de sa sortie, j'ai une variation, mais elle ne change pas quand je modifi la réstance d'avant.

Encore merci de m'aider, et désolés si j'ai un peu de mal a comprendre  :smiley-red:

Super_Cinci

Beaucoup de questions dis-moi... je ne comprends pas trop l'objet de ton TPE en fait. Si tu dois répondre aux deux questions de l'énoncé :

Quote
La technologie tactile capacitive

Qu'est-ce qui a amené la technologie capacitive à devenir la technologie tactile la plus utilisée aujourd'hui dans les appareils portatifs, et comment fonctionne-t-elle?


Pour la première (pourquoi du capacitif), un peu de recherche googlisante et on trouve des éléments de réponse, ok, mais la seconde, (comment ça marche), jusqu'à quel niveau dois-tu aller? Car si tu n'y connais rien aux condensateurs, tu seras vite limité. expliquer le fonctionnement d'un tel système, une technique qui dépasse de très loin des connaissances de base...

En fait, dans ton cas, il s'agirait plus d'un capteur de présence, on envoie une fréquence sur une fibre horizontale et on regarde ce qu'il y a sur les fibres verticales, en utilisant le doigt comme "réflecteur" qui va renvoyer l'onde vers les fibres verticales, mais dans ce cas, on parlera d'ondes électromagnétiques, c-à-d des ondes radio envoyées par les fibres horizontales qui deviennent plus des antennes que des capacités. Comme les fibres sont perpendiculaires, en effet, ce fonctionnement serait à évoquer, les fibres horizontales émettent des ondes polarisées que les fibres verticales ne peuvent percevoir, sauf quand un doigt passe par là pour mettre un gros désordre dans l'onde et la "retourner" vers les fibres verticales. Mais est-ce que ça marche vraiment comme ça? Je ne connais pas les surfaces tactiles rigides, donc mon idée ci-dessus n'est qu'une approche perso de la chose, je suis peut-être dans le faux.

Si tu as déjà rendu le papier, alors il ne faut pas t'enfoncer à l'oral dans des choses dont tu ne parles pas du tout à l'écrit (c'est le meilleur moyen de perdre un max de points). Je t'ai proposé une méthode pour mesurer des capacités d'un minimum de l'ordre de la dizaine de nF, si tu est dans le dixième de pF, ça ne marche plus avec un arduino. Ma méthode peut s'appeler "mesure du temps de charge d'un condensateur". C'est la méthode de mesure généralement utilisée dans les volt-mètres. J'ai mis un potentiomètre pour palier aux défauts de précision des résistances et trouver un coefficient de calcul simple. d'autres systèmes utilisent un générateur de courant constant, connaissant le courant, le condensateur se charge continuellement jusqu'à une tension définie U (U = I x t / C, d'où C = I x t / U). On n'a qu'à mesurer t et appliquer un facteur (I / U = constantes), ce qui permet de s'affranchir de calculs exponentiels. Mais je sens que je vais déjà trop loin et que tu vas dire que je dis des grossièretés, d'autant plus que cela n'a vraiment plus rien à voir avec ton TPE...

Pour l'oral, ne parle que de ce que tu as écrit. Il faut imaginer toutes les questions que l'on peut te poser. De cette façon, tu arriveras sûr de toi. Les profs ne sont pas trop vicelards, ils ne t'emmèneront pas ailleurs, mais peut-être sur des terrains glissants, alors il te suffit de connaître tes limites et de leur répondre que leur question s'éloigne du sujet, ou que simplement que tu n'as pas travaillé sur cette partie (travail en équipe = répartition des tâches et compétences). J'ai utilisé à deux reprises cette façon de se sortir d'une mauvaise passe pour l'oral au BTS, ça ne m'a pas empêché d'avoir un beau 18. Mais pour ça, il faut que vous soyez d'accord tous les trois, et que chacun maitrise la partie commune et sa partie (la démonstration du travail en équipe vous assurera au moins la moitié des points, c'est comme les maths, le résultat est bien moins important que la façon d'y arriver (enfin c'était comme ça à mon époque)).

Ziqumu

#9
Feb 27, 2012, 09:28 am Last Edit: Feb 27, 2012, 09:29 am by Ziqumu Reason: 1
Le problème des TPE c'est que lorsqu'on choisis le sujet(le choix est pratiquement libre) on ne sais pas du tout ou l'on va, après le but est d'aller le plus loin possible sans parler de truc qu'on ne comprendrais pas. De toute facon en général lorsqu'on se rend compte que c'est un peu trop dur, il est trop tard pour changer.

Je ne pense pas que ca soit ca, rien que par le nom : "Ecran tactle capactif" on comprend que la capacité est la base du systeme. Ton idée existe peut être, mais j'en ai pas eu la connaissance, de toute facon il y a beaucoup de methode pour faire un ecran tactile.

Ah ok donc ta méthode ne fonctionne plus dans mon cas. Il n'y a pas d'autre moyen de le faire en courant continue ? Sinon je pourrait peut être utiliser un générateur sinusoïdal, mais si l'examinateur me demande comment ils font dans les téléphonnes, par exemple, pour avoir un courant sinusoïdal, je suis cuis. Sinon on pourrait pas le faire avec des impulsions ?

Pour ce qui est du travail en groupe, j'ai tout fait tout seul, car mes deux autres camarade sont plus "copier-coller" sans comprendre, ou travail a la derniere minute.. et vu qu'on avait fait juste une page 3semaine avant la fin et qu'on avait meme pas compris le fonctionnement du systeme j'ai tout fait tout seul, donc on perdra peut être des points la dessus mais bon, je sais deja que les profs qui nous on accompagner pendant les séances on vu que j'ai plus travailler. Sinon à l'oral il faut aussi connaitre la partie de ses camarades en principe car il posent des question a l'un sur la partie de l'autre, pour savoir si tout le monde a tout compris. Il y a des questions du genre "rééxpliquez moi pourquoi ..." Sinon pour l'oral c'est d'autres profs qui note le travail, et ils n'on pas connaissance du travail en groupe ou non, il le véront simplement si au moment de poser les question y'en a un qui est capable de répondre a tout et pas les autres. De toute facon les notes sont individuel donc j'espere quand meme avoir quelques points.

Ziqumu

Bref je récapitule mes questions

Il n'y a pas d'autre moyen de le faire en courant continue ?
Sinon je pourrait peut être utiliser un générateur sinusoïdal ? Le problème c'est si l'examinateur me demande comment ils font dans les téléphonnes, par exemple, pour avoir un courant sinusoïdal, je suis cuis.
Sinon on pourrait pas le faire avec des impulsions ? Vous avez dit que ça changeait complètement les équations, mais je n'en trouve pas d'autres.

Merci d'avance

Go Up