Oletetaan, että yksi liitti kaksi Arduino Uno -levyä Rx- ja Tx-nastojen kautta. Sitten, jos yksi tai molemmat Arduino-kortit on kytketty tietokoneeseen ja mahdollisesti avaaneet sarjamonitorit, toimivatko Tx ja Rx pin edelleen? ts. kommunikoiko Arduino edelleen Rx: n ja Tx: n kautta, kun se on yhteydessä tietokoneeseen? Jos ei, miten saada ne toimimaan samalla kun muodostat yhteyden tietokoneeseen?
Kommentit
- USB FTDI -piiri on kytketty TX / RX-nastoihin. Sarja ei siis välttämättä toimi odotetulla tavalla.
Vastaa
Oletetaan, että toinen on liittänyt kaksi Arduino Uno -levyä Rx- ja Tx-nastojen kautta.
Oletan, että yhdistät yhden Arduinon TX: n toisen RX: hen ja päinvastoin, mikä on oikea tapa yhdistää ne. Kuten theSealion selitti vastauksessaan, sinun ei pitäisi yhdistää kahta TX-nastaa yhteen.
jos yksi tai molemmat Arduino-kortit on kytketty tietokoneeseen ja mahdollisesti avanneet sarjamonitorit
Jos teet niin, Arduino ei edes huomaa.
No, tarkemmin sanottuna … Unossa on pieni siru, nea r USB-liitin, jonka otsikko on ”MEGA16U2”. Tätä sirua käytetään USB / sarjamuuntimena, ja se huomaa kun liität USB-linkin ja avaat portin. Pääpiiri (iso PDIP28), joka on luonnostasi ajava mikro-ohjain, ei kuitenkaan tiedä eikä välitä.
Tx ja Rx kiinnittävät toimiiko edelleen?
Ehdottomasti.
kommunikoi Arduino edelleen Rx: n kautta ja Tx-pin, kun se on yhteydessä tietokoneeseen?
RX ei ole yhteydessä tietokoneeseen. Mitä tapahtuu, on:
- Mitä Arduino kirjoittaa sarjaporttiinsa, vastaanottaa sekä toinen Arduino että sarjavalvoja.
- Kaikki, mitä lähetät sarjakuvan kautta, menetetään.
- Kun
Serial.read()
, saat mitä tahansa toisen Arduinon asettamaa.
Tämän käyttäytymisen syy on 1 kΩ vastus, joka sijaitsee Mega16U2″ TX: n ja päämikrokontrollerin RX: n välillä. Kun liität tämän RX: n toiseen Arduinon TX: ään, jonka impedanssi on matala (≈ 2 5 Ω), että TX ”voittaa”: matalan impedanssin lähtö ylittää korkean impedanssin.
Vastaa
miten saada [kaksi keskenään kommunikoivaa Arduinoa] toimimaan samalla kun muodostat yhteyden tietokoneeseen?
Kahdella Arduinolla on useita tapoja kommunikoida suoraan keskenään, kun toinen tai molemmat kommunikoivat kannettavan tietokoneen sarjakuvan kanssa USB: n kautta.
-
Käytä USB-yhteydestä riippumatonta kommunikointia varten Arduinosin UART-protokollaa. (Katso https://www.arduino.cc/reference/en/language/functions/communication/serial/ )
- Useat Arduino-yhteensopivat levyt, kuten Arduino Mega 2560, Arduino Due, Arduino Uno Wifi Rev.2 jne. Sisältää 4 laitteiston UART-laitetta; Serial1: n nastoja (huomaa ”1”) voitiin käyttää kommunikointiin toisen Arduinon kanssa häiritsemättä Serial (ilman ”1”) UART-viestintää USB: n kautta kannettavaan tietokoneeseen. (Valitettavasti Arduino Unolla on vain yksi laitteiston UART).
- ATmega32u4 -pohjaiset Arduino Micro- ja Arduino Leonardo- sekä ATmega32u4-pohjaiset Arduino-johdannaiset, kuten FLORA ja monilla ARM-pohjaisilla Arduino-johdannaisilla, kuten Teensy -sarjalla , on USB-liitäntä, joka ei käytä mitään UART-nastoista; joten Serial1: n nastoja (huomaa ”1”) voidaan käyttää kommunikointiin toisen Arduinon kanssa häiritsemättä sarjakuvaa (ilman ”1”) ei-UART-tiedonsiirtoa USB: n kautta kannettavaan tietokoneeseen. (Valitettavasti , Arduino Unolla on USB-liitäntä, joka käyttää ainoat laitteiston UART-nastat).
- Jopa Arduino Uno, jolla on vain yksi laitteiston UART, jonka nastat on kytketty kiinteästi USB-liitäntäsiru, voi bittiräjähtää UART: n hitaan simuloinnin muilla nastoilla. Katso Mikä ' on kaikkien ero ohjelmistosarjakirjastot? Mikä on Arduino Nano -yhteensopiva? .
-
Sen sijaan, että yrität simuloida UART: ta ohjelmistossa (ajoitus on tavallaan hankala), voi olla helpompaa / nopeampi käyttää muita vähemmän aikaa herkkiä tapoja kommunikoida Arduino Unosin tai muiden Arduinojen välillä, kuten
- SPI kahden Arduinon välillä (a) ; (b)
- I2C kahden Arduinon välillä (a) (b)
- PJON 2 Arduinon välillä
- muutamilla asynkronisen viestinnän protokollilla ei ole lainkaan ajoitusriippuvuuksia
- jne.
Vastaus
Minulla on täsmälleen sama ongelma! Käytin Arduino Uno -levyä Jtag ICE mkii: n kanssa virheenkorjaukseen, joka toimi hienosti. Kun aloin käyttää UART: ta, se oli raskas sotku. Lähetys Arduinosta ulkoiseen TTL-USB-sovittimeen toimi, mutta ei toiseen suuntaan. Pelasin tunteja ennen kuin näin tämän säikeen ja se antoi minulle ajatuksen tarkastella shemaattista – > Bang! Näin kaksi vastusta. Oppitunti: Älä käytä Arduino-laitteistoa ilman muita työkaluja! Luulin, että oli hyvä käyttää laitteistoa nopeaan kehitykseen. Nyt se maksaa minulle enemmän aikaa kuin ajattelin …
Vastaa
Älä yhdistä kahta TX-nastaa yhteen. Arduinolla on joitain suojavastuksia, mutta kahden lähtöliittimen liittämistä ei myöskään suositella.
Ainoa säästötapa käyttää RX / TX-nastoja suoraan on poistaa suojavastukset (RN4A ja RN4B vertailurakenteessa ) tai ainakin RN4A: ta ja käytä vain yhtä yhteyttä kerrallaan. Se ei auta, jos et käytä PC-yhteyttä tai et avaa Serial Monitoria, koska nastat ovat edelleen lähtö.
(Useita RX-nastoja ei ole ongelma, koska ne ovat syötteitä)
(Ja tietysti tiedän, että se voisi toimia useiden TX-nastojen kanssa suurimman osan ajasta, mutta suosittelisin sitä)