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: RS232 Shield for Arduino - LinkSprite Playgound
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 .
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: RS232 Shield for Arduino - LinkSprite Playgound
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 ?
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
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 ?
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
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 ?
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 ?
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 ?