Arduino et lecteur code barre RS232

Bonjour,
Je cherche maintenant depuis quelques jours comment faire pour que ma carte arduino mega puisselire les données d’un lecteur code barre connecté à la carte en rs232.
Je dispose pour faciliter la connexion, d’un shield RS232: http://linksprite.com/wiki/index.php5?title=RS232_Shield_for_Arduino

Etant débutant en programmation Arduino, j’aimerai avoir l’aide de quelqu’un pour m’aider à constituer un petit programme qui puisse lire le code barre sur le pc .

Merci d’avance

clem0609:
Bonjour,
Je cherche maintenant depuis quelques jours comment faire pour que ma carte arduino mega puisselire les données d'un lecteur code barre connecté à la carte en rs232.
Je dispose pour faciliter la connexion, d'un shield RS232: http://linksprite.com/wiki/index.php5?title=RS232_Shield_for_Arduino

Etant débutant en programmation Arduino, j'aimerai avoir l'aide de quelqu'un pour m'aider à constituer un petit programme qui puisse lire le code barre sur le pc .

Merci d'avance

bonjour
déjà avant de partir sur un programme arduino, il faut connaitre les caracteristiques du lecteur de code barre
donc : reference et doc du lecteur ?

voici la doc et les ref du lecteur code barre: TD1100 - Scanners de codes-barres portables - Datalogic, c'est le TD1170-BK-90

clem0609:
voici la doc et les ref du lecteur code barre: TD1100 - Scanners de codes-barres portables - Datalogic, c'est le TD1170-BK-90

ok
alors tu a tout ce qu'il te faut comme info pour programmer ton lecteur (vitesse RS232) et le raccorder au travers de ton shield rs232 à l'arduino
sur le Product Reference Guide (PRG), Touch TD1100 .
attention il faut aussi prevoir une alim 5V 200 mA dediée au lecteur.
ensuite ce n'est qu'une simple lecture de serial selon ce que tu veux faire avec l'arduino

Tout ce qui est configuration de la douchette je l'ai fais, mais ce que je ne sais pas faire c'est la programation arduino....

clem0609:
Tout ce qui est configuration de la douchette je l'ai fais, mais ce que je ne sais pas faire c'est la programation arduino....

regarde dans les exemples arduino 04. communication pour lire les infos en sortie de ton lecteur.
tu fais ça dans quel cadre , tu a déjà utilisé un arduino pour autre chose ?

A vrai dire c'est dans le cadre d'un trieur de colis...ou chaque code barre aura une destination différente

LA bibliothèque serial s'utilise comment ?

Bonjour,

clem0609:
LA bibliothèque serial s'utilise comment ?

Voir rubriques Examples : Arduino - Serial

Bon, je n'y suis toujours pas arrivé, j'ai essayé plusieurs programmes: comme celui ci

String readString;
 
void setup() {
Serial.begin(9600); // Ouvre le port série en 9600
}
 
void loop() {
 
while (Serial.available()) {
delay(3); // Attends 3ms que les données arrivent
// Récupère les données caractère par caractère
if (Serial.available() > 0) {
char c = Serial.read();
readString += c;
}
}
if (readString.length() > 0) {
Serial.println(readString); //Affiche ce qui a été récupéré
readString = "";
}

Si vous pouvez me dire ce qui ne vas pas.... merci d'avance

clem0609:
Bon, je n’y suis toujours pas arrivé, j’ai essayé plusieurs programmes: comme celui ci

Si vous pouvez me dire ce qui ne vas pas… merci d’avance

bonjour
rapidement
tu n’utilise qu’un port serie , ton lecteur utilise du RX et du TX , il faut dupliquer les ports series
tu travaille avec un UNO ?

essaye ça en connectant ton lecteur/douchette en TTL (sortie/entrée du MAX232) en 2 et 3

#include <SoftwareSerial.h>

SoftwareSerial BTSerial(2, 3); // RX | TX
// RX arduino ---> TXD lecteur
// TX arduino ---> RXD lecteur

void setup()
{
  Serial.begin(9600); // vitesse serial monitor
  
  BTSerial.begin(9600);  // vitesse lecteur
}

void loop()
{

  
  if (BTSerial.available())
    Serial.write(BTSerial.read());

  
  if (Serial.available())
    BTSerial.write(Serial.read());
}

Non je travaille avec un arduino Mega et avec un shield rs232 (voir plus haut)

clem0609:
Non je travaille avec un arduino Mega et avec un shield rs232 (voir plus haut)

Alors c'est encore plus simple
regarde l'exemple multiserialmega et lis les commentaires
exemples --->04.communication ---> multiserialmega

Justement j'ai essayé avec ce code mais rien ne se passe.... :~
du coup j'ai trouvé ce code ci aussi et avec celui ci j'arrive à avoir une valeur 255...

#define ARDUINO_RX_PIN  0 // pin a connecter au barcode (pin8 , fil marron) 
#define ARDUINO_TX_PIN  1  // pour memoire - non utilise (not used)

int (barcode) = 0;

void setup()  {
  // define pin modes for tx, rx:
  pinMode(ARDUINO_RX_PIN, INPUT);
  pinMode(ARDUINO_TX_PIN, OUTPUT);
  

  
  // set the data rate for the Serial port
  Serial.begin(9600);
}

void loop()   {
  // envoie des données seulement quand vous recevez des données :
        if (Serial.available() > 0) { // si des données entrantes sont présentes
                // lit le 1er octet arrivé
                int barcode = Serial.read();
        }
        byte(barcode)=Serial.read();
       
          Serial.println(barcode);
      }

clem0609:
Justement j’ai essayé avec ce code mais rien ne se passe… :~
du coup j’ai trouvé ce code ci aussi et avec celui ci j’arrive à avoir une valeur 255…

bonjour
Je pense que tu te melange les connections
ton dernier programme n’utilise qu’un port serie
ta valeur 255 est surement un artefact

si ta douchette est bien cablée , avec un tax de baud bien configuré , il n’y a aucune raison que le multi serialmega ne fonctionne pas.
Ne pas oublier d’alimenter la douchette et pas par le mega
ne pas oublier de relier les GND (alim douchette, douchette,mega)

Et encore faut il que tu soit sur de tes connections sur le serial1 (le serial0 etant lui reservé à la liaison mega/PC par usb)
ne pas confondre les TX avec RX

sens des infos à bien verifier pin 5/6 de ta douchette
douchette en sortie ----> RS232 ---->TTL----> RX1 mega pin 19
douchette en entrée <— RS232 <----TTL<---- TX1 mega pin 18

et dans la mesure où tu ne cherche pas pour l’instant à envoyer des infos à la douchette, tu peux pour l’instant faire l’impasse de la 2eme ligne (pin 18).
Le handshaking de ta douchette est configuré comment ?

Le handshaking de ma douchette est configuré en RTS

clem0609:
Le handshaking de ma douchette est configuré en RTS

bonjour
en theorie tu devrais pouvoir lire la ligne TX de ton lecteur sans autres problemes.
C'est dans ce genre de situation qu'un oscillo est bienvenu, tu en a un sous la main ?

Actuellement non je n’en ai pas mais j’ai déjà essayer d’observer les signaux et ils étaient bien là…

clem0609:
Actuellement non je n'en ai pas mais j'ai déjà essayer d’observer les signaux et ils étaient bien là...

si j'en crois le schema de ton shield rs232 , et si elle est bien alimentée par ton arduino tu devrais au moins voir "bouger" la led rxd lorsque tu lis un code, c'est le cas ?

Bonjour,

Essaye voir de raccorder RTS à CTS coté douchette, pour être sur que ce ne soit pas un problème de controle de flux.