Salut les gars, je vais essayer de vous expliquer mon problème sans être trop confus. Alors voilà, j'utilise un lecteur de code-barres de référence DFR0314 Barcode_Reader_Scanner_Module-CCD_Camera_SKU_DFR0314que-DFRobot je relie à mon arduino en utilisant un convertisseur de tension MAX232. Toutes les masses sont reliées sur la breadboard et il y a 2 fils pour la transmission des données : un partant du lecteur rentrant dans le MAX232 et un autre sortant du MAX232 rentrant dans une broche numérique de l'arduino (D7). Malheureusement je n'ai pas de photos pour vous montrer tout ça mais peut être que j'en aurais d'ici quelques jours. Mon but est de savoir le contenu du code-barres grâce à un programme, sauf que celui que j'ai écrit me pose problème: je n'obtiens qu'une succession de 0 et de 1 qui varie selon la longueur et le type du code-barres, ce qui ne me permet pas de savoir ce qu'il contient réellement (même si ça marque une petite évolution car au tout début le programme ne me donnais que le niveau logique). J'ai fait au passage un second programme que j'avais testé mais je ne me rappelle plus du résultat. Je mets les 2 programmes en pièce jointe pour que vous puissiez me dire ce qui ne va pas afin de résoudre mon problème. En espérant avoir été assez clair dans mes explications.
tu as écris des codes qui lisent l'état binaire d'une broche , tu récupères donc des suites de
zéros et de un, normal !
Un petit tour sur le site du constructeur du capteur CCD et une lecture attentive te montreras que cet appareil envoie sur le port série , en clair, la donnée décodée. Tu as même un exemple de code à tester !!
Donc si tu veux les caractères composant la donnée contenue dans le code barre il suffit de lire et suivre le mode d'emploi
/*
description:
The sample code is used to read the barcode value using RS232-TTL Converter
This Module will transmit the barcode value in ASCⅡ and end up with 0D
VCC -- VCC
GND -- GND
*/
String code = ""; //initialize the output string
boolean endbit = 0; //a flag to mark 0D received
char temp;
void setup() {
Serial.begin(9600); //initialize the Serial port
}
void loop() {
if (Serial.available() > 0) {
temp = char( Serial.read()); //read the input data
code += temp;
}
if (temp == 0x0D){ // Or temp == '\r'
Serial.println(code);
code = "";
endbit = 0;
temp = 0;
}
}
Merci pour vos réponses! Le problème est que je n'ai pas eu le temps de tester l'exemple de programme. Je vous en donnerais des nouvelles demain avec quelques photos du montage pour être sûr de ne pas m'être trompé sue quoi que ce soit.
Je viens d'essayer le code présent sur le site du constructeur mais je n'arrive pas à le faire fonctionner Ce soir j'enverrais des photos du montage avec l'arduino et le max232 au cas où je me serais trompé sur une partie du câblage. Au fait comme je suis encore débutant, est-ce qu'il y a des parties du programme à compléter ?