Comment obtenir des données série dans Arduino à partir dun scanner de codes-barres?

Je souhaite interfacer mon lecteur de codes-barres avec un Arduino utilisant RS232. Jai connecté 2 (RX), 3 (TX) et 5 (GND) du RS232 avec les broches correspondantes de MAX232. Je prends des sorties TTL sur les broches Arduino 6 et 7.

Voici le code du programme Arduino:

#include <SoftwareSerial.h> SoftwareSerial mySerial(6, 7); // RX, TX void setup() { Serial.begin(9600); } void loop() { // run over and over if (mySerial.available()) { byte x = mySerial.read(); Serial.println(x); } } 

Je ne suis pas obtenir une sortie sur le moniteur série lorsque je scanne un produit.

Commentaires

  • Veuillez modifier votre question et inclure votre schéma.
  • Avez-vous tous trouvé la réponse?
  • @Ahnet: Oui, à ce moment-là, nous avons également eu dautres problèmes, comme mentionné dans le commentaire, donc ' t mettez un chèque alors. Merci pour le rappel.

Réponse

En supposant que votre Arduino na quune seule connexion série matérielle (cest quelque chose comme un Uno plutôt quun Mega) vous avez tout à fait raison dutiliser le logiciel série, lArduino utilisera déjà les broches 2 et 3 pour communiquer via USB avec le moniteur série afin que vous ne puissiez pas les utiliser pour communiquer avec le scanner.

Cependant, même si vous regardez attentivement votre première ligne de code, vous « avez demandé au logiciel série dutiliser les broches 6 & 7 tout en accrochant le lecteur de codes-barres aux broches 2 & 3. Déplacez ces broches vers celles que vous avez spécifiées.

Deuxièmement, dans votre fonction de configuration, vous avez commencé la communication avec le matériel série mais pas le logiciel série. Vous « ll faudra ajouter quelque chose comme mySerial.begin (XXX) où XXX est le débit en bauds du scanner.

Enfin, vous navez pas dit à lArduino quel pinMode utiliser pour 6 et 7. Vous » ll veulent pinMode (6, INPUT) et pinMode (7, OUTPUT) là aussi.

C omments

  • Après avoir ajouté mySerial.begin (XXXX), le code fonctionnait correctement. Chaque fois que je déplace légèrement les broches RS232, je reçois des chiffres imprimés à lécran. Mais pas lorsque je scanne.
  • Êtes-vous certain que vous ' les avez bien compris?

Réponse

RS 232 fonctionne sur des niveaux de tension différents de ceux dArduino, je crois que les valeurs que vous obtenez à lécran nauront aucune signification, si la sortie du scanner est TTL alors oui, cela fonctionnerait, mais daprès ma propre expérience, cette logique est inversée et vous devez ajouter un 1 au numéro de série du logiciel:

SoftwareSerial mySerial (6, 7, 1); // RX, TX

La première étape consiste à vérifier quel niveau de tension est donné par la sortie de votre scanner.

Réponse

Jai essayé cela aussi, pour une raison quelconque, cela ne fonctionne PAS sur les broches 6 et 7, mais cela fonctionne parfaitement en utilisant les broches 10 et 11 à la place. Bien sûr, vous devez toujours ajouter le mySerial.begin().

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *