Comment utiliser deux modules sur le port Hardware

Bonjour,
Je suis arrivé à la conclusion que je dois utiliser mon module GPS et mon module OpenLog sur mon Hardware Serial, soit les pin 0 et 1 de mon Arduino Mini Pro.

J'ai plusieurs jours chercher à comprendre mon problème et après des testes, OpenLog fonctionne correctement sur le port Hardware.

Le GPS que j'utilise présentera la meme problématique.

Je souhaiterais savoir ce que vous me proposeriez de faire pour arriver à ceci en image
http://www.hello-web.net/temp/switch.png

L'idée serait d'utiliser un IC qui fait office de switch. Quand je mets un pin à HIGH il connect le GPS au Arduino, quand je mets cette meme pin à LOW, il connect mon OpenLOg.

Quand pensez-vous?
Comment feriez-vous?

J'aimerais encore préciser un truc. Si mon SIM900 n'a pas de réseau GSM, les positions GPS ne pourrons pas etre envoyées au server. C'est là qu'intervient la carte SD de l'OpenLog.

Le "IC swicth" va souvent permuter. Quand le GPS a une coordonée, il va la sauver dans un buffer, le "IC switch" va permuter, et les données du buffer vont être sauvées sur la carte SD, et le "IC switch" va repermuter pour que la prochaine coordonée puisse être traiter

Merci pour vos lumières

Bonjour,

Y a t-il une limitation a NE PAS utiliser le SOFTWARE SERIAL ?
Tu pourrais utiliser le HARDWARE et le SOFTWARE simultanément...

Sinon, pour commuter, si tu n'as pas de problèmes de consommation, un simple relais à 2 inverseurs fera l'affaire.
4 transistors MOSFET ou un circuit spécialisé le ferons aussi.

Un peu d'électronique comme j'aime...

Le CD4066 ,CD4016 est ton ami..

petite recherche pour trouver que ces circuits renferment quatres switch bi-directionnels.

Bonne bidouille.

Yan_duino

Salut,

Si tu veux BEAUCOUP te simplifier la vie, regarde les module avec le SIM808 :wink:

Hello,
merci pour vos réponses.

@Yan_duino
Alors parlons d'électronique :o), si tu veux bien un momenet. Je ne connais pas cet IC.
J'ai rapidement regardé la doc et si je comprend bien je dois faire comme ceci?
J'ai fait un petit dessin. Pourrais-tu me corriger?
Schema du cd9066
On est aussi d'accord qu'il peut etre alimenter avec une batterie de 3.7V?

@Batto
Tu vuex dire SIM908? Le SIM908 n'est plus construit. Je travaillais avec celui-cui jusqu'a ce que j'aprenne ceci. Donc je suis revenu avec le SIM900 qui est en fait la base. Maintenant, si tu parle du SIM808. Je ne le connaissais pas. Mais ca me demanderait beaucoup de travailler de passer au SIm808 alors que je suis presqu'au bout, mais c'est intéressant de savoir qu'il y a le SIM808, au cas ou. Connais-tu la différence entre ls SIM908 et le SIM808?

Es-ce que le cd4053 ou le cd4052 ne pourrais pas aussi faire l'affaire?
Je ne suis pas sure de mon cablage, c'est la premiere fois que je vois ceci.
http://www.hello-web.net/temp/cd4053.jpg (en haut c'est cd4052 et en bas c'est cd4053, si je ne me trompe pas)
Aussi selon le cd4052 (si c'est le bon)
si je me trompe pas, le controle se fait selon le tableau de la page 18, n'es-ce pas?
http://www.ti.com/lit/ds/symlink/cd4051b.pdf
Je met un 0 et 0 sur A et B pour avoir le GPS et un 0 et 1 sur le A et B pour avoir l'OpenLog.

Au risque d'insister, mais as-tu NÉCESSITÉ de passer par le SERIAL HARDWARE ?

Ne serait-il pas plus simple d'utiliser le SOFTWARE SERIAL et de créer 2 connexions ( 2 fois 2 pins) ?

Salut tk5ep,
Ben ca fait deux jour que je troune sur ce probleme. C'est comme ceci que je le faisait initialement et je suis arrivé à la conviction qu'OpenLog fonctionne bien sur Hardware Serial. En revanche sur le Software il déconne après la lecture d'env 70 caracteres. En effet, je n'ai toujours pas compris pourquoi mais après avoir essayé sur une une platine d'essai spécialement pour comparer le comportement de l'OpenLog sur Hardware et le Soft.

De plus le GPS me retourne aussi plus de 200 caracteres, donc j'aurais le meme probleme quand il passera par le Software. En revanche il fonctionne très bien sur l'Hardware. Donc je prefere tourner sur une solution avec un cd4052/53 sur l'UART (0,1). Aussi l'avantage, c'est que le SIM900 sera toujours en communication avec le controller. En effet, il n'aura pas t'interruption, en passant d'un port Serie à un autre avec la fonction monport.listen();. Ainsi le controlleur pourra toujours gérer l'arriver des SMS et eventuellement un call.

OK,

Dans ce cas, tu peux utiliser un 4053 ou 4066. Il te faudra soit un inverseur logique externe ou pour l'éviter tu peux utiliser 2 pins de l'Arduino, un étant à 1 et l'autre à 0.

Pour le 4053 tu mets TX Arduino sur 4 , RX sur 15.

TX GPS sur 5, TX Openlog sur 3
RX GPS sur 2, RX Openlog sur 1

Tes 2 pins de commande sur 9 et 10. Un étant à 0 et l'autre à 1.

Je pense que ton problème en SOFT est un problème de vidage du buffer.. Il y a eu un post il a peu à ce sujet...

Je te remercie pour tes précisions.
Mais quel est la difference avec le 4052. Il ne peux pas faire l'affaire? J'ai l'impression qu'il est plus petit et suffisant

Alors mon dessin n'était pas si faut :slight_smile: :slight_smile:

et le INH, je le met à 0 aussi, non?
Excuse moi pour ma question stupide, mais le VDD c'est le 3,7V, le le Vss c'est la masse et qu'es-ce que je fais avec le Vee? Je le laisse ouvert?

Milles milles mercis pour tes lumières

Je pense que ton problème en SOFT est un problème de vidage du buffer.. Il y a eu un post il a peu à ce sujet...

oui je pense aussi....

Le 4053 est mieux adapté à ton besoin, le 4052 ne fait pas inverseur.

Les boîtiers sont identiques.

INH doit être à la masse.

Les entrées non utilisées sont à mettre à la masse ou VDD, on ne laisse pas d'entrée en l'air en CMOS.

VDD est au + 5V ou 3V3 selon ton cas. Je n'ai pas vérifié, mais s'agissant de CMOS la tension peut aller de 3 à 15V.

VSS et VEE à la masse.

Tu peux faire la même chose avec 4 MOSFET si tu as ça sous la main.

Bonne bidouille !

Super!!
MERCI pour ces précisions. Je vais commander le 4053 demais je suis impatient d'essayer ceci.
Je vais rester sur le 4053 et peut etre que j'aurais une ou deux petites questions. Mais là, je pense que le prochaine étape c'est de mettre ceci en application :slight_smile:
PS mon circuit fonction avec une Batterie Li 3.7V et il me semble avoir vu que va ne cause pas de problème au 4053

Hello,
Alors j'ai recu et j'ai fais les connections. Je me demande si je controlle bien le CD4053.

Voici mes connections
http://www.hello-web.net/temp/cd4053.jpg
Ce que je n'arrive pas comprendre c'est comment je dois mettre B et C pour avoir soir l'Openlog ou le GPS connecté au Tx et Rx de L'arduino.

J'ai essayé de mettre
la sortie (pin de 8 de l'arduino => pin 9 de 4053) à LOW et
la sortie (pin de 9 de l'arduino => pin 10 de 4053) à LOW
en espérant avoir l'Openlog en action

puis
la sortie (pin de 8 de l'arduino => pin 9 de 4053) à LOW et
la sortie (pin de 9 de l'arduino => pin 10 de 4053) à HIGH
pour avoir le GPS

A la page 4 de la
Datasheet, il ne mettre que deux possiblités.
Alors je doute.

Qu'en pensez-vous?

Merci!!

Suis ce que j'ai écrit dans mon précédent message...

Ca devrait marcher !

Mais il me semble l'avoir fait?
Le seul truc que je n'ai pas fait c'est d'avoir mis la pin 11 du 4053 à la masse. Chose faite maintenant.
Mais es-ce que les pin 14, 12 , 13 doivent aussi être à la masse?

Avant même que tu me réponde, si 12, 13 sont des entrées, ben oui, mais la 14, dois-je la considérée aussi comme une entrée?

Sont considérés comme entrées, les pins d'entrée des inverseurs 4, 15, 14.

  • les pins de commandes de ces switchs, respectivement 9, 10, 11.

Les sorties de ces switchs sont respectivement 3, 5 et 2, 1 et 12, 13.

Si tu n'utilises pas le switch 14, 12, 13 il te faut alors mettre les pins 14 et 11 à la masse (ou au +)
12 et 13 sont des sorties à ne pas mettre à la masse !

Si la tension de commande sur la pin 9 est à 0, alors le switch laisse passer entre 4 et 5. Si la commande est à 1, alors le switch laisse passer entre 4 et 3.
Ca ne passera jamais entre les sorties 3 et 5.

Idem pour les 2 autres inverseurs.

C'est + clair ?

Super tk5ep

Merci pour tes explications très clairs, mais ça ne marche toujours pas. J'ai pourtant vérifier mon câblage et mon code. Je vais encore regarder ça aujourd'hui hui a tête reposée.

Petite question, es-ce que je devrais utiliser une Zener et une résistance sur les Tx de mes deux module et mettre un pull up sur les Rx?

Bonjour,

Regarde s'il n'y a pas d'inversion de fils... Les TX vont vers les RX, et inversement.

As-tu bien positionné les tensions de commande ? A savoir 1 (HIGH) sur une des 2 commande et 0 (LOW) sur l'autre. Il ne doit pas y avoir le même niveau sur les 2 sous peine de conflits !

Comment as-tu géré ça ?

Non, pas besoin de protection si toutes tes alimentations sont en 5V

Hello,
Oui j'ai toute essayé, Tx, RX , 11, 10, 9 LOW et HIGH, toutes les posibilités

Par cont rmon circuit est alimenté en 3.7V, pas en 5V. Ce soir j'essayerai en 5V.

3V7 ou 5V, ce n'est pas le problème...

Il te faut d'abord lever le doute sur la connexion DIRECTE entre ton Arduino et ton GPS seul par exemple. Repère bien les connexions TX Uno RX GPS, et RX Uno TX GPS.

Si tout fonctionne, tu passes à la phase suivante en testant le 4053. Pour cela il te faut un voltmètre. As-tu ça ?