[RESOLU] Erreur reception donnees du port COM

J’essaie d'afficher ce que je recoi du port Com.
Mon PC envoi les données et l'Arduino les affiche sur un LCD.
Hors je n'affiche pas du tout ce que j’envoie.
ex: un "a" affiche "O" ..... :~

voici le code:

#include <LiquidCrystal.h>
char incomingByte;

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup(){
    // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // initialize the serial communications:
  Serial.begin(9600);
  lcd.write(65);
  lcd.write(66);
  lcd.write(67);
  
}

void loop()
{
  // when characters arrive over the serial port...
  if (Serial.available()) {
    // wait a bit for the entire message to arrive
    delay(100);
    // clear the screen
    lcd.clear();
    // read all the available characters
    while (Serial.available() > 0) {
      // display each character to the LCD
      incomingByte=Serial.read();
      lcd.write(incomingByte);
    }
  }
}

Merci de votre aide.

Edit de Jean-François : merci de mettre le code entre les balises "code" .

Bonjour,

Essaye un cast en char incomingByte = (char)Serial.read();
Serial.read retourne un byte (unsigned char) sans cast explicite il est fort probable que la conversion unsigned -> signed ne se fasse pas correctement.

non c'est idem, l'erreur de conversion me semble aussi la cause...

humm c'est bizarre ...

essaye çà :

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup()
{
  Serial.begin(9600);
  lcd.begin(16, 2);
}

void loop()
{
  if (Serial.available()) {
    lcd.write(Serial.read());
  }
}

Toujours pareil même en effacent tout et en collant ton code. :frowning:

olivbout:
Toujours pareil même en effacent tout et en collant ton code. :frowning:

:astonished:
C'est pourtant l'exemple officiel LiquidCrystal - Arduino Reference ...
Il y a quelque chose de pas nette là.

Edit: essaye celui là :
http://arduino.cc/en/Tutorial/LiquidCrystalSerial
vérifie bien la vitesse du port série et que ton lcd est bien câblé si ce code plante c'est ton écrans qui pose probléme ...

Oui je les ai essayé les 2: même problème.
mon lcd fonctionne car il m'affiche bien le Hello World...
j'ai cru a un moment que cela venais de mon câble série un poil trop long mais, maintenant qu'il fait 10cm c'est la même chose...
J'vais essayé avec l'arduino mini que j'ai sous la main.
Merci de ton aide.

olivbout:
Oui je les ai essayé les 2: même problème.
mon lcd fonctionne car il m'affiche bien le Hello World...
j'ai cru a un moment que cela venais de mon câble série un poil trop long mais, maintenant qu'il fait 10cm c'est la même chose...
J'vais essayé avec l'arduino mini que j'ai sous la main.
Merci de ton aide.

Peut être un soucis avec l'arduino alors ? Dis nous ce que ça donne avec l'arduino mini, c'est quand même bizarre.

J'ai refait des essais, en reliant le PC via le port usb de l'arduino, cela fonctionne.
Mais je désir me servir des broches TX/RX + masse via à une DB9 reliée au PC com1 et la ça ne fonctionne pas. :frowning:

Il y a t-il un moyen de sortir du port usb arduino en DB9 ?

olivbout:
J'ai refait des essais, en reliant le PC via le port usb de l'arduino, cela fonctionne.
Mais je désir me servir des broches TX/RX + masse via à une DB9 reliée au PC com1 et la ça ne fonctionne pas. :frowning:

Il y a t-il un moyen de sortir du port usb arduino en DB9 ?

... fallait le dire tout de suite !
Le port DB9 sort du +12/-12v branché directement sur l'arduino ça fait pfffit ! Il faut faire un dongle rs232/ttl avec un max232 par exemple.

Bah j’espère que je n'ai rien cramé :cold_sweat:
Merci pour l'info, j'vais tester ca !

Bonjour,
Hier j'ai réalisé l'interface que skywodd m'a donné et maintenant tout est OK. :smiley:
L'arduino a tenu le coup malgré les 12v dans les pattes :roll_eyes:
Maintenant il me reste à enregistrer les données sur une carte SD et les mettre à dispo sur réseau...
Merci a tous !