ESP32 gestion de transmission RS485

Bonjour je cherche à pouvoir sur mon esp soit générer un trame DMX(rs485) sur le pin 18/19, soit en recevoir une depuis les pin 22/23 puis la retransmettre en direct sur les pin 18/19 mais je ne sais pas comment gérer cela (la retransmission surtout ), j'ai essayé la chose suivante:

digitalWrite(18,digitalRead(22));

digitalWrite(19,digitalRead(23));

tout le reste du programme fonctionne il ne me manque que cette gestion de réception émission.

En espérant que vous puissiez m'aider

Emilien

quid des tensions pour le rs485 ??

vous utilisez un module de ce genre ?

oui exactement mais pour vous exposé un peu plus ma problèmatique voilà:

On a soit:

Boitier Dmx1 ----------- | Esp32|--------------- ligne DMX

soit:

Esp32--------------- ligne DMX

J'ai un boitier dmx qui est allumé constamment mais je souhaite que de temps en temps mon esp32 puisse prendre le dessus sur la ligne dmx et donc émettre son propre signal.

C'est pourquoi j'ai besoins de faire une sorte de bypass je pense mais je ne sait pas trop comment faire cela c'est la seule chose qu'il me manque pour finir ce projet.

Merci de votre reponse !
Emilien

vous pouvez faire un dessin avec tous les composants ?

en gros vous voulez changez dynamiquement de master ? que va-t-il se passer pour votre Boitier Dmx1 si vous vous mettez à balancer des signaux incompatibles sur la ligne ?

emilien386:

digitalWrite(18,digitalRead(22));

digitalWrite(19,digitalRead(23));

Non, pas du tout, là tu copies 1 bit à peu près n'importe quand.
Il faut utiliser un (ou 2) objet(s) de type Serial (ou SoftwareSerial), quelque chose comme :

if ( Serial1.available() > 0 ) {
 c = Serial1.read()
 Serial2.write ( c );
}

la question c'est plutôt quelle frame va arriver si elle n'est pas destinée à ce module et la notion de master et slave à mon avis...

Bonjour,

  1. l'esp32 est en 3v3, si on utilise un transceiver en 5v, il faut adapter le niveau en réception

  2. on peut comme sur ton schéma l'insérer dans le dispositif avec une ligne rs485 de chaque côté,
    charge au soft d'intercepter ce qui vient du master et le retransmettre - ou pas - vers la ligne, et d'y ajouter - ou pas - ses propres commandes
    quand l'esp32 est en train d'émettre ses propres trames, il doit mémoriser celles venant du master et les retransmettre en différé dès que possible
    bien entendu, il ne faut pas morceler les trames mais attendre qu'elles soient reçues entières avant de les retransmettre (entières !), donc il faut un peu de décodage en réception

Bonsoir
Il existe des transceivers rs485 en 3/5v, SN65HVD08P par exemple.
Ensuite pour faire ce que tu veux faire je te conseille d'utiliser une libraire Dmx, il en existe au moins 2 pour l'esp32.