Als Arduino is aangesloten op de computer en Serial Monitor heeft geopend, werken de Tx- en Rx-pin dan nog steeds?

Stel dat een van de twee Arduino Uno-kaarten heeft verbonden via Rx- en Tx-pinnen. Als een of beide Arduino-kaarten dan op de computer zijn aangesloten en mogelijk seriële monitoren zijn geopend, werken de Tx- en Rx-pin dan nog steeds? dat wil zeggen, zal Arduino nog steeds communiceren via Rx en Tx pin wanneer het met de computer communiceert? Zo niet, hoe kunnen ze werken terwijl ze verbinding maken met de computer?

Opmerkingen

  • De USB FTDI-chip is verbonden met de TX / RX-pinnen. Serieel werkt dus mogelijk niet zoals u verwacht.

Antwoord

Stel dat een van de twee Arduino Uno-kaarten heeft verbonden via Rx- en Tx-pinnen.

Ik neem aan dat je de TX van de ene Arduino verbindt met de RX van de andere en vice versa, wat de juiste manier is om ze te verbinden. Zoals theSealion in zijn antwoord uitlegde, moet je niet twee TX-pinnen met elkaar verbinden.

als een of beide Arduino-kaarten op de computer waren aangesloten en mogelijk seriële monitors waren geopend

Als je dat doet, merkt de Arduino het niet eens.

Nou, om nauwkeuriger te zijn … er zit een kleine chip op de Uno, nee r de USB-connector met het label “MEGA16U2”. Deze chip wordt gebruikt als een USB / seriële converter en zal opmerken wanneer je de USB-link aansluit en wanneer je de poort opent. De hoofdchip (de grote PDIP28), de microcontroller die uw schets uitvoert, zal het echter niet weten en zal er niets om geven.

zullen Tx en Rx pinnen nog steeds werken?

Absoluut.

zal Arduino nog steeds communiceren via Rx en Tx-pin wanneer deze met de computer communiceert?

De RX communiceert niet met de computer. Wat er gebeurt is:

  • Wat je Arduino ook naar zijn seriële poort schrijft, wordt ontvangen door zowel de andere Arduino als de seriële monitor.
  • Alles wat je via de seriële monitor verzendt, gaat verloren.
  • Als je Serial.read() gebruikt, krijg je alles wat door de andere Arduino is ingesteld.

De reden van dit gedrag is een 1   kΩ-weerstand die zit tussen de Mega16U2″ s TX en de belangrijkste microcontroller “s RX. Wanneer je deze RX aansluit op de andere Arduino” s TX, wat een lage impedantie is (≈ 2 5   Ω), dat TX zal “winnen”: een uitgang met lage impedantie overweldigt een uitgang met hoge impedantie.

Antwoord

hoe zorg je ervoor dat [twee Arduinos communiceren met elkaar] werken terwijl ze verbinding maken met de computer?

Er zijn verschillende manieren waarop twee Arduinos rechtstreeks met elkaar kunnen communiceren terwijl een of beide via USB communiceren met de seriële monitor van een laptop.

  • Gebruik een UART voor de Arduinos om te communiceren die onafhankelijk is van de USB-verbinding. (Zie https://www.arduino.cc/reference/en/language/functions/communication/serial/ )

    • Verschillende Arduino-compatibele kaarten zoals de Arduino Mega 2560, Arduino Due, Arduino Uno Wifi Rev.2, enz. Hebben 4 hardware UARTs; de pinnen van Serial1 (let op de “1”) kunnen worden gebruikt om te communiceren met een andere Arduino zonder de seriële (zonder een “1”) UART-communicatie via USB naar een laptop te verstoren. (Helaas, de Arduino Uno heeft maar 1 hardware UART).
    • De op ATmega32u4 gebaseerde Arduino Micro en Arduino Leonardo en op ATmega32u4 gebaseerde Arduino-derivaten zoals FLORA en veel van de ARM-gebaseerde Arduino-derivaten zoals de Teensy-serie hebben een USB-interface die geen enige van de UART-pinnen; zodat de pinnen van Serial1 (let op de “1”) kunnen worden gebruikt om te communiceren met een andere Arduino zonder de seriële (zonder een “1”) niet-UART-communicatie via USB naar een laptop te verstoren. (helaas , heeft de Arduino Uno een USB-interface die doet zijn enige hardware UART-pinnen gebruikt).
    • Zelfs de Arduino Uno, die slechts 1 hardware-UART heeft waarvan de pinnen hard de USB-interfacechip, kan een langzame simulatie van een UART op andere pinnen bit-bang. Zie Wat is ' is het verschil tussen alle de software seriële bibliotheken? Welke is compatibel met Arduino Nano? .
  • In plaats van te proberen een UART in software te simuleren (de timing is nogal lastig), kan het gemakkelijker / sneller zijn om een andere, minder tijdgevoelige manieren om te communiceren tussen Arduino Unos of andere Arduinos, zoals

Antwoord

Ik heb precies hetzelfde probleem! Ik gebruikte het Arduino Uno-bord met een Jtag ICE mkii voor foutopsporing, wat goed werkte. Toen ik de UART begon te gebruiken, was het een zware puinhoop. Het verzenden van Arduino naar een externe TTL-USB-adapter werkte, maar niet in de andere richting. Ik speelde uren voordat ik deze thread zag en dat bracht me op het idee om in de shematic te kijken – > Bang! Ik zag de twee weerstanden. Geleerde les: gebruik de Arduino-hardware niet zonder de rest van de tools! Vond het een goed idee om de hardware te gebruiken voor snelle ontwikkeling. Nu kost het me meer tijd dan ik dacht …

Answer

Je moet niet twee TX-pinnen met elkaar verbinden. Arduino heeft enkele beschermingsweerstanden, maar zelfs het wordt niet aanbevolen om twee uitgangspennen aan te sluiten.

De enige veilige manier om de RX / TX-pennen direct te gebruiken, is door de beschermingsweerstanden te verwijderen (RN4A en RN4B in het referentieontwerp ) of op zijn minst de RN4A en gebruik slechts één verbinding tegelijk. Het helpt niet als u de pc-verbinding niet gebruikt of de seriële monitor niet opent, aangezien de pinnen nog steeds een uitgang zijn.

(Meerdere RX-pinnen zijn geen probleem aangezien het ingangen zijn)

(En natuurlijk weet ik dat het meestal zou kunnen werken met meerdere TX-pinnen samen, maar ik zou het aanraden)

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *