Arduino Forum

International => Français => Topic started by: FiiiGaARDo on Apr 10, 2019, 06:37 pm

Title: Shield RS232 en panne
Post by: FiiiGaARDo on Apr 10, 2019, 06:37 pm
Bonjour,

J'ai actuellement un Shield RS232 installé sur ma carte Arduino Leonardo que j'ai raccordée à une batterie et à un PC grâce à un câble RS232. Tout va bien je relie les câbles pour connecter le RX au TX, les deux LEDs sont allumées, tout sur l'image. Mais, je me suis absenté en laissant ma carte branchée sur l'ordinateur et je reviens et les deux LEDs ne sont plus allumées. Rien à faire même si j'alimente la carte par l'ordinateur, elles ne s'allument plus malgré la configuration identique. Je me suis demandé si ça ne venait pas de ma carte ou de mon Shield mais en essayant en changeant l'un des deux ou les deux impossible, ça ne marche plus. Au passage, il n'y a pas de documentation assez conséquente je mets quand même le fichier avec.

Si quelqu'un à une idée, il peut me la proposer, Merci ;)
Title: Re: Shield RS232 en panne
Post by: FiiiGaARDo on Apr 25, 2019, 08:35 am
Quelqu'un aurait une solution, maintenant ?
Title: Re: Shield RS232 en panne
Post by: kamill on Apr 25, 2019, 09:51 am
Bonjour,

Pour voir si ta carte leonardo fonctionne, tu enlèves ton shield, tu relies TX et RX et tu lances ce programme
Code: [Select]
void setup() {
  Serial.begin(115200);
  Serial1.begin(115200);
  while(!Serial);
  Serial.begin("begin");
}

void loop() {
  while (Serial.available())
    Serial1.write(Serial.read());
  while (Serial1.available())
    Serial.write(Serial1.read());
}

Tu tapes quelque chose dans le moniteur série et il doit apparaître quand tu envoies.

Je n'aime pas beaucoup la carte leonardo car j'ai eu de nombreux déboires avec: port qui disparaît subitement ou qui change de numéro tout seul.
Title: Re: Shield RS232 en panne
Post by: FiiiGaARDo on Apr 25, 2019, 04:18 pm
D'abord merci de répondre :)

Je viens d'essayer ton programme dans Arduino et il me renvoie :

exit status 1
invalid conversion from 'const char*' to 'long unsigned int' [-fpermissive]
Title: Re: Shield RS232 en panne
Post by: kamill on Apr 25, 2019, 04:25 pm
C'est plus que bizarre. A quelle ligne?
Title: Re: Shield RS232 en panne
Post by: FiiiGaARDo on Apr 25, 2019, 04:28 pm
A la ligne 5 : Serial.begin("begin");
Title: Re: Shield RS232 en panne
Post by: kamill on Apr 25, 2019, 04:31 pm
oups, je voulais mettre   Serial.println("begin");
Title: Re: Shield RS232 en panne
Post by: FiiiGaARDo on Apr 25, 2019, 04:38 pm
Ah d'accord merci !

Ça marche parfaitement, maintenant les deux LED sur le Shield sont allumées (J'ai branché RX au GND)
Mais maintenant je modifie quoi dans le programme pour passer à travers le câble RS232 ?
Title: Re: Shield RS232 en panne
Post by: kamill on Apr 25, 2019, 04:49 pm
Tu ne modifies rien, tu enlève le strap entre tx et rx sur la carte et tu mets le shield sur la carte.
Ensuite sur le connecteur RS232 tu courcircuites les pins 2 et 3 et tu ressaies.
Title: Re: Shield RS232 en panne
Post by: FiiiGaARDo on Apr 25, 2019, 04:55 pm
Qu'entends-tu par courcircuiter les pins ?
Title: Re: Shield RS232 en panne
Post by: kamill on Apr 25, 2019, 05:01 pm
Sur le connecteur rs232 tu relies les broches 2 et 3. Su tu as des fils pour breadboard, tu peux le faire avec ça.
Title: Re: Shield RS232 en panne
Post by: FiiiGaARDo on Apr 25, 2019, 05:03 pm
C'est bon, ça a du marcher, j'ai les deux LED éteintes.
Title: Re: Shield RS232 en panne
Post by: kamill on Apr 25, 2019, 05:05 pm
est ce que tu reçois ce que tu envoies?
Title: Re: Shield RS232 en panne
Post by: FiiiGaARDo on Apr 25, 2019, 05:09 pm
Oui, ça marche !
Qu'est-ce que je fais maintenant ?
Title: Re: Shield RS232 en panne
Post by: kamill on Apr 25, 2019, 05:19 pm
Tout semble fonctionner, tu remontes ta manip et tu retestes.
Title: Re: Shield RS232 en panne
Post by: FiiiGaARDo on May 02, 2019, 09:14 am
J'ai tout remonté. Maintenant, je dois envoyer un message à travers le câble RS232 pour un afficheur lumineux défilant (McCrypt 590998), je dois le traduire en ASCII ou je le laisse comme tel ? Suis-je sensé retrouver une valeur en sortie même si je n'ai pas de COM associé ?
Title: Re: Shield RS232 en panne
Post by: kamill on May 02, 2019, 09:20 am
Il faut regarder la documentation de l'afficheur.
Généralement la transmission à ce type d'afficheur se fait en ASCII, mais il y a un protocole à respecter (code de commande, checksum, ...)
Title: Re: Shield RS232 en panne
Post by: FiiiGaARDo on May 17, 2019, 03:30 pm
Je n'arrive pas à trouver de documentation pour trouver le pin du RX et du TX. De plus, je n'arrive pas à envoyer du texte à travers un pin, faut-il utiliser le Serial ou autre chose ?
Code: [Select]
#include <SoftwareSerial.h>
const char* mes = "<ID01><L1><PA><FE><MA><WC><FE>Feu de foret declare !10<E>";
int RX = 3;
int TX = 2;
const int BTN = 0;
SoftwareSerial Panneau(12, 11);

void setup() {
  pinMode(RX, INPUT);
  pinMode(TX, OUTPUT);
  pinMode(BTN, INPUT);
  Serial.begin(9600);
  Panneau.begin(9600);
  while (!Serial) {
    ;
  }
  Panneau.begin(9600);
}

void loop() {
  if (analogRead(BTN) <= 10 && analogRead(BTN) >= 0) {
    Serial.println("Bouton 1");
    Panneau.println(mes);
  }
    else if(analogRead(BTN)<=150 && analogRead(BTN)>=130){
    Serial.println("Bouton 2");
    Panneau.println(mes);
    }
    /*else if(analogRead(BTN)<=400 && analogRead(BTN)>=250){
    analogWrite(TX, mes);
    Serial.println("Bouton 3");
    }
    else if(analogRead(BTN)<=600 && analogRead(BTN)>=450){
    analogWrite(TX, mes);
    Serial.println("Bouton 4");
    }
    else (analogRead(BTN)<=800 && analogRead(BTN)>=700);{
    analogWrite(TX, mes);
    Serial.println("Bouton 5");
    }*/


Je vous laisse juger ce code, j'ai essayé de mettre à travers un pin ou dans le Serial ça n'actualise pas le panneau mais j'arrive à voir le courant passer avec un Voltmètre.

Merci de vos réponses et de pouvoir m'aider si je me trompe...
Title: Re: Shield RS232 en panne
Post by: kamill on May 17, 2019, 03:49 pm
Essayes déjà d'afficher simplement un message
Code: [Select]
#include <SoftwareSerial.h>
const char* mes = "<ID01><L1><PA><FE><MA><WC><FE>Feu de foret declare !10<E>";
SoftwareSerial Panneau(12, 11);

void setup() {
  Serial.begin(9600);
  Panneau.begin(9600);
  Panneau.println(mes);
}

void loop() {
}


Tu es sur de la vitesse? Tu es sur du protocole?
Title: Re: Shield RS232 en panne
Post by: FiiiGaARDo on May 17, 2019, 04:02 pm
Ça ne m'affiche rien, peut-être parce que je n'ai pas les bons pins, j'en ai essayé beaucoup mais toujours le même résultat...

Je ne suis pas expert, je ne sais pas trop ce qu'est la vitesse ou le protocole. :/
Title: Re: Shield RS232 en panne
Post by: supercc on May 17, 2019, 04:22 pm
Bonjour,

SoftwareSerial est un peu piégeux si on ne lit pas la doc :

https://www.arduino.cc/en/Reference/SoftwareSerial :

Code: [Select]

Not all pins on the Leonardo and Micro support change interrupts,
so only the following can be used for RX: 8, 9, 10, 11, 14 (MISO),
15 (SCK), 16 (MOSI).


Title: Re: Shield RS232 en panne
Post by: kamill on May 17, 2019, 04:29 pm
Je ne suis pas expert, je ne sais pas trop ce qu'est la vitesse ou le protocole. :/
Ou est ce que tu as trouvé qu'il faut envoyer "<ID01><L1><PA><FE><MA><WC><FE>Feu de foret declare !10<E>" ?
Ce n'est pas au hazard, tu dois bien avoir une doc.

Pourquoi tu n'utilises pas Serial1?
En plus de ce qu'a dit supercc ton shield rs232 ne gère pas D11, D12
Title: Re: Shield RS232 en panne
Post by: FiiiGaARDo on May 17, 2019, 04:44 pm
Ou est ce que tu as trouvé qu'il faut envoyer "<ID01><L1><PA><FE><MA><WC><FE>Feu de foret declare !10<E>" ?
J'ai trouvé une doc qui marche. (lien)
Mais si je mets Serial1 je ne peut pas choisir les pins

Not all pins on the Leonardo and Micro support change interrupts,
so only the following can be used for RX: 8, 9, 10, 11, 14 (MISO),
15 (SCK), 16 (MOSI).
Je ne sais pas lesquels utiliser vu que j'ai lié D2 à RX et D3 à TX
Title: Re: Shield RS232 en panne
Post by: kamill on May 17, 2019, 05:06 pm
Pourquoi tu veux choisir les pins sur Serial1?
Serial1 utilise le pins 0 et 1, tu configures le shield pour les pins 0 et 1
Title: Re: Shield RS232 en panne
Post by: supercc on May 17, 2019, 05:33 pm
Si tu as un second port série, aucun intérêt d'utiliser SoftwareSerial (c'est pour les pauvres (cartes) qui n'ont qu'un port série). Fait comme Kamill dit, utilise le second vrai port série n°1.
Title: Re: Shield RS232 en panne
Post by: FiiiGaARDo on May 23, 2019, 08:40 am
J'ai mis ce code vu que Serial1 se met en (0,1) :

Code: [Select]

const char* mes = "<ID01><L1><PA><FE><MA><WC><FE>Feu de foret declare !10<E>";

void setup() {
  Serial.begin(9600);
  Serial1.begin(9600);
  Serial1.println(mes);
}
void loop() {
 
}


Ça ne me renvoie rien.
De plus, je ne sais pas si change quelque chose mais je passe par 2 câbles RS232 donc le signal change ou pas ?
Title: Re: Shield RS232 en panne
Post by: kamill on May 23, 2019, 10:16 am
De plus, je ne sais pas si change quelque chose mais je passe par 2 câbles RS232 donc le signal change ou pas ?
Ca dépend. Ce sont des câbles droits ou croisés?
Title: Re: Shield RS232 en panne
Post by: FiiiGaARDo on May 23, 2019, 03:03 pm
Comment voit-on que c'en est un, c'est par rapport aux nombres sur chaque broche ?
Title: Re: Shield RS232 en panne
Post by: supercc on May 23, 2019, 03:53 pm
Bonjour, je crois que c'est juste un croisement entre les broches Rx (Receiver) et Tx (Transmiter) . Avec un multimètre tu devrais pouvoir si le Rx d'un coté est relié au Tx de l'autre coté (câble croisé) ou si le Rx d'un coté est cablé au Rx de l'autre coté (câble droit). Je ne pense pas que cela soit lié au nombre de broches du connecteur.
Title: Re: Shield RS232 en panne
Post by: FiiiGaARDo on May 23, 2019, 04:38 pm
Normalement, si le courant est nul c'est que c'est bon ?
Je peux le faire pour un câble mais l'autre va d'une entrée RS232 à une espèce de sortie "Ethernet" je ne sais pas où est le RX et le TX.
Title: Re: Shield RS232 en panne
Post by: supercc on May 23, 2019, 05:14 pm
Plutôt une résistance nulle mais c'est peut-être ce que tu voulais dire.

J'ai trouvé la doc d'un afficheur de la marque du tien ( Download MC Crypt LED Light Writing Instruction Manual) : https://www.manualslib.com/manual/1235537/Mc-Crypt-Led-Light-Writing.html?page=32#manual. Il faudrait que tu cherches dedans (dans le chapitre "Connection to a computer" il y a de gros warning ! pour le RS232). PS : désolé pour le lien plein de pub mais le pdf que j'ai trouvé était en allemand. Je te conseillerai de bien réfléchir au moindre branchement que tu fais car les tensions du coté de RS232 ne sont pas les même je pense que celles de l'arduino.
Title: Re: Shield RS232 en panne
Post by: FiiiGaARDo on May 24, 2019, 01:40 pm
J'ai fait les branchements avant de mettre sous tension ça ne marche toujours pas... :/
J'ai trouvé où sont les pins mais en essayant avec Serial1 ou un mySerial ça ne marche pas
Title: Re: Shield RS232 en panne
Post by: supercc on May 24, 2019, 02:44 pm
Perso je ne sais pas trop a quoi correspondent les schémas et je ne vois pas qu'elles connexions tu as fait.

Sinon, quel est le programme minimal (minimum de ligne de code) qui serait sensé fonctionner. Je dis cela car en cas de blocage il est souvent fructueux de circonscrire le problème à très peu de lignes de code.
Title: Re: Shield RS232 en panne
Post by: FiiiGaARDo on May 24, 2019, 04:09 pm
J'ai réussi, j'ai retiré les fils et mon programme a marché :
Code: [Select]

const int BTN = 0;
const char* mesal1 = "<ID01><L1><PA><FE><MA><WC><FE>Incendie déclaré !0A<E>";
const char* mesal2 = "<ID01><L1><PB><FE><MA><WC><FE>Éloignez-vous !F1<E>";
const char* mesgd1 = "<ID01><L1><PA><FE><MA><WC><FE>Aucun feu déclaré !37<E>";
const char* mesgd2 = "<ID01><L1><PB><FE><MA><WC><FE>Continuez votre route !2E<E>";

void setup() {
  pinMode(BTN, INPUT);
  Serial.begin(9600);
  Serial1.begin(9600);
  while (!Serial1); {

  }
}
void loop() {
  Serial.print(analogRead(BTN));
  if (analogRead(BTN) <= 50 && analogRead(BTN) >= 0); {
    Serial1.write(mesal1);
    Serial1.write(mesal2);
   

  }
  if (analogRead(BTN) <= 200 && analogRead(BTN) >= 100) {
    Serial1.write(mesgd1);
    Serial1.write(mesgd2);

  }
  if (analogRead(BTN) > 250) {
    delay(10000);
  }
}
Title: Re: Shield RS232 en panne
Post by: supercc on May 24, 2019, 04:21 pm
Bravo car moi quand je retire des fils de mes montages en général cela marche moins bien ;-)