IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Problèmes de communication avec MAX485.


Sujet :

Arduino

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 9
    Points : 4
    Points
    4
    Par défaut Problèmes de communication avec MAX485.
    bonjour,

    j'ai un problème de communication série entre un arduino MEGA et un UNO avec 2 MAX485.
    la MEGA (emetteur) utilise le port serial 1, et la UNO (recepteur) les broches 10 et 11 avec la lib. SoftwareSerial (pour pouvoir débugger par la console).

    ça semble être un pb matériel, car en reliant directement les ports serie RX1/TX1 - 10/11, tout fonctionne parfaitement.
    en passant par les 2 MAX485, plus rien...

    la UNO reçoit bien une trame serie, mais après plusieurs debugs, il appparait que le 1er carractère du buffer de réception de la UNO est un "0" (byte) et le script arrête la récupération de l'ensemble.

    j'ai essayé en modifiant les résistances de fin de ligne (avec 2 Res. de 690 ohms) sur A et B du MAX récepteur, ça ne change rien.....

    j'utilise des circuits MAX485 déjà montés sur CI courants sur le net.
    je viens de commander ces MAX485 en circuits intégrés seuls (pour pouvoir modifier plus facilement les résistances), mais en attendant de les recevoir je suis bloqué.
    les petits CI de 485 ont une resit. de 20k entre le A et le +5v, le B et la masse, et une de 120 ohms entre A et B.
    je suis tombé sur des tests ou il fallait 2 resits de 690 ohms et une de 240, j'attents mes circuits intégrés pour tester..

    j'ai aussi essayé d'utiliser directement le port RX/TX de la UNO pour ne pas utiliser la lib softwareSerial (tant pis pour les debugs), même problème....

    comme tout est OK en RX/TX direct (sans 485), c'est un pb matériel des 485 en cause je suppose.
    j'ai essayé quelques tutos et avis trouvés sur le net pour les 485, mais toujours pareil....

    si quelqu'un à une idée ou une piste, je suis preneur...
    cordialement.
    JL.

    PS:
    debug avec RX/TX directs, sans 485:

    EMISSION MEGA:
    -----> Emission vers [MAX id:2 >> per02] _#PER_SET#02:ON_

    RECEPTION UNO (avec détail du buffer);
    index= 0 -byte max485.read()= 35 --> char()= '#'
    index= 1 -byte max485.read()= 80 --> char()= 'P'
    index= 2 -byte max485.read()= 69 --> char()= 'E'
    index= 3 -byte max485.read()= 82 --> char()= 'R'
    index= 4 -byte max485.read()= 95 --> char()= '_'
    index= 5 -byte max485.read()= 83 --> char()= 'S'
    index= 6 -byte max485.read()= 69 --> char()= 'E'
    index= 7 -byte max485.read()= 84 --> char()= 'T'
    index= 8 -byte max485.read()= 35 --> char()= '#'
    index= 9 -byte max485.read()= 48 --> char()= '0'
    index= 10 -byte max485.read()= 50 --> char()= '2'
    index= 11 -byte max485.read()= 58 --> char()= ':'
    index= 12 -byte max485.read()= 79 --> char()= 'O'
    index= 13 -byte max485.read()= 78 --> char()= 'N'
    <----- Réception _#PER_SET#02:ON_
    debug avec MAX485:

    EMISSION MEGA:
    -----> Emission vers [MAX id:2 >> per02] _#PER_SET#02:ON_

    RECEPTION UNO:
    index= 0 -byte max485.read()= 0 --> char()= ' '
    <----- Réception _ _

  2. #2
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Salut,
    Citation Envoyé par lutcho Voir le message
    comme tout est OK en RX/TX direct (sans 485), c'est un pb matériel des 485 en cause je suppose.
    Si tout est ok avec Rx sur Tx d'un côté et Rx sur Tx de l'autre oui ça ne peut venir que tu RS485.

    Mettre des résistances de pull-up et pull-down est souvent une mauvaise idée, on pense fixer de cette manière l'état des broches A et B lorsqu'elles sont en haute impédance mais d'une part c'est inutile si on a pris soin du hard et notamment des broches RE/ et DE du driver RS485 et d'autre part, on se retrouverait avec un pont diviseur de tension en lieu et place de la résistance de 120Ω en fin de ligne et il faudrait changer sa valeur afin de conserver l'adaptation d'impédance (que des inconvénients pour au final faire moins bien.)

    - Est ce que tu pilotes correctement les broches RE/ et DE sur le driver RS485 ?
    - As tu placé une résistance de 120Ω en début et en fin de ligne ? (sur une grande distance c'est impératif)

    A+
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    salut et merci,

    les pins RE et DE du 485 sont reliées.
    DI sur TX, RO sur RX.

    pour la 1ère remarque
    Mettre des résistances de pull-up et pull-down ....
    je me posais effectivement la question, mais tout les schémas que j'ai pu glaner sur le net les utilisent...
    de toute façon, ces résistances sont déja incorporées sur les modules 485 (les mêmes emission/reception))
    2 de 20k et une de 120 ohms entre A et B.

    le schéma des modules 485 que j'utilise:
    Nom : MAX485-Module-Sch1.jpg
Affichages : 2671
Taille : 76,3 Ko

    quand j'aurais reçu mes circuits intégrés 485 seuls, j'essayerai sans ces résistances, avec seulement la 120 ohms de fin de ligne.

    pour le moment j'en suis à la phase des tests sur breadbord, et la liaison A/B fait 15 cm....

    les parties du code concernées:
    (le timer pour l'emission est pour les tests)

    emetteur (arduino MEGA)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    #include "Timer.h"
    #include <string.h>
     
    #define trMAX	3		// MAX485 RE/DE Transmission/Réception
     
    byte nrf[2][6]={"centr","per.."};
    bool debugOn=true;
     
    Timer tTrs;
    int evTrs=0;
     
    void setup() {
    	Serial.begin(115200);
    	Serial1.begin(9600);			// port serie MAX 485
    	pinMode(trMAX,OUTPUT);
    	digitalWrite(trMAX,LOW);		// MAX485 récepteur
    	evTrs=tTrs.every(2000,emmission);	// timer pour emission serial toutes le 2 secs
    	}
     
    void loop() {
    	tTrs.update();				// timer pour emission
    	}
     
     
    void emmission() {emissionDATA("#PER_SET#02:ON");}
     
    bool emissionDATA(String trm) {
    	debug(F("\n-----> Emission vers [MAX id:"));
    	s=trm.substring(9,11); per=(uint8_t)s.toInt();
    	debug(String(per));
    	for (byte i=0; i<5; i++) prv+= char(nrf[1][i]);
    	debug(prv); debug(F("] _"));
     
    	digitalWrite(trMAX,HIGH);					// MAX485 émetteur
    	delay(1);
    	Serial1.print(trm);
     	Serial1.flush();
     	digitalWrite(trMAX,LOW);					// MAX485 récepteur
     
    	debug(trm); debugln(F("_ ... envoi OK."));
    	}
     
     
    void debug(String prt) {if (debugOn) Serial.print(prt);}
     
    void debugln(String prt) {if (debugOn) Serial.println(prt);}

    recepteur (arduino UNO)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    #include <SoftwareSerial.h>
    #include <string.h>
     
    #define maxRX	10  	// Serial RX
    #define maxTX	11  	// Serial TX
    #define trMAX	3   	// RS485 Direction
    #define tampon	31
     
    String bufMAX;
     
    SoftwareSerial max485(maxRX,maxTX);		// RX, TX MAX485
     
    void setup() {
    	Serial.begin(115200);
    	max485.begin(9600);
    	pinMode(trMAX,OUTPUT);
     	digitalWrite(trMAX,LOW);		// MAX485 récepteur
    	}
     
    void loop () {
    	if (max485.available()) receptionDATA();
    	}
     
     
    void receptionDATA() {
    	String t, rcp=""; bufMAX=""; byte i=0;
    	Serial.print(F("\n"));
    	while (max485.available() && i<tampon-1) {
    		byte read=max485.read();
    		bufMAX+= (char)read; i++; delay(5);
     
    		Serial.print("index= "); Serial.print(i-1);
    		Serial.print("  -byte max485.read()= "); Serial.print(read);
    		Serial.print(" --> char()= '"); Serial.print((char)read); Serial.println("'");
    		}
     
     
    	bufMAX.toUpperCase();
    	Serial.print(F("<----- Réception _"));
    	Serial.print(bufMAX); Serial.println("_");
    	// if (bufMAX.indexOf("#PER_SET#02:")==0) tTrs.after(200,retourRec);
    	}
    @+

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 267
    Points : 4 829
    Points
    4 829
    Par défaut
    Bonjour à tous

    Comment sont reliés les deux MAX485 entre eux?

    Ensuite au sujet de /RE et DE
    DE doit être actif (à 1) uniquement sur le MAX qui envoie des données, si l'autre l'est aussi c'est le confis d’émission assuré! DE peut être couplé à DI (0 étant le repos / écoute) en mode multi-maître le 1 étant alors dominant et le 0 étant fournis par les résistances de polarisation du bus (Celles entre VCC et A et entre GND et B).
    /RE doit être actif donc à 0 pour que le MAX qui reçois les données les transmettent au micro, en général on le relie également à DI pour évité l'écho de l'émission, mais ce n'est pas une obligation.
    Bon apparemment /RE et DE sont gérés proprement par les deux programmes. Au moyen de la broche 3 définie comme trMAX

    Bonne journée

    Delias

  5. #5
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Salut,
    Citation Envoyé par Delias
    Bon apparemment /RE et DE sont gérés proprement par les deux programmes
    Je n'en suis pas si sur, du moins sans voir le hard !
    Comme tu le dis, dans ce shield il y a un conflit par défaut car les DE sont activés des deux côtés et, toujours par défaut, /RE n'est jamais activé donc pas de réception possible.

    Normalement l'émetteur n'a à se préoccuper que de DE (de ce côté le programme semble ok) et le récepteur doit mettre DE à 0 et /RE à 0 hors je ne vois qu'un seul trMAX = LOW dans le programme.

    Généralement, je relie DE à /RE dans mes montages comme ça quand l'émetteur envoie ça désactive la réception.

    Pour faire un essai tu n'as qu'a faire ça, sur les tes shiled relie DE et /RE.
    A+
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par Vincent PETIT Voir le message
    Salut,
    Normalement l'émetteur n'a à se préoccuper que de DE (de ce côté le programme semble ok) et le récepteur doit mettre DE à 0 et /RE à 0 hors je ne vois qu'un seul trMAX = LOW dans le programme.

    Généralement, je relie DE à /RE dans mes montages comme ça quand l'émetteur envoie ça désactive la réception.
    les pins DE et /RE de chaque 485 ont toujours été reliées ensemble (trMAX).
    le 485 récepteur a toujours DE/RE à LOW (dans le setup, et jamais modifié)...
    pour le 485 emetteur, DE/RE est à LOW, passe à HIGH seulement pour l'emission, puis repasse à LOW après vidage du buffer d'emission.

    le 485 recepteur détecte bien chaque fois qu'il y a émission, mais le 1er carractère du buffer de réception est toujours un 0 (byte).
    et empèche la lecture du buffer complet.

    et si je fais ma boucle avec avec seulement "while (i<tampon-1) {.....}", sans "max485.available() && ",
    les caractères suivants sont tous à 255 (byte).

    est-ce un pb à l'emiision ou à la réception ???? mystère.

  7. #7
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 267
    Points : 4 829
    Points
    4 829
    Par défaut
    Bonjour à tous

    Bon je repose la question, elle a dû passé inaperçue:
    Citation Envoyé par Delias Voir le message
    Comment sont reliés les deux MAX485 entre eux?
    Bonne fin de journée

    Delias

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par Delias Voir le message
    Bonjour à tous
    Bon je repose la question, elle a dû passé inaperçue:
    Comment sont reliés les deux MAX485 entre eux?
    les deux A reliés, les deux B reliés, le +5v et GND communs aux deux MAX.
    pour les A, les B et GND commun aux 2 c'est le branchement normal non ?

    edit: j'étais tombé sur un schéma (pdf pour RS-485 sur http://www.circuitcellar.com) où le bus avait un fil supplémentaire, avec une résistance de 100 ohms entre la masse de chaque 485 et ce fil de bus suppléméntaire.
    Nom : Sans titre-1.jpg
Affichages : 1302
Taille : 58,7 Ko
    j'avoue ne pas avoir encore essayé...
    mais bon pour le moment le +5v et le GND sont communs, alors...

    JL.

  9. #9
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 267
    Points : 4 829
    Points
    4 829
    Par défaut
    Bonsoir Lutcho

    Citation Envoyé par lutcho Voir le message
    les deux A reliés, les deux B reliés, .... et GND communs aux deux MAX.
    Ça c'est bon. On est bien d'accord que chaque MAX485 est relié à son Arduino par +5V, GND, Tx sur DI, Rx sur RO et trMAX sur /RE et DE?

    Citation Envoyé par lutcho Voir le message
    le +5v et ... communs aux deux MAX.
    Ça c'est pas bon, sauf dans le cas où un seul Arduino est alimenté (par l'USB ou la prise Power In) et que le deuxième reçoit son alimentation du premier. Sinon c'est à retirer. Mais cette erreur ne provoque pas ton problème, elle grillera juste l'une des deux alims à un moment ou un autre (voir les deux; loi de Murphy oblige ).

    Citation Envoyé par lutcho Voir le message
    pour les A, les B et GND commun aux 2 c'est le branchement normal non ?
    Donc oui!
    La résistance de 100ohm c'est pour casser les boucles de terres sans devoir monter une isolation galvanique. C'est nécessaire quand les masses des différents appareils sont reliées à la terre du secteur.

    Ton idée de tout afficher part d'une bonne intention, mais ne pas attendre le max485.avaiable() est une mauvaise idée, et c'est normal que tu lises des $FF (255 en décimal) à la pelle. Pour le programme de réception je ferais un truc bien plus simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    byte readed;
     
    void loop () {
    	if (max485.available()){
    		readed = max485.read();
    		Serial.print("quelque-chose incluant la variable readed");
    	}
    }
    Code non testé!

    Ensuite à titre de test, mettre le /RE et le DE de l'émetteur directement au 5V et ceux du récepteur directement à la masse.

    Après si cela ne marche pas toujours pas, je ne sais pas quoi faire. Le plus probable étant alors une inversion de fil quelque part ou un Max grillé. (Donc vérifie bien toutes les connexions )

    Delias

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Bonjour delias, et merci pour les réponses.

    Citation Envoyé par Delias Voir le message
    On est bien d'accord que chaque MAX485 est relié à son Arduino par +5V, GND, Tx sur DI, Rx sur RO et trMAX sur /RE et DE?
    exactement.

    Citation Envoyé par Delias Voir le message
    Ça c'est pas bon, sauf dans le cas où un seul Arduino est alimenté....
    j'avais fait ça pour éviter de brancher la UNO en usb, qui était alimentée par le 5v de la MEGA.
    mais quand je le branchais en usb pour debugger je pensais toujours pas à enlever cette connexion....
    je l'ai supprimée et je branche maintenant toujours la UNO en usb.

    Citation Envoyé par Delias Voir le message
    Pour le programme de réception je ferais un truc bien plus simple:
    j'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    byte val;
    void loop () {
        if (max485.available()){
            val= max485.read();
            Serial.print("- val= "); Serial.println(val);
            }
        }
    toujours pareil, ça ne lit qu'un seul caractère, un "0" (byte) à chaque réception...

    Citation Envoyé par Delias Voir le message
    Ensuite à titre de test, mettre le /RE et le DE de l'émetteur directement au 5V et ceux du récepteur directement à la masse.
    j'ai essayé aussi ça.
    pendant que j'y étais, comme j'avais 2 modules max485 neufs encore dans leur emballage antistatique scellé, je les ai aussi changés.
    j'ai vérifié, re-vérifié, re-re-vérifié, etc le cablage....

    et toujours pareil !!! ça marche en direct, pas avec les max !!!!
    j'essayerai de brancher les 485 directement avec des cables dupont M/F pour éviter la breadbord et réduire les branchements pour voir ce que ça donne...
    si ça donne rien, j'attends de recevoir les circuits intégrés 485 et tester sans utiliser les modules.

    @+. lutcho

  11. #11
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 267
    Points : 4 829
    Points
    4 829
    Par défaut
    Bonjour Lutcho

    Mets une photo de ton montage ici! Il y a peut-être une chose que tu penses faire juste (et que tu décris comme telle) alors que cela n'est pas le cas. Et un lien vers les platines avec le Max485, histoire que l'on ne aie pas à le rechercher.

    As-tu des moyens de mesurer ou visualiser les signaux? Un oscillo cela serait top. Avec du moins sophistiqué, il faudra que l'on réfléchisse plus.

    Delias, un peu à sec...

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    re-bonjour et suite des tests,

    voici la photo:
    "http://www.deauditu.eu/telech/20180725_152640.jpg"

    montage tel quel (liaison directe sans 485), ça fonctionne !!!!
    on remarque que TX1 est relié à TX (11), et RX1 relié à RX (10).

    #define maxRX 10 // Serial Receive pin
    #define maxTX 11 // Serial Transmit pin
    #define trMAX 3 // RS485 Direction control

    SoftwareSerial max485(maxRX,maxTX);
    en serial direct, normalement, il faudrait croiser, relier TX1 avec RX, et RX1 avec TX non ?

    et le meilleur....
    j'ai donc essayé de brancher les 485 comme ça:
    - pour la MEGA:
    TX1 sur RO.
    RX1 sur DI.
    RE/DE toujours sur 3.

    - et pour la UNO:
    TX (11) sur DI.
    RX (10) sur RO.
    RE/DE toujours sur 3.

    photo:
    "http://www.deauditu.eu/telech/20180725_165048.jpg"

    et miracle, ça fonctionne !!!!!!
    tout autre branchement plante .....
    j'ai remis en half-duplex (ça doit tourner comme ça quand ce sera finalisé), la UNO renvoie bien la string reçue vers la MEGA.
    ça tourne aussi sans pbs....

    si ça t'interesse, un lien vers une vidéo (43 Mo) mp4 des 2 consoles en live.

    "http://www.deauditu.eu/telech/20180725_151843.mp4"

    en haut la MEGA sur COM30, et en bas la UNO sur COM7.
    j'ai mis un retard de 500 ms pour renvoyer la string reçue par la UNO vers la MEGA.

    il y a quand-même un truc qui m'échappe là.....

    et là un doute soudain ....
    j'ai vérifié le schéma sur la doc officielle de la MEGA, et j'ai comparé à ma carte.
    je m"aperçois alors qu'il y a une petite erreur sur le marquage de la carte, et évidement sur le port serial 1...
    ils ont inversé TX1 et RX1 !!!!

    "http://www.deauditu.eu/telech/20180725_171716.jpg"

    les c..s !!! et j'ai passé une semaine à galérer à cause de ça !!!
    enfin ça marche, c'est le principal.

    encore merci pour tout et excuses pour ce compte-rendu un peu long.
    @+. lutcho.

    ps: je n'ai mis que les liens vers les photos / vidéo, fichiers trop lourds.

  13. #13
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 267
    Points : 4 829
    Points
    4 829
    Par défaut
    Bonsoir

    Alors .

    Bon cela veut dire que quand tu branchais en direct, tu branchais faux: RX1MEGA sur RXUNO et TX1MEGA sur TXUNO ou je n'ai pas tout compris.
    Après en voyant la sérigraphie, on peut se poser la question pour le port 1 car il est à l'envers des 2 et 3.

    Le problème étant résolu, je n'ai pas été plus loin dans le détail.

    Bonne suite

    Delias

    PS: pense à !

  14. #14
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    bonjour,

    Bon cela veut dire que quand tu branchais en direct, tu branchais faux: RX1MEGA sur RXUNO et TX1MEGA sur TXUNO ou je n'ai pas tout compris.
    c'est ça, j'avais récupéré un exemple d'utilisation de la lib SerialSoftware, et en constatant que ça fonctionnait en direct en branchant comme je faisais, j'en avais déduit un peu vite que dans cet exemple ils s'étaient plantés dans les commentaires de la déclaration:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SoftwareSerial max485(maxRX,maxTX);		// RX, TX MAX485
    je n'avais rien modifié dans mon code, j'avais juste inversé les fils TX/RX pour essayer, et comme ça marchait j'ai pas cherché plus loin de ce coté là....
    j'étais loin d'imaginer que c'était un pb de sérigraphie sur la MEGA !!!!!

    et je n'avais pas remarqué l'ordre différent de serial 2 et 3.

    encore merci et à+.
    lutcho.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/02/2010, 20h52
  2. Problème dans un projet ATL COM avec DLL et MFC.
    Par jamais34 dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 03/10/2007, 19h03
  3. Problème clavier avec command.com
    Par SLE dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 26/04/2006, 15h48
  4. problème JSP avec JBuilder et Weblogic 7
    Par viny dans le forum JBuilder
    Réponses: 2
    Dernier message: 24/04/2003, 08h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo