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()
.