Hvis Arduino har forbindelse til computeren og åbnet Serial Monitor, fungerer Tx og Rx pin stadig?

Antag, at man forbandt to af Arduino Uno-kortene gennem Rx og Tx-ben. Derefter, hvis et eller begge Arduino-kort var forbundet til computeren og muligvis åbnede serielle skærme, vil Tx og Rx pin stadig fungere? dvs. vil Arduino stadig kommunikere via Rx og Tx-pin, når den kommunikerer til computeren? Hvis ikke hvordan man får dem til at fungere, mens de opretter forbindelse til computeren?

Kommentarer

  • USB FTDI-chip er tilsluttet TX / RX-stifterne. Seriel fungerer muligvis ikke som du forventer.

Svar

Antag, at man forbandt to af Arduino Uno-kortene gennem Rx- og Tx-ben.

Jeg antager, at du vil forbinde TX på en Arduino til RX på den anden og omvendt, hvilket er den rigtige måde at forbinde dem på. Som TheSealion forklarede i hans svar, skal du ikke forbinde to TX-pins sammen.

hvis et eller begge Arduino-kort var forbundet til computeren og muligvis åbnede serielle skærme

Hvis du gør det, vil Arduino ikke engang bemærke det.

Nå for at være mere præcis … der er en lille chip på Uno, nea r USB-stikket mærket “MEGA16U2”. Denne chip bruges som en USB / seriel konverter, og den bemærker når du tilslutter USB-linket, og når du åbner porten. Imidlertid vil hovedchippen (den store PDIP28), som er mikrocontrolleren, der kører din skitse, hverken kende eller pleje.

vil Tx og Rx pin arbejder du stadig?

Absolut.

vil Arduino stadig kommunikere gennem Rx og Tx-pin, når den kommunikerer til computeren?

RX kommunikerer ikke med computeren. Hvad der sker er:

  • Uanset hvad din Arduino skriver til sin serielle port, modtages både den anden Arduino og den serielle skærm.
  • Uanset hvad du sender gennem den serielle skærm, går tabt.
  • Når du Serial.read(), får du hvad der blev indstillet af den anden Arduino.

Årsagen til denne adfærd er en 1   kΩ-modstand, der sidder mellem Mega16U2″ s TX og hovedmikrocontrolleren “s RX. Når du tilslutter denne RX til den anden Arduino” s TX, som har lav impedans (≈ 2 5   Ω), at TX “vinder”: en output med lav impedans overvælder en høj impedans.

Svar

hvordan får [to Arduinos til at kommunikere med hinanden], mens de opretter forbindelse til computeren?

Der er en række forskellige måder, hvorpå to Arduinos kan kommunikere direkte med hinanden, mens den ene eller begge kommunikerer med en seriel skærm på en bærbar computer via USB.

  • Brug en UART til Arduinos til at kommunikere uafhængigt af USB-forbindelsen. (Se https://www.arduino.cc/reference/en/language/functions/communication/serial/ )

    • Flere Arduino-kompatible kort, såsom Arduino Mega 2560, Arduino Due, Arduino Uno Wifi Rev.2 osv. Har 4 hardware-UARTer; benene på Serial1 (bemærk “1”) kunne bruges til at kommunikere med en anden Arduino uden at forstyrre Serial (uden en “1”) UART-kommunikation via USB til en bærbar computer. (Ak, Arduino Uno har kun 1 hardware UART).
    • De ATmega32u4-baserede Arduino Micro og Arduino Leonardo og ATmega32u4-baserede Arduino-derivater såsom FLORA og mange af de ARM-baserede Arduino-derivater såsom Teensy-serien har en USB-grænseflade, der ikke bruger nogen af UART-stifterne; så stifterne på Serial1 (bemærk “1”) kunne bruges til at kommunikere med en anden Arduino uden at forstyrre Serial (uden en “1”) ikke-UART-kommunikation via USB til en bærbar computer. (Ak , Arduino Uno har en USB-grænseflade, der gør bruger sin eneste hardware-UART-ben).
    • Selv Arduino Uno, som kun har 1 hardware-UART, hvis ben er fast forbundet til USB-interfacechippen kan bit-bang en langsom simulering af en UART på andre ben. Se Hvad ' er forskellen mellem alle softwarens serielle biblioteker? Hvilken er Arduino Nano-kompatibel? .
  • I stedet for at prøve at simulere en UART i software (timingen er lidt vanskelig), kan det være lettere / hurtigere at bruge andre mindre tidsfølsomme måder til kommunikation mellem Arduino Unos eller andre Arduinos, såsom

Svar

Jeg fik nøjagtigt det samme problem! Jeg brugte Arduino Uno-kortet med en Jtag ICE mkii til debugging, som fungerede godt. Da jeg begyndte at bruge UART, var det et tungt rod. Transmissionen fra Arduino til en ekstern TTL-USB-adapter fungerede, men ikke i den anden retning. Jeg spillede timer før jeg så denne tråd, og det gav mig ideen til at se på det skematiske – > Bang! Jeg så de to modstande. Erfaring: Brug ikke Arduino-hardware uden resten af værktøjerne! Jeg troede, det var en god idé at bruge hardwaren til hurtig udvikling. Nu koster det mig mere tid, at jeg tænkte …

Svar

Du skal ikke forbinde to TX-pins sammen. Arduino har nogle beskyttelsesmodstande, men det anbefales ikke at tilslutte to udgangsstifter.

Den eneste gemte måde at bruge RX / TX-stifter direkte på er at fjerne beskyttelsesmodstandene (RN4A og RN4B i referenceudformningen ) eller i det mindste RN4A og brug kun en forbindelse ad gangen. Det hjælper ikke, hvis du ikke bruger pc-forbindelsen eller ikke åbner den serielle skærm, da stifterne stadig er en output.

(Flere RX-pins er ikke noget problem, da de er input)

(Og selvfølgelig ved jeg, at det kunne fungere med flere TX-pins det meste af tiden, men jeg vil anbefale det)

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *