Mesure de phase(retard) entre deux signaux

Bonjour

J'aimerais pouvoir mesurer le retard entre deux signaux (par exemple entre le courant et la tension dans un circuit capacitif) à l'aide d'un Arduino : est-ce envisageable ?

Merci d'avance

Oui, mais il faudrait peut être préciser les ordres de grandeurs de la durée que vous souhaitez mesurer, si vous avez un signal périodique et quel est sa période.....

par exemple entre le courant et la tension dans un circuit capacitif

Quelle(s) méthode(s) comptes tu employer ?
Je ne parle pas ici de programmation mais de mesures électroniques.

Avant de parler programmation il faut être bien clair sur ce qu'on veut faire et comment on va le faire.
Pour moi l'information la plus importante est la bande de fréquence utilisée.

Les signaux utilisés (je suis dans l'enseignement) ont des fréquences de l'ordre du kHz (on n'utilise que des signaux sinusoidaux)

Le gros problème que je vois, c'est comment faire rentrer une tension (et surtout une intensité, dont je n'ai même pas l'ordre de grandeur) dans un arduino -et là, je rejoins 68tjs-
Ensuite, le problème logiciel est mineur (il y a plusieurs façons de faire, je n'en connais que des peu élégantes)...

Il faut s'inspirer du schéma que l'on ferait avec un oscilloscope.

Le courant peut être pris par une résistance : on obtiendra une tension et par U= RI on obtiendra un courant.
La tension aux bornes du condensateur sera prise à ses bornes.

La seule difficulté est de savoir ou placer la masse car bien sûr la masse est un point arbitraire que l'on place là où cela nous arrange le plus.

Si le générateur est sinus basse fréquence il est fort probable qu'il sort une tension symétrique sous une impédance de 600 ohms, c'est à dire qu'aucune masse n'est reliée "en dur" à une quelconque de ces sorties.

Dans ces condition je place "la masse locale de l'arduino" entre la résistance et le condensateur.
Bien évidement il est préférable d'avoir une alim flottante pour l'arduino, ce qui est le cas avec les petits chargeurs 5V.
Ce n'est pas obligatoire mais peut éviter des soucis lors de manips hasardeuses.

Reste à vérifier le cas de la masse du PC si la carte arduino y est reliée.

Et utiliser le convertisseur analogique digital.
PS : la fréquence d’échantillonnage à "la mode arduino" est très faible, il est possible de l'augmenter.

J'envisageais comme matériel de ne pas* utiliser le convertsseur analogique digital, mais de convertir (avec deux triggers de Schmitt) en "signe de l'intensité" et "signe du voltage" :

l'avantage est que l'on s'affranchit des fréquences d'echantillonnage très basses -10ks/s - de l'arduino (sauf reprogrammation de analogRead : https://www.gammon.com.au/adc permet d'echantillonner 6 fois plus vite que adcRead, sans perte de precision.
Dans le cas analogique, l'integrale du produit de l'intensité par la tension (en supposant que les deux sont de valeur efficace 1: cela fait 3 integrales et deux multiplications à effectuer) , dans le cas analogique, se comporte comme le cosinus du dephasage si elle est calculée , soit sur une période du signal , soit sur un temps très long.

Si le signal est converti en son signe, le déphasage peut être vu comme le temps moyen pendant lesquels les signes des deux signaux different divisé par le temps moyen total (une fois qu'on connaît la période) (des circuits à ou exclusif arrivaient à estimer ainsi un dephasage) .

Je me garderai de rentrer dans les détails sans plus d'information de la part du demandeur.
Pour la durée acceptable de traitement de l'information il faut savoir s'il y aura une visualisation en fonction de la fréquence, à quel rythme et dans quelle gamme de fréquence.

Le demandeur étant enseignant il sait ce qu'il veux montrer à ses élèves : des valeurs numériques où des courbes dynamiques. Le traitement ne sera pas le même.

Bonjour

J'ai suivi les échanges sans tout comprendre des échanges.
Par exemple, qu'entendez-vous par

68tjs:
Pour la durée acceptable de traitement de l'information il faut savoir s'il y aura une visualisation en fonction de la fréquence, à quel rythme et dans quelle gamme de fréquence.

Il manque pas mal de petits details:
a) en entrée, quel est l'ordre de grandeur de la tension et de l'intensité dont vous voulez mesurer le dephasage?

b)en sortie,

b1) que voulez vous montrer:
une courbe, une sortie sur afficheur, une sortie sur le moniteur serie ?
b2) A quelle cadence voulez vous montrer vos dephasages (un nombre toutes les secondes, 10 secondes)?
b3 autres details que j'ai oubliés

Ah ok, je comprends la demande !

Le TP qu'on faisait habituellement : on imposait une tension d'entrée sinusoidal à un circuit électrique et on récupérait l'intensité (prise aux bornes d'une résistance) ; on mesure alors (soit via oscillo, soit par modélisation) le déphasage entre le courant et la tension --> pour chaque fréquence du signal d'entrée, on obtenait une valeur de déphasage --> on représentait alors l'évolution du déphasage en fonction de la fréquence d'entrée.

Comme je veux faire un test au début, je pense prendre un cas classique que l'on utilise au labo :
tension d'entrée ~3-4V, intensité ~40 mA --> après, je dois pouvoir diminuer ces valeurs si c'est trop compliqué à mettre en oeuvre.

Pour la sortie, je souhaite obtenir la valeur du déphasage : in fine ce sera sur un écran mais dans un premier temps, je vais me borner à l'afficher dans le moniteur série.
Pour ce qui est de la cadence, je n'ai pas besoin d'une très grande fréquence d'affichage : habituellement, on faisait une ou deux mesures par fréquence d'entrée --> je pense donc qu'un affichage toutes les 10 secondes est largement suffisant.

Comme je veux faire un test au début, je pense prendre un cas classique que l'on utilise au labo :
tension d'entrée ~3-4V, intensité ~40 mA -

Je ne vois pas ce que viennent faire les 40 mA, sont-ils continu ou alternatif ?
S'ils sont alternatifs ils varieront avec la fréquence et on ne connait pas le schéma du montage.
Bref infos non exploitables.

Quittons la dissertation de français et entrons dans la technique : fourni un schéma électrique avec la valeur des composants et les caractéristiques des appareils utilisés avec si possible marque et modèle histoire de consulter le site du constructeur.

Bon, je suppose que vous aurez résolu le problème de brancher deux grandeurs à l'arduino, avec la difficulté suivante: il ne faut pas que le prétraitement introduise de dephasage supplémentaire d'une voie par rapport à l'autre.
Vous avez le choix entre
a) faire rentrer deux valeurs analogiques et vous pouvez en faire tout plein de choses (pour chacune des voies)
a1) les echantillonner le plus vite possible et es stocker (dans deux tableaux de 500 valeurs chacune, à peu près), les balancer dans le moniteur série une fois que vos tableaux de stockage sont pleins (pour éviter que la transmisssion induise des delais variables) , et verifier qu'ils sont compatibles avec un oscilloscope dont vous disposez
a2) trouver le min et le max , et donc la valeur analogique correspondant à zero: moyenne du min et du max pour -notée offsetV0 pour la tension)
a3) determiner la periode (temps ecoulé entre deux passages d'une valeur < offsetV0 à une valeur > offsetV0)
a4) determiner le temps écoulé entre une montée de l'intensité -passage par zero- et une montée du voltage

Tiens, là, vous avez un dephasage.... mais qui n'exploite "que" 6 mesures (et si vous avez suivi cet ordre, vous pouvez régler le problèmes éventuels un par un)

a5) calculer le (carré du) voltage efficace par integration -somme cumulée si les pas de temps d'échantillonnage sont constants - Valeur efficace — Wikipédia des carrés des mesures de voltage (privées de leur offset) ; l'intégration -somme cumulée- porte, soit sur un nombre entier de période, soit sur un temps "très" long;
a51; faire la même chose (sur la même série) pour l'intensité
a52 et integrer (somme cumulée, bien sûr) le produit des (intensités corrigées de l'offset) par les (tensions
corrigées de l'offset).
Là, vous avez tous les ingrédients pour calculer le cosinus du déphasage (et vous exploitez l'intégralité des mesures, au prix d'une utilisation intense -calculs en rééls- de votre arduino).

"reste" à faire venir des mesures pas trop vilaines dans les voies analogiques de l'arduino

b) Le traitement sur des voies logiques est plus simple, côté arduino, mais se limite à regarder les temps de franchissement d'un seuil -exposé en a1.. a4)

Les 40 mA correspondent au pic d'intensité car en effet l'intensité dans le circuit dépend de la fréquence.

GBF en entrée : type GX240
pour le circuit, il s'agit d'un circuit RC série avec typiquement R~1kohm C~220 à 1000 nF et de circuit RL série (L~20 mH)
Pour les mesures, on utilise actuellement soit l'oscillo soir on fait l'acquisition des signaux.

Ce que je vous propose, c'est de commencer par utiliser l'arduino pour faire de l'acquisition de signaux le plus vite possible
If faudrait commencer par lire et comprendre l'exemple de lecture sur une voie analogique, puis complexifier petit à petit et j'essayerais bien, après avoir compris l'exemple:

uint16_t intens[250], volt[250]; // un arduino n'a que 2 Kohm de RAM, j'echantillonne 250 valeurs (1 K bytes)
uint8_t isample= 0;
uint32_t tdebut = micros();// pour voir si on echantillonne assez vite
for (isample=0; isample  < (sizeof(intens)/sizeof(intens[0])); isample++) {
   intens[i] = lecture(voieI); // lecture est, pour débuter, adcRead; avec le lien vers gammon, on peut accélérer
  volt[isample] = lecture(voieVolt);
}
uint32_t elapsed = micros() - tdebut;
Serial.print(" Elapsed :\");
Serial.println(elapsed);

Il faudrait faire attention, si vous voulez brancher des volts de votre générateur:
3volts alternatifs peuvent être 31.42 = 8 volts crête à crête, plus que les voies analogiques de l'arduino ne peuvent tolérer (pour du réalisme et la santé de l'arduino, les entrées analogiques doivet être comprises entre 0 et 5 volts)

J'essaye ça d'ici la fin de la semaine et reviens vers vous (je baisserai la tension d'entrée pour éviter des problèmes)

J’eus préféré un vrai schéma on est encore dans la littérature.

LE tout petit problème, c'est que pour avoir un vrai schéma (je l'aurais conseillé il y a un mois), il faut le faire à main levée (occasion de verifier que son câblage est bon, s'il est douteux), le photographeir avec un "smart" "phone", puis le mettre dans ce site, avec

a) une interface antiergonomique spécifique à ce site

b) des commentaires désagréable infligés à quelqu'un qui a d'autres soucis

Et ça (edité: les points a **et **surtout b) , ce n'est pas de la littérature... mais de l'abus de pouvoir

68tjs:
J’eus préféré un vrai schéma on est encore dans la littérature.

SI vous souhaitez le schéma du montage qu'on utilise actuellement, je peux proposer ce lien : Physique Appliquée – Nos articles web

Selon le cas, on enlève ou non un des composants selon que l'on souhaite étudier RC, RL ou RLC série (il faut juste modifier les valeurs et prendre en compte celles que j'ai énoncé auparavant).

Votre lien lie vers ce que j'avais imaginé.... mais il reste des petits points d'ombre:

a) savez vous programmer (sinon, bombarder avec du code non testé est ... ridicule)? (on peut être très bon en physique, en math ou -incl.- en pédagogie et ne pas savoir programmer )

b) savez vous vous servir d'un arduino? (des millions de gens fort respectables ne le savent pas)

c) si les deux questions sont négatives, vos élèves savent ils s'en servir et programmer.

J'ai supposé que vous saviez convertir du français en formules mathematiques ou en programme (n'ayant pas d'éditeur de formules sous la main, et boycottant l'afficheur de dessins de ce forum, je n'avais pas le choix ) et j'ai remarqué que vous êtes dans une situation plus confortable (disposant d'un oscilloscope et d'un enregistreur, permettant de dépanner aisément ) que la plupart des hobbyistes.