Kuinka saada sarjatietoja Arduinosta viivakoodilukijasta?

Haluan liittää viivakoodilukijani Arduinoon RS232: n avulla. Olen liittänyt 2 (RX), 3 (TX) ja 5 (GND) RS232: sta vastaaviin MAX232-nastoihin. Otan TTL-lähtöjä Arduino-nastoille 6 ja 7.

Tämä on Arduino-ohjelman koodi:

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

En ole saada mitään tuloksia sarjavalvontalaitteesta, kun skannaan tuotetta.

Kommentit

  • Muokkaa kysymystäsi ja liitä mukaan kaavio.
  • Löysitkö jokainen vastauksen?
  • @Ahnet: Kyllä tuolloin meillä oli joitain muita asioita, kuten kommentissa mainittiin, joten ' t laita sitten tarkistus. Kiitos muistutuksesta.

Vastaa

Olettaen, että Arduinollasi on vain yksi laitteiston sarjaliitäntä (se on jotain Uno eikä mega) olet melko oikeassa ohjelmistosarjan käytössä, Arduino käyttää jo nastoja 2 ja 3 kommunikoidakseen USB: n kautta sarjakuvanäyttöön, jotta et voi käyttää niitä kommunikoimaan skannerin kanssa.

Tarkkaile kuitenkin huolellisesti ensimmäistä koodiriviäsi, mutta olet pyytänyt ohjelmistosarjaa käyttämään nastoja 6 & 7, mutta kiinnittänyt viivakoodilukijan nastoihin 2 & 3. Siirrä nämä nastat määritettyyn.

Toiseksi asetustoiminnossa olet aloittanut yhteydenpidon laitteistosarjan kanssa, mutta ei ohjelmistosarjan kanssa. ”Sinun on lisättävä jotain kuten mySerial.begin (XXX), jossa XXX on skannerin siirtonopeus.

Lopuksi et ole sanonut Arduinolle, mitä pinModea käytetään 6 ja 7 -käyttöjärjestelmissä.” haluavat pinMode (6, INPUT) ja pinMode (7, OUTPUT) myös sinne.

C huomautukset

  • Kun olen lisännyt mySerial.begin (XXXX) -koodin, toimi oikein. Aina kun siirrän RS232-nastoja hieman, saan numerot ruudulle. Mutta ei silloin, kun skannaan.
  • Oletko varma, että olet ' saanut heidät oikeaan suuntaan?

Vastaa

RS 232 toimii eri jännitetasoilla kuin Arduino, uskon, että näytöllä näytettävillä arvoilla ei ole mitään merkitystä, Jos skannerin lähtö on TTL niin kyllä se toimisi, mutta oman kokemukseni mukaan logiikka on päinvastainen ja sinun on lisättävä 1 ohjelmistosarjaan:

SoftwareSerial mySerial (6, 7, 1); // Vastaanotto, lähetys

Ensimmäisessä vaiheessa tarkistetaan, mikä jännitetaso skannerilähtösi antaa.

Vastaa

Yritin myös tätä, jostain syystä se EI TOIMI nastoilla 6 ja 7, mutta se toimii täydellisesti käyttämällä nastoja 10 ja 11. Tietenkin sinun on silti lisättävä mySerial.begin().

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *