Pages: [1] 2 3 4   Go Down
Author Topic: Comparateur de signaux  (Read 4787 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 70
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour, je souhaiterais avoir des conseils pour comparer 4 signaux assez rapidement, je dispose de 4 signaux dont 2 entrées et 2 sorties et je souhaiterais les comparer afin de vérifier qu'ils sont bien équivalent (Entrée 1 = Sortie 1 & Entrée 2 = Sortie 2), ces signaux permettent d'indiquer une position X (Signal 1) et Y (Signal 2), en 1 seconde ils indiquent 20000 positions chaqu'un, on m'a conseillé d'utiliser un CAN externe afin d'augmenter la rapidité, que pouvez-vous me conseiller ?
Merci
Logged

france
Offline Offline
God Member
*****
Karma: 15
Posts: 868
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

* Signaux numériques -> 3 portes logiques pour combiner les entrées en amont de la carte Arduino
(x = a1.a2 + b1.b2  vaut 1 seulement si a1=a2 et b1=b2)

* Signaux analogiques -> on veut comparer quoi exactement, leur bonne synchronisation, la phase, la tension ?
Un ampli op permet d'additionner et soustraire des tensions sous forme analogique, il n'est sans doute pas utile de convertir en numérique.
Logged

Christian

Offline Offline
Jr. Member
**
Karma: 0
Posts: 70
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

C'est de l'analogique qui varie 0v/24v, en gros j'ai deux moteurs j'envoi un signal qui le fait bouger dans un angle de 45° et au final si j'ai 12v/12v sur chaque axe c'est au milieu, si j'ai 0v/12v le moteur X est a une extrémité d'angle et le Y au mileu,etc...
Mon but est de comparer le signal d'entrer et celui du retour pour voir si le moteur a bien la bonne position.
Logged

Bretagne
Offline Offline
Edison Member
*
Karma: 16
Posts: 1395
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut.

C'est une sorte de servomoteur que tu veux faire c'est ça? si tu commandes tes moteurs en PWM, tu devrais pouvoir y arriver avec soit une simple régulation genre analogWrite(pin_mot, v_milieu + v_cons - analogRead(pin_ret)), mais je pense que tu dois pouvoir trouver des gens qui ont déjà réalisé des servomoteurs "maison" en fouillant un peu
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 70
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Je veux rien piloter, c'est des galvanometres piloté depuis un circuit externe, je veux juste vérifier que le signal entrant sur ce circuit est le même que celui de retour. (pour vérifier que le galvanomètre est bien fonctionnel).
Logged

France S-O
Offline Offline
Edison Member
*
Karma: 41
Posts: 2236
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Je pense qu'avec une adaptation des niveaux il possible de s'en sortir rien qu'avec des ampli opérationnels et comparateurs comme les LM358 et LM393.
http://www.datasheetcatalog.org/datasheet/nationalsemiconductor/DS005709.PDF
voir les exemples d'application et particulièrement page 7 le montage "Limit Comparator".
Vref_low est la tension Va 
Vin  est  Vb.
Vref_high= k.Va --> par exemple pour une égalité à 10% prés k=1,1. Le gain k est obtenu avec l'ampli opérationnel.

Le transistor et la lampe ne sont bien évidement pas utiles mais la résistance R=10k est indispensable, le LM393 est à collecteur ouvert c'est ce qui rend possible le "OU" cablé. Bien entendu il est possible de changer sa valeur en fonction de ce qui y sera raccordé.

Vb < Va(Vref_low)                     --> S=0
Va (Vref_low) < Vb < Vref_high   --> S=1
Vb > Vref_high                         --> S=0

C'est je pense la configuration qui sera la plus réactive.


Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 70
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai du LM358 de dispo, sinon je viens de vérifier les tensions, l'entré est déjà à 0v/5v la sortie par contre 0v/24v, je pense donc utiliser un LM358 pour atténuer la sortie afin d'obtenir 0/5v, et ensuite utiliser le montage que tu m'as présenté, cependant avec celui-ci j'obtiens seulement une valeur différente lorsque la marge d'erreur est dépassé ? Sur mon arduino je récupère au final qu'un bool du type false = signal trop différent, true = signal OK.
Et n'y a donc aucune manière d'obtenir les valeurs des positions sur l'arduino ? Par exemple pour les afficher sur un axe gradué sur une application externe. Cependant je préfère privilégier  la rapidité et la fiabilité, car cette fonction à pour but de sécurité.
Merci 
Logged

France S-O
Offline Offline
Edison Member
*
Karma: 41
Posts: 2236
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Sur mon arduino je récupère au final qu'un bool
Oui c'est du go/nogo. Entre les limites c'est ok, en dehors, quelque soit le sens, c'est KO

Si tu as besoin de plus de précision, et en particulier si tu désires connaître la vraie valeur de l'écart, et/ou son sens, le montage ne convient pas tel quel.
De plus si c'est pour de la sécurité il y a un risque d'instabilité de la sortie quand la tension B sera très proche des bornes.

Le passage de 0/+24V à 0/+5V ne peut-il pas se faire avec un simple pont diviseur ?

Tant que le schéma reste simple l'avantage est au traitement analogique, si les contraintes imposent de compliquer le schéma il faut se reposer la question d'un traitement numérique. La mise au point d'un schéma analogique un peu compliqué demande d'avoir pas mal de valeurs de résistances en stock.
Logged

Ales
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3628
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

+1 ! Pont diviseur + portes logiques ...
Logged


Bretagne
Offline Offline
Edison Member
*
Karma: 16
Posts: 1395
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

C'est sûr que si tu veux récupérer la position exacte, ça va se compliquer un peu, car analogRead ne récupère qu'une plage de 1024 valeurs (donc une précision limitée à +/-5% sur les 20 000 valeurs 0-24V). c'est possible de récupérer une valeur sur 16 bits, mais ça demande un peu de câblage et de prise de chignon, avec une suite de lectures analogiques sur 2 entrées différentielles et une échelle variable qui ajustera la plage de conversion en fonction des mesures précédentes...

un simple pont diviseur suffit, pas besoin d'un préampli (sauf si au départ, tu as une grosse impédance)... par contre, il te faudra générer une tension de référence (un potar multitour, ça peut marcher)...
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 70
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai du stock en résistance et potard, après récupérer les valeurs c'est pas une grande nécessité, je veux juste quelques choses de fiable et rapide et voir simple...Le souci c'est que j'ai peu de connaissance en électronique mais plus en programmation, du coup simplement adapter les tensions est complexe pour moi j'vais me renseigner sur les ponts diviseurs.
Apres si c'est pas trop complexe pour récupérer les valeurs je veux bien test.
Au final j'veux juste savoir si mon galvanometre bouge et fait bien la position demandé...et avec le montage montré rien m'informe que ce sont les mêmes valeurs (signal fixe = galvanomètre fixe).
« Last Edit: September 24, 2012, 01:43:34 pm by ProgramFiles » Logged

france
Offline Offline
God Member
*****
Karma: 15
Posts: 868
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Adapter les tensions se fait avec 2 résistances bien choisies


Logged

Christian

Offline Offline
Jr. Member
**
Karma: 0
Posts: 70
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Donc en théorie une résistance 20ohms et 76ohms permettrait de partir d'un signal analogique 0v/24v en 0v/5v (J'met juste un potard sur la 76ohms pour régler avec précision) ? Sinon pour ce qui est de la précision c'est pas non plus le plus important, c'est surtout en cas qu'un galvanomètre soit HS (bouge plus, ou fait vraiment autre chose que le signal d'entrer) je dois êtres informés sur l'arduino.

Sinon une question, quel est la différence entre ce montage ou celui avec un AOP pour abaisser les tensions ?
Logged

France S-O
Offline Offline
Edison Member
*
Karma: 41
Posts: 2236
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Au final je veux juste savoir si mon galvanometre bouge et fait bien la position demandé...et avec le montage montré rien m'informe que ce sont les mêmes valeurs (signal fixe = galvanomètre fixe).
Avec l'ampli op j'ai crée une zone:
La borne inférieure de la zône est la tension qui correspond à la position que tu veut imposer.
La borne supérieure est une tension qui est le résultat de la tension précédente multipliée par un coefficient.
L'égalité parfaite n'existe qu'en mathématique, en physique tu es toujours égal a une précision prés : 1,1 ou 1,01 ou 1,001 etc..
Dans mon exemple j'ai choisi, tout à fait arbitrairement de comparer entre +0% et+10%. C'est à dire que si la consigne est 8 le circuit dira OK quand le retour indiquera une tension entre 8 et 1,1x8 = 8,8.
On peut décider d'être plus précis: avec 1,01 on comparera entre 8 et 8,08 .
Avec deux ampli op on peut créer une limite inf = 8/1,05 et une limite sup = 8*1.05 si tu préfère être centré de part et d'autre de la position de référence.
Tant que la sortie du circuit indiquera un "1" logique cela voudra dire que le galva suit dans la limite de la précision choisie (1,1 ou 1,01).
Si la sortie passe à "0" logique cela voudra dire que le galva ne suit pas.
Les  sorties des deux comparateurs forment un "OU" câblé pour optimiser le nombre de boîtiers. Mais on peut les dissocier ce qui donnera l'information si le galva est dans un sens ou dans l'autre mais il faudra d'une manière ou d'une autre recréer cette fonction logique soit avec un circuit intégré soit en programation.

Mais un point que je n'avais pas vu me perturbe : c'est quoi ce chiffre de 20 000 points en 1 seconde ?
20 000 mesures par seconde cela correspond à du 50 MHz.
En analogique cela ne passera pas à moins d'utiliser des circuits haute-fréquences dont la mise en oeuvre n'aura absolument rien de trivial.
Quant à utiliser un CAN je n'ose imaginer la fréquence d'horloge nécessaire.
Je pense qu'une précision s'impose.

Et puis qu'est ce que tu appelle un galvanomètre ?
Un appareil à aiguille ? Un voltmètre à l'ancienne ?
Un appareil appelé "galvanomètre à cadre mobile" qui est hyper sensible et où le fil du cadre comporte un miroir qui détourne un rayon lumineux ?
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 70
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

C'est du galvanomètre utilisé dans les lasers de spectacle..., apres celui ci peut faire 20000points secondes.
Logged

Pages: [1] 2 3 4   Go Up
Jump to: