Timer sur signal analogique

Bonjour à tous,

J’ai un signal analogique qui correspond à l’image ci joint .
Je veux mesurer le temps entre les deux impulsions.
Quelqu’un peut m’aider ?

Mz409:
Bonjour à tous,

J’ai un signal analogique qui correspond à l’image ci joint .
Je veux mesurer le temps entre les deux impulsions.
Quelqu’un peut m’aider ?

bonjour
+1 avec pepe
aucune notions temporelle et d’amplitude ne peut etre ressortie de ta photo

vous avez raison je m'excuse
l'amplitude est a peu prêt aux à l'entou de 1V.
La fréquence est aux à l'entour de 500ms a 1s
Merci d'avance

Toujours insuffisant pour l'amplitude.
Il faut toutes les informations :
On ne donne pas une valeur brute mais l'échelle par carreau (appelé division sur un oscilloscope)

Le signal est constitué d'un plat et d'impulsions

  1. quel est le niveau moyen du plat ?
  2. L'amplitude de l'impulsion fait environ 1 carreau, si tu nous donne l'amplitude par division on aura la réponse.

Ces renseignements sont importants parce qu'il faudra probablement amplifier et que la solution risque de ne pas être la même si le plat représente la ligne 0V ou si le plat est déjà à 3V ou 4V.

L'amplitude par division est 1V
pour le plat c'est à peu prêt 1.8V

Ton signal est généré par un capteur? quel type?

68tjs:
Il faut toutes les informations :

Jambe:
Ton signal est généré par un capteur? quel type?

Extrait du message : Bienvenue sur le forum de la communauté francophone que visiblement tu n’as pas lu :

Donnez le maximum de renseignements :

  • Le système d’exploitation et sa version.
  • La version de l’IDE.
  • Le code, bien évidement entre balises code (icône de gauche </>) .
    Ce n’est pas pour vous embêter, c’est indispensable pour conserver la mise en forme du programme.
  • Une description du matériel et des liens vers les documents techniques (datasheets).
  • Bien évidement, ne présentez jamais de code sans avoir tenté de le compiler.
    Si votre code ne compile pas, recopiez toutes les informations d’erreur délivrées par le compilateur.

Si l’on vous demande « beaucoup de renseignements qui semblent ne servir à rien », ce n’est pas de la curiosité mal placée. C’est que souvent, le diable se cache dans des endroits où on ne l’attend pas.

Si les renseignements arrivent au compte goutte, arrachés à la lampe à souder sous la plante des pieds, je pense que ce sujet ne va pas aller bien loin.

mon signal est généré par un signal d"ECG que j'ai conçu à partir d'un amplificateur d'instrumentation

Dans la datasheet du micro-controleur on peut lire que le niveau de basculement sur les entrées en mode numérique (le mode qui génère des interruptions) est autour de 2,5 V avec une hystérésis
→ on ne sait toujours pas quel micro tu utilises donc tu vérifies dans la datasheet Atmel correspondante .

j’ai conçu à partir d’un amplificateur d’instrumentation

J’en conclu que tu connais l’électronique et les caractéristiques de sortie de cet amplificateur.
Tu transforme le signal pour le centrer autour de 2,5V (à vérifier) avec une amplitude minimum de 2V (à vérifier)entre le plat et le haut de l’impulsion.

Ce signal sera détectable par une entrée en mode numérique.
Après différentes solutions existent :

  • interruption
  • fonction PulseIn
    etc
    Le moteur de recherche du site pourra te donner de multiples exemples.

Merci pour votre interêt.
J'ai quelques notions en électronique mais je ne suis pas un grand connaisseur, j'ai du suivre un blog pour concevoir le système.
J'ai déjà essayé avec la fonction pulsein mais ça ne detecte rien

PS:J'utilise une Arduino Uno.

Merci pepe, je vais essayer votre code et je vous dirai qu'est ce que ça a donné.

pepe:
Or, les variations du signal que tu as indiquées risquent fort de ne pas être interprétées comme des changements de niveau logique.

C'est bien pour cela que ma proposition était d'amplifier et de recentrer le signal.
Comme un ampli op est déjà utilisé je m'étais dit ( l'idée est peut être absurde) que le capteur pouvais être complété avec l'ajout d'un deuxième ampli op (probablement encore disponible si tous ceux du boîtier déjà existant n'ont pas été utilisés).
Cet AOP pourait être utilisé pour "configurer" le signal c'est à dire le recentrer autour de 2,5 V avec une amplitude de 2 ou 3 volts entre le niveau du plat et celui de l'impulsion.
Avec cette adaptation le signal sera reconnu par les entrées en mode numérique bien plus rapidement qu'il pourra l'être avec le convertisseur analogique digital .

Un ampli op en montage inverseur (c'est le plus simple à comprendre) de gain 3 et une tension de polarisation (crée avec un pont de résistance) de 2,3 V , appliquée sur l'entrée plus, recentre le signal :
Ve = 1,8V ---> S = 3,8 V
Ve = 1,8V + 1 V ---> S = 0,8V ( si je ne me suis pas vautré dans les calculs)
Bien sûr le signal est inversé mais je pense que prendre en compte cette inversion par la programmation n'est pas insurmontable.
Des schémas non inverseur sont possibles mais d'un abord moins simple (il me semble mais je peux me tromper) pour un non habitué..

NB :
Pour le calcul c'est simple , on considère que l'AOP est idéal.
Ce qui impose :

  • les impédances d'entrée sur les entrées + et - sont infinies --> il n'y entre aucun courant.
  • Le gain en boucle ouverte est infini --> ce qui impose que les entrées + et - sont exactement au même potentiel sinon le niveau de sortie serait infini ce qui n'est pas le cas.
    Le reste n'est qu'une application de la loi d'Ohm.