Problème d'encodage avec port série logiciel ?

Bonjour,

ça fait plusieurs jours que je galère avec mon arduino uno afin de créer un port série logiciel à l'aide de la librairie SoftwareSerial de la version 1.0.3 du logiciel (se qui correspond à la newSoftwareSerial des anciennes versions) et se en utilisant l'exemple:

#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX

void setup()  
{
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }


  Serial.println("Goodnight moon!");

  // set the data rate for the SoftwareSerial port
  mySerial.begin(9600);
  mySerial.println("Hello, world?");
}

void loop() // run over and over
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read());
}

et voilà ce que j'obtiens en sortie:

ðf~
~
~Ìþ0Ìó3füþðf~ ~ ~Ìþ0Ìó3füþ¼Õ::
:ûÚtº
Vë¼Õ::
:ûÚtº
Vë¼Õ::
:û?Útº
Vë¼Õ::
:ûÚtº
VëÀ¼Õ::
:ûÚtº
Vëà¼Õ::
:ûÚtº
VëQS£O!O¡MCO!À&KH$Ò#0y=ààÀààÀÀÀÀàÀàÀÀÀàÀÀàÀÀàÀààxÕ::
:ûité
Vë«ÓÒR¤Útºë«ÓÒR¤Útºë«ÓÒR¤ÚtºëO!MMÞ5''!¿Q!åëþ«ÓÒR¤Útºë¤«ÓÒR
ÚätéIÞ«ÃÒR
ÚätéIÞ«ÓÒR
ÚåtéIÞ

Je tiens à préciser que j'ai utilisé différentes vitesses, différents arduino (l'avantage dans posséder et dans avoir plusieurs à l'école), et que j'ai bien sur vérifier mes connections ainsi que les vitesses rentrés.
Vu que je n'arrivé pas à résoudre se problème j'ai testé la librairie AltSoftSerial trouvé sur le net et pas de changement non plus.

Complètement à cours d'idée, je viens vers vous pour savoir si vous en avez!

Il est a noté que je cherche simplement à afficher des informations sur mon PC à l'aide de se port série virtuel, le port série physique étant destiné à être utilisé par un Xbee!

Merci d'avance!

Bonjour,

Tu as connecté Rx / Tx du port série hardware aux Rx / Tx du port série software ?
Sans plus d'explication je vois pas d'où vient ton problème en fait ...

tu as déclarés dans l'arduino du 9600, et ton "soft serial" n'est pas en 9600 du coup tout par en sucette.
Regle le baudrate de ton soft a la meme "vitesse" de transmission que ce qui a déclaré dans ton arduino.

Non, j'utilise un adaptateur usb-serie pour le port série software.
Et non, au niveau du baud rate c'est bon... (C'est la première chose que j'ai regardé après le câblage)...

Après avoir posé ma question dans la partie anglais du forum (http://arduino.cc/forum/index.php/topic,149984.0.html), il semblerai que je dois utiliser un max 232, j'en ai pas sous la main donc va falloir attendre :confused:

il semblerai que je dois utiliser un max 232

Si tu nous dit pas tout c'est plus dur de t'aider.
Par contre faut espérer que l'arduino n'a pas trop morflé.

Bah cherche pas plus loin : ton adaptateur est un USB<->RS-232 pas USB<->Série UART/TTL, donc polarité inversée et tension = -12V/+12V. T'auras de la chance si ton Atmega n'aura pas morflé ...

EDIT : en fait la puce dessus est un FT232RL (identique donc à celui des Arduino Duelmilanove). Comme ils parlent de RS-232, il est probable qu'il y ait juste les polarités d'inversées. Tu peux utiliser FTPROG qui te permettra de reprogrammer le FT232RL

Bonjour,

Si c'est un adaptateur USB / RS232 ce n'est pas du tout la même chose qu'un adaptateur USB/série TTL (0v/5v contre -12v/12v pour du RS232) !
Pour ton arduino, tu peut prier pour que les deux broches n'est pas grillées.

B@tto:
EDIT : en fait la puce dessus est un FT232RL (identique donc à celui des Arduino Duelmilanove). Comme ils parlent de RS-232, il est probable qu'il y ait juste les polarités d'inversées. Tu peux utiliser FTPROG qui te permettra de reprogrammer le FT232RL

QUOI !? "reprogrammer le FT232RL" ... c'est pas bien la drogue :wink:
Dans ce genre de dongle il y a un FT232RL et un MAX232 en boitier CMS pour l'adaptation TTL/RS232, le FT232 ne ce "programme" pas en mode RS-232 ...

FTPROG sert juste à changer le VID/PID de l'usb si besoin (pour une intégration dans un produit) :

FT_PROG is a free EEPROM programming utility for use with FTDI devices. It is used for modifying EEPROM contents that store the FTDI device descriptors to customize designs. FT_PROG also includes the capability of programming the VNC1L firmware. FT_PROG is an enhanced version (and a replacement for) the previous utility used for this function called MProg as well as the VProg application.

C'est, bon c'était bien ça, un MX232 à réglé mon problème :slight_smile:
Heureusement que je n'envoyé rien vers l'Arduino, c'est l'Arduino qui envoyé vers le PC... Le pire dans l'histoire c'est que je connais les niveaux TTL et RS232 mais j'avoue ne pas y avoir réfléchit...

skywodd:

B@tto:
QUOI !? "reprogrammer le FT232RL" ... c'est pas bien la drogue :wink:
Dans ce genre de dongle il y a un FT232RL et un MAX232 en boitier CMS pour l'adaptation TTL/RS232, le FT232 ne ce "programme" pas en mode RS-232 ...

FTPROG sert juste à changer le VID/PID de l'usb si besoin (pour une intégration dans un produit) :

Désolé de te décevoir mais il y a bien plus que ça à modifier :wink: et pour faire ça on reprogramme l'eeprom :stuck_out_tongue:
Tu peux notamment changer la polarité, les fonctions des sorties digitales ... C'est comme ça que j'ai pu faire un adaptateur USB pour programmer les picaxes alors que ceux ci fonctionne justement en RS-232, et pas en UART. Après on est d'accord les niveaux ne sont pas corrects, mais dans certains cas ça passe.

B@tto:
Désolé de te décevoir mais il y a bien plus que ça à modifier :wink: et pour faire ça on reprogramme l'eeprom :stuck_out_tongue:
Tu peux notamment changer la polarité, les fonctions des sorties digitales ...

Je viens de voir ça ... on peut choisir les IO pour les led et la polarité ... Mais on peut pas le faire passer en "mode RS-232", ça reste du TTL.

B@tto:
C'est comme ça que j'ai pu faire un adaptateur USB pour programmer les picaxes alors que ceux ci fonctionne justement en RS-232, et pas en UART. Après on est d'accord les niveaux ne sont pas corrects, mais dans certains cas ça passe.

Les picaxes doivent avoir un truc pour fonctionner en TTL et en RS232, sinon je peut t'assurer de les +/-12v du RS232 flingue un circuit 5V en quelques secondes ...

On est d'accord :wink: