Go Down

Topic: [RESOLU] Relais 5V pour signal servo (ex-Recopier l'état d'un PIN en temps réel) (Read 9525 times) previous topic - next topic

Super_Cinci

ne pas confondre temporel et analogique... l'analogique se réfère au niveau du signal en volts, et c'est tout. le temporel est le temps en secondes entre deux "états" précis. (ne me laissez pas seul à le dire, ce serait une insulte à tous les profs d'électronique qui m'ont eu en cours...) un servo a besoin d'une impulsion logique, c'est tout.

je prends l'exemple d'une liaison série : c'est du numérique (des 1 et des 0), mais le temps entre un 1 et un 0 est super important! Pourtant, on utilise toujours des circuits logiques pour faire circuler un signal série...

Une porte logique n'a rien à péter de la valeur temporelle, elle ne considère que l'amplitude su signal : 1 ou 0. Dans un circuit de commutation analogique, ton signal de servo aura des slew-rate trop importants, et les servos sont très sensibles à la forme du signal.

Il serait intéressant que quelqu'un puisse nous fournir des exemples concrets (je n'ai que ma tête pour cela), comme le spectre d'un train d'impulsions servo par exemple, car n'étant pas symétrique, ce signal a des harmoniques de fou! (donc un spectre fréquentiel très large), qu'une porte logique ne déformera pas, mais une "porte" analogique va lisser grave, modifiant ainsi le "timing analogique" dont tu parles...

Bref, j'ai donné mon avis, si tu veux rester dans l'analogique, tu reviendras tôt ou tard car ta commande servo sera bien trop déformée!

je serais aussi surpris qu'un mux analo soit moins cher qu'un mux logique... (et je le répète : avec ma solution, tu aiguilles autant de signaux logiques que tu veux avec seulement un bit...) ne perds pas ton temps avec un registre à décalage...

68tjs

Pour compléter ce que dit SuperCinci, et abonder dans son sens, j'ajouterais que  traiter le signal "numériquement" est fondamentalement différent que de le traiter "analogiquement".

Un traitement analogique "respecte du mieux qu'il peut" le spectre du signal (a sa capacité en bande passante près, a sa distortion harmonique prés et a son facteur de bruit prés).
Il est compréhensible de voir que quand on cascade 10 amplis de 10 Mhz de bande passante, la bande passante résultante sera à peine de quelques Mhz.

Un traitement numérique "détecte un niveau logique à partir de la comparaison d'une tension" et décide s'il a affaire à un "0" ou un "1" logique.
Les étages de sortie des portes ne sont pas linéaires et ne possèdent que deux états stables : 0V ou Vcc.
La commutation d'un état à l'autre se fait très rapidement donnant un signal carré.
Il y a donc "régénèration  du signal". C'est là la différence fondamentale.



Distortion harmonique :
Quand un circuit n'est pas parfaitement linéaire, c'est à dire quand la sortie n'est l'exacte recopie de l'entrée au gain prés, il va créer de lui même des fréquences du double de celles qu'il reçoit en entrée.
L'explication se trouve dans la formule de trigonométrie sin2(2*PI*f)= 1/2(1+cos(2*PI*2f)

Facteur de bruit :
Un semiconducteur émet toujours des tensions de bruit  (mouvement aléatoire des électrons, agitation d'origine thermique etc). C'est particulièrement gênant quand le niveau du signal a amplifier est trés faible comme celui qui sort d'un microphone par exemple.

UniseV

#17
Jun 28, 2012, 06:03 pm Last Edit: Jun 28, 2012, 06:14 pm by UniseV Reason: 1
Ho lala je regrette un peu de ne pouvoir vous suivre dans toutes vos reflexions... :smiley-roll-sweat:
En tout cas je vous remercie pour votre acharnement  ;)

Ce que je comprends, en vulgarisant :
A partir du moment ou je rentre dans une "puce", mon signal peut être déformé.
Je ne peux donc pas esperer un signal "linéaire", y compris dans le temps, ce que je croyais pouvoir espérer, comme d'un "relais" ou d'un "commutateur" dont le travail ne serait QUE de mettre en contact une entrée et une sortie, sans aucune altération du signal en ni dans la forme ni dans le temps.

A partir de là, vous me dite que le mux numérique ne sera pas plus déformant ou temporisant que le mux analogique... ça va comme ça ?  :smiley-roll-blue:

Sev

EDIT :
...et je le répète : avec ma solution, tu aiguilles autant de signaux logiques que tu veux avec seulement un bit...

Oui mais je ne peux pas commander les "aiguillages" indépendamment les uns des autres si ?
EN: Libraries are my Gurus, they make me believe anything they want !
FR: Les librairies sont mes gourous, elles me font croire ce qu'elles veulent !

Super_Cinci

#18
Jun 28, 2012, 07:08 pm Last Edit: Jun 28, 2012, 07:12 pm by Super_Cinci Reason: 1
Je me (re)lance...

je t'ai fait un graph pour t'expliquer comment ton signal va être transformé en passant par un module analogique :



en haut et en rouge : le signal d'origine, du bon vrai logique, qui passe à 1 à l'instant t0 (et t0') et repasse à 0 pour t1 (et t1'). il n'a rien d'analogique, le changement d'état est tellement rapide qu'il devient immédiat.

au milieu, la sortie de ton circuit analogique : l'analogique ne peut pas recopier un brutal changement de valeur de l'entrée, car son slew-rate est limité à qq dizaines voire qq centaines de µV/s selon la qualité et le prix (pente de la courbe bleue : il ne peut pas monter plus vite que ça). la ligne violette est la référence pour laquelle le circuit qui reçoit le signal (servo par exemple) va considérer si c'est un 1 ou un 0 (la courbe bleue au dessus : c'est un 1, en dessous, c'est un 0.

En bas, ce que va interpréter le servo. comme ton circuit analogique n'a pas les mêmes slew-rate en montée et en descente, la courbe marron n'est pas la même que la rouge d'origine, et surtout, t3-t2 n'est pas du tout égal à t1-t0!!! manque de bol, c'est justement la durée de l'impulsion (t3-t2) qui détermine la position du servo. Je te laisse deviner les dégâts...

Bref, si on peut se dire que t2'-t2 = t0'-t0 (temps entre deux impulsions), la durée de l'impulsion n'est pas conservée. Comme quoi, l'analogique ne conserve pas les valeurs temporelles!

Dans mon exemple, j'ai mis Vref au milieu, il faut savoir que ce n'est pas toujours le cas. imagine si Vref = 0.3 x Vcc (un tiers), alors descends la ligne violette, et imagine que l'impulsion obtenue pourrait durer beaucoup plus que celle de départ...

Un circuit logique a un temps de réponse de l'ordre de la nS (nano-seconde, 1 ns = 0.001µs), soit 10 000 à 50 000 fois plus rapide que le circuit analogique... là, ce temps de réponse devient négligeable devant la précision du servo.

il existe tout un tas de circuits répondant à tout un tas de besoins... il faut se fixer un besoin, et si le circuit n'existe pas, alors il faut modifier le besoin. C'est l'avantage de la bidouille! Dans l'industrie, on le fait fabriquer, ce circuit.

Bon courage!

UniseV

#19
Jul 17, 2012, 08:26 pm Last Edit: Jul 17, 2012, 08:31 pm by UniseV Reason: 1
Heuuu,

J'ai une question bête... les composants de mon kit snootlab sont un mystère pour moi... aucun d'eux ne pourrait-il servir de "relais" ?

Transistor de puissance x3 (Ref : TIP102)
Transistor d'usage général x3 (Ref : P2N2222AG)
Huit rangées de montage Darlington x1 (Ref : ULN2803AN)
Registre à décalage x1 (Ref : M74HC595)
Amplificateur Opérationnel x1 (Ref : LM358N)

Je partirai bien sur ce genre de montage (proposé par skywodd), avec mes P2N2222AG :
http://www.electronics-tutorials.ws/transistor/tran_7.html (Complementary MOSFET Motor Controller)

Mais le schéma montre des "Depletion-mode MOSFET"...  :(

Merci
EN: Libraries are my Gurus, they make me believe anything they want !
FR: Les librairies sont mes gourous, elles me font croire ce qu'elles veulent !

skywodd


J'ai une question bête... les composants de mon kit snootlab sont un mystère pour moi... aucun d'eux ne pourrait-il servir de "relais" ?

Avec un TIP120 tu peut controler des charges de faible puissance si tu veut :
http://www.instructables.com/id/Use-Arduino-with-TIP120-transistor-to-control-moto/
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !


UniseV

#22
Jul 18, 2012, 01:36 pm Last Edit: Jul 18, 2012, 01:40 pm by UniseV Reason: 1
Merci JLB, mais comme tu peux voir, le sujet à vécu et le titre n'est plus d'actualité, ce qui n'enlève rien à ton humour   :P.


Bonjour SuperCinci

Alors va pour un 74HC157, quadruple multiplexeur numérique 2 vers 1 qui, je comprend tout à fait, représente la réponse 'normale' au problème posé par UniseV  !
http://etronics.free.fr/dossiers/num/num20/multiple.htm


Bon je me rends à l'évidence que c'est ce qu'il me faut... en revanche, le problème avec celui-ci, c'est qu'il bascule les 4 voies en même temps... dans mon cas, je n'ai besoin que de 4 entrées et 2 sorties (la moitié) et j'aimerai pouvoir les basculer "indépendamment".

al1fch, comment as-tu trouvé celui-ci ? Utilises-tu une base de données, un site web ?

Sev
EN: Libraries are my Gurus, they make me believe anything they want !
FR: Les librairies sont mes gourous, elles me font croire ce qu'elles veulent !

skywodd


al1fch, comment as-tu trouvé celui-ci ? Utilises-tu une base de données, un site web ?

Si tu cherche des références de composants standard CD40xx ou 74HCxx tu as wikipedia :
http://fr.wikipedia.org/wiki/Liste_des_circuits_intégrés_de_la_série_7400
http://fr.wikipedia.org/wiki/Liste_des_circuits_intégrés_de_la_série_4000

Ou le on-ne peut plus connu livre "memotech électronique", disponible dans toute bonne librairie :smiley-mr-green:
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

UniseV

Merci skywodd,

Pas de 74157 sur wikipedia, al1fch doit avoir le "memotech électronique"...  ;)

Sev
EN: Libraries are my Gurus, they make me believe anything they want !
FR: Les librairies sont mes gourous, elles me font croire ce qu'elles veulent !

Artouste


Merci skywodd,

Pas de 74157 sur wikipedia, al1fch doit avoir le "memotech électronique"...  ;)

Sev

un bon debut de recherche de datasheet = alldatasheet.com
et pour le 74HC157
http://www.alldatasheet.com/view.jsp?Searchword=74HC157

68tjs

alldatasheet m'agace profondément je préfère de loin :
http://www.datasheetcatalog.com/
Qui offre "clairement" plusieurs versions des datasheets y compris les anciennes, moins belles, mais beaucoup plus fournies en exemples d'applications.

jihelbi

D'accord avec 68tjs mais au départ ton problème est un problème de logique combinatoire (qu'on appelle aussi "la glue") extrêment simple et entièrement soluble dans la porte ultrabasique 7400 (LS00, HC00, HCT00 peu importe). Juste 4 NANDs et ca suffit pour aiguiller un PWM.

Bien sur des multitudes de solutions sont possibles y compris les plus alambiquées, mais faut rester simple et ne pas oublier non plus le OU CABLÉ (avec des circuits comme le 7407 qui offrent des sorties à collecteur ouvert).

JLB

jihelbi

Ah au fait... Un servo de modélisme travaille à 50 Hz : Toutes les 20 ms le signal est haut pour 1 ms + une valeur de 0 à 1 ms qui indique la valeur angulaire (valeurs théoriques qui varient selon les servos).

Tout ca pour dire que les déformations de signal à 50 Hz ??? Pfouhh...

JLB

UniseV

Tout juste jihelbi, mais j'ajoute que la position du servo est en fonction de la durée de l'état haut (entre 1000µs et 2000µs, avec évidement un point milieu à 1500µs), la précision attendue est au maximum de l'ordre de 1 µs, donc 1 MHz.

Donc ok, ça boucle à 50Hz, mais on a tout de même besoin au mieux d'une précision de 1MHz, apparement les circuits logiques delayent seulement de quelques nanosecondes...

Alors effectivement, avec des portes logiques je devrai m'en sortir, voici déjà le tableau de vérité :



S,A,B=entrées Y=Sorties

Sev
EN: Libraries are my Gurus, they make me believe anything they want !
FR: Les librairies sont mes gourous, elles me font croire ce qu'elles veulent !

Go Up