Hogyan szerezhetünk soros adatokat Arduino-ban egy vonalkódolvasóról?

Csatlakoztatni szeretném a vonalkódolvasóm egy Arduino-hoz, RS232 használatával. Az RS232-ből 2 (RX), 3 (TX) és 5 (GND) csatlakoztam a MAX232 megfelelő csapjaival. TTL kimenetet veszek az Arduino 6. és 7. érintkezőjére.

Ez az Arduino program kódja:

#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); } } 

Nem vagyok bármilyen kimenet elérése a soros monitoron, amikor egy terméket átvizsgálok.

Megjegyzések

  • Kérjük, szerkessze a kérdését, és mellékelje a sematikáját.
  • Mind megtalálta a választ?
  • @Ahnet: Igen akkoriban volt néhány más kérdésünk is, amint azt a megjegyzés említi, így nem ' t akkor tegyen egy csekket. Köszönjük, hogy emlékeztette.

Válasz

Feltételezve, hogy Arduino-jának csak egy hardveres soros kapcsolata van (valami hasonló egy Uno, nem pedig egy Mega), akkor teljesen igaza van a soros szoftver használatában, az Arduino már a 2. és a 3. csapot fogja használni USB-n keresztüli kommunikációhoz a soros monitorhoz, így nem tudja őket használni a szkennerrel való kommunikációhoz.

Azonban gondosan nézze át az első kódsorát, arra kérte a szoftveres szoftvert, hogy használja a 6-os csapokat & 7, de a vonalkód-leolvasót a 2-es csapokhoz & 3. Helyezze át ezeket a csapokat az Ön által megadottakra.

Másodsorban a beállítási funkcióban megkezdte a kommunikációt a hardveres soros, de nem a soros szoftverrel. “Hozzá kell adnom valamit, mint például a mySerial.begin (XXX), ahol az XXX a szkenner adatátviteli sebessége.

Végül még nem mondtad el az Arduinónak, hogy milyen pinMode-ot használjon 6 és 7 esetén. a pinMode-ot (6, INPUT) és a pinMode-ot (7, OUTPUT) is akarja.

C kihagyások

  • A mySerial.begin (XXXX) hozzáadása után a kód megfelelően működött. Amikor kissé elmozdítom az RS232 tűket, számjegyeket nyomtatok a képernyőre. De nem akkor, amikor szkennelek.
  • Biztos benne, hogy ' megkapta őket a helyes irányba?

Válasz

Az RS 232 más feszültségszinteken működik, mint az Arduino, úgy gondolom, hogy a képernyőn megjelenő értékeknek semmilyen jelentése nem lesz, ha a szkenner kimenete TTL akkor igen működne, de saját tapasztalatom szerint a logika megfordult, és hozzá kell adni egy 1-et a szoftver sorához:

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

Az első lépés annak ellenőrzése, hogy a szkenner kimenete milyen feszültségszintet ad.

Válasz

Ezt is kipróbáltam, valamilyen oknál fogva NEM MŰKÖDIK a 6-os és 7-es csapokon, de a 10-es és 11-es csapok helyett tökéletesen működik. Természetesen még hozzá kell adnia a mySerial.begin() -t.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük