[QST] Multiple module sur RxTx ?

Bonjour, puis-je mettre deux module sur le même RxTx (0,1) ?

Je souhaite connecter un écrans Nextion 2.4" et un bluetooth.

ARDUINO PIN RX --- TX Ecran
ARDUINO PIN RX --- RX Ecran
--- TX BT
--- RX BT

Merci !

Électriquement ça doit être possible, mais les deux modules recevront les mêmes messages, ce qui ne doit pas être le but recherché. Utilise plutôt la bibliothèque SoftwareSerial pour créer un port série supplémentaire. Le forum et le web regorgent d'exemples d'utilisation.

Oui mais non, j'avoue j'ai taper mon message trop vite.. il me manque justement deux pins et j'aimerais éviter Software Serial ou un PCF pour rajouter des io.. :slight_smile:

Salut

La RS232 n'est pas un bus, c'est du point à point.

@+

Je ne vois pas de solution, peut-être faut-il chercher à libérer deux pins ailleurs pour le SoftwareSerial

Tu sais que les pins analogiques A0 à A5 peuvent être utilisées comme I/O numériques ?
A moins que tu aies besoin de 8 entrées analogiques ?

Sinon, PCF8577, MCP23008, etc.
Cela mobilise l'I2C, A4 et A5.

EDIT

Si la carte en question est une UNO, NANO, MINI, etc., ce que tu ne précises pas

@+

La RS232 n’est pas un bus, c’est du point à point.

et si on mets un 3e larron c’est '"poing à poing"ou “bras de fer”…

Alors désoler pour le manque de précision, c'est sur un uno.
J'avais libérer le 3 et 4 pour le software serial. mais j'avoue que pouvoir récupérer la pin3 pour ton interup ( et en avoir deux du coup) m'arrangerais pas mal !

Ensuite pour les A0-A5 je le savais mais jamais tester, ca resoudrais pas mal de soucis effectivement ! Quelle commande utilise t'on pour faire du 0-5v sur le A0-A5?
Merci !

Note qu'au final j'aurais cette configuration si :

0,1 : Ecran
3,4 : bluetooth (Software serial)
8,9 : GPS (Software serial)

le reste pour le SPI et autre IO

Ca ne pausera pas de soucis ?

AO à A5 entrées analogiques : Arduino écrit des conneries !

Ils refusent de modifier leur site malgré les nombreuses demandes et ils font ch*ier.

La SEULE documentation correcte est la datasheet du micro le Mega328p.

Dans cette datasheet on lit que toutes les E/S du micro sont numériques au démarage du micro.
Certaines E/S ont une fonction secondaire ("Alternates functions") comme celles "appellées" Tx et RX, la PWM et la mesure analogique.

L'usage est ULTRA simple ;
tu écris digitalWrite(A0, 1) et A0 est en mode numérique
tu écris analogRead(A0) et A0 est en mode analogique.

Ce sont ces fonctions Wiring copiées par Arduino qui assurent le changement de mode de fonctionnement.
Pour toi c'est entièrement transparant.

Disgression :
le nom atMega vient d'être "microchiptisé" et devient Mega

Sans oublier pinMode(A0, OUTPUT);

Juste une précision: à l' exception des broches A6 et A7 du nano qui ne peuvent être utilisées que pour l'analogique.

Sinon on peut partager plusieurs modules sur un même port série si on veut s'amuser. En envoyant un ID sur le premier octet pour indiquer le destinataire. Un peu comme pour l'I2C.

ok je vous remercie pour toutes ses infos :slight_smile:

Je terminerais donc avec deux questions :

  • Puis-je utiliser 4 et 5 pour faire du rxtx a 9600 max ? Histoire de me liberer la pin3 ?
  • Si pas, vous êtes sur que je peu mettre donc Bluetooth → atmega ← ecran Nextion ? sur le meme port series ? (Si pas je ferais avec :wink: )

Merci !

Sinon on peut partager plusieurs modules sur un même port série si on veut s'amuser. En envoyant un ID sur le premier octet pour indiquer le destinataire. Un peu comme pour l'I2C.

et tu relies ensemble les TX des divers périphériques alors que contrairement à l'I2C ce n'est pas 'étudié pour' ??
Conflit assuré entre ceux qui veulent mettre Tx à "1" (5V) et ceux qui veulent le mettre à "0" (0V)......il y a de garnde chances pour que l'un des participants au clash encaisse ou donne trop de courant et succombe.

Comme dit plus haut par hbachetti c'est du 'point à point',
c'est pour un dialogue entre 2 participants; l'arduino et UN module.

Bonjour, puis-je mettre deux module sur le même RxTx (0,1) ?

Non. pas en direct, faisable uniquement en ajoutant une couche permettant de faire du multipoint.

Sinon on peut partager plusieurs modules sur un même port série si on veut s'amuser. En envoyant un ID sur le premier octet pour indiquer le destinataire. Un peu comme pour l'I2C.

Sauf que les périphériques en question sont des modules du commerce, et leur protocole ne prévoit pas ce genre de "mise en réseau" :
Ecran, bluetooth, GPS

Donc, pas de partage de ligne série entre ces périphériques.

@+

Ok, merci

sinon je peu utilisé 4 et 5 pour un software serial et gardé le 2 et 3 dispo pour d'autre truc ?
Merci :slight_smile:

PS (8 et 9 sont déjà utilisé par un autre software serial et 10,11,12 et 13 pour spi.)

Bien sûr.

Tu développes quel genre de produit ? une centrale nucléaire ?

Ma crainte est que une fois que tu auras développé ton logiciel avec écran, bluetooth, GPS + tout le reste que tu n'as pas décrit + toutes les bibliothèques qui vont avec tu ne sois obligé de migrer vers une ARDUINO MEGA.
Et là tu n'auras plus de question à te poser : 4 vrais ports série, 54 GPIOs.

Exemple : j'ai en service chez moi un arrosage automatique.

  • écran 4 lignes mode texte
  • clavier matriciel
  • relais pour la vanne
  • RTC DS3231
  • deux LEDs
    Il y a bien sûr tout un bazar de formulaires de saisie pour entrer les heures et les durées d'arrosage, un enregistrement en EEPROM des données saisies, etc. etc.
    Total 834 lignes et 18376 octets de code.
    Passage à la MEGA obligatoire.

Vous êtes vraiment tous les mêmes. Vous exposez un problème purement technique sans vous donner la peine de décrire le fonctionnel.
Je suis développeur embarqué depuis 30ans. On commence toujours par décrire ce que l'on doit faire, d'un point de vue purement fonctionnel.

@+

et si on mets un 3e larron c'est '"poing à poing"ou "bras de fer"......

C'est sûr que cela risque de se bagarrer fortement. :smiling_imp:

Et un seul Tx et Rx associé à un multipleur analogique 2 fois "1 vers 4" comme le 74HC4052.
Le Mux doit être analogique pour avoir la bidirectionnalité sur TX et RX.

Cela permettrait d'adresser 4 modules, chacun leur tour, avec juste 2 lignes de commande en plus de Tx et Rx et comme à ce que j'ai compris A0 à A5 ne sont toujours pas utilisées en digital les lignes de commande sont disponibles.
Datasheet ici : 74HC4052D - Dual 4-channel analog multiplexer/demultiplexer | Nexperia

évite d'introduire une résistance série (90Ω) qui dégrade les fronts de ces derniers

En théorie, mais si on chiffre ..........
En pratique 90 ohms et quelques pF (50 pF par exemple) de capa d'entrée du micro cela fait 35 MHz de fréquence de coupure.
Si je regarde le modèle IBIS du Mega168 (le 328p ne devrait pas être différent puisque les étages d'entrée/sortie sont les mêmes) le modèle IBIS donne 0,14 pF pour le boîtier et 4,6 pF pour le composant --> avec mon calcul à 50 pF j'ai pris une grosse marge.

Pour une liaison série je pense que cela devrait pouvoir se gérer :slight_smile: .

Par contre avec le 74HC157 on ne dispose que de 3 liaisons séries au lieu de 4 avec le 74HC4052.

hbachetti:
Bien sûr.

Tu développes quel genre de produit ? une centrale nucléaire ?

Non, mais ça entrera dans une centrale nucléaire.

hbachetti:
Ma crainte est que une fois que tu auras développé ton logiciel avec écran, bluetooth, GPS + tout le reste que tu n'as pas décrit + toutes les bibliothèques qui vont avec tu ne sois obligé de migrer vers une ARDUINO MEGA.
Et là tu n'auras plus de question à te poser : 4 vrais ports série, 54 GPIOs.

Exemple : j'ai en service chez moi un arrosage automatique.

  • écran 4 lignes mode texte
  • clavier matriciel
  • relais pour la vanne
  • RTC DS3231
  • deux LEDs
    Il y a bien sûr tout un bazar de formulaires de saisie pour entrer les heures et les durées d'arrosage, un enregistrement en EEPROM des données saisies, etc. etc.
    Total 834 lignes et 18376 octets de code.
    Passage à la MEGA obligatoire.

C'est justement pour éviter a tous prix le mega que je poses ses questions. Je dois faire un circuit le plus petit possible..

hbachetti:
Vous êtes vraiment tous les mêmes. Vous exposez un problème purement technique sans vous donner la peine de décrire le fonctionnel.
Je suis développeur embarqué depuis 30ans. On commence toujours par décrire ce que l'on doit faire, d'un point de vue purement fonctionnel.

@+

Tous simplement par ce que je trouvais pas utiles de décrire la totalité du projet pour poser une question sur même pas 5% du fonctionnement du programme. J'ai juste demander si c’était possible ou autres.

Et puis, je parle d'un écran nextion qui communique sur le rxtx, d'un gps, d'un arduino et que les autres pins sont utiliser, que dire de plus ? Je t'aurai donner des infos inutile a la question.

68tjs, pepe : Merci des infos, je connaissais pas ce système, ça peu être intéressant, malheureusement le bluetooth et l'écrans envois des données a un interval aléatoire donc impossible de sélectionner quand l'atmega doit sélectionner l'un ou autre :wink:
Le double software serial et les io de A0 a A5 reste la meilleurs solution :wink:

Merci des infos !