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.