하나가 Rx 및 Tx 핀을 통해 두 개의 Arduino Uno 보드를 연결했다고 가정합니다. 그런 다음 Arduino 보드 중 하나 또는 둘 모두가 컴퓨터에 연결되어 직렬 모니터를 열었을 경우 Tx 및 Rx 핀이 여전히 작동합니까? 즉, Arduino는 “컴퓨터와 통신 할 때 Rx 및 Tx 핀을 통해 계속 통신합니까? 컴퓨터에 연결하는 동안 작동하도록 만드는 방법이 아니라면?
댓글
- USB FTDI 칩이 TX / RX 핀에 연결되어 있으므로 직렬이 예상대로 작동하지 않을 수 있습니다.
답변
하나가 Rx 및 Tx 핀을 통해 Arduino Uno 보드 두 개를 연결했다고 가정합니다.
아두 이노의 TX를 다른 하나의 RX에 연결하고 그 반대의 경우도 마찬가지라고 가정합니다. 이는 올바른 연결 방법입니다. theSealion이 답변에서 설명했듯이 두 개의 TX 핀을 함께 연결해서는 안됩니다.
Arduino 보드 중 하나 또는 둘 모두가 컴퓨터에 연결되어 있고 직렬 모니터를 연 경우
그렇게하면 Arduino는 눈치 채지 못할 것입니다.
음, 더 정확하게 말하면 … Uno에 작은 칩이 있습니다. r “MEGA16U2″라고 표시된 USB 커넥터. 이 칩은 USB / 직렬 변환기로 사용되며 USB 링크를 연결할 때와 포트를 열 때 알려줍니다 . 그러나 스케치를 실행하는 마이크로 컨트롤러 인 메인 칩 (큰 PDIP28)은 알거나 신경 쓰지 않습니다.
Tx 및 Rx 핀 여전히 작동합니까?
물론입니다.
Arduino는 계속 Rx를 통해 통신합니다. 컴퓨터와 통신 할 때 Tx 핀이 있습니까?
RX는 컴퓨터와 통신하지 않습니다. 무슨 일이 일어날까요?
- Arduino가 직렬 포트에 쓰는 모든 내용은 다른 Arduino와 직렬 모니터 모두에서 수신됩니다.
- 직렬 모니터를 통해 보내는 모든 내용은 손실됩니다.
-
Serial.read()
를 사용하면 다른 Arduino에서 설정 한 내용을 얻을 수 있습니다.
이 동작의 이유는 1 kΩ 저항은 Mega16U2의 TX와 메인 마이크로 컨트롤러의 RX 사이에 있습니다.이 RX를 다른 Arduino의 TX에 연결하면 낮은 임피던스 (≈ 2 5 Ω), TX는 “승리”할 것입니다. 낮은 임피던스 출력이 높은 임피던스 출력을 압도합니다.
답변
컴퓨터에 연결하는 동안 [서로 통신하는 두 개의 Arduino]를 작동시키는 방법은 무엇입니까?
두 개의 Arduino가 서로 직접 통신하는 동안 하나 또는 둘 다 USB를 통해 랩톱 컴퓨터의 직렬 모니터와 통신하는 다양한 방법이 있습니다.
-
아두 이노 용 UART를 사용하여 USB 연결과 독립적으로 통신합니다. ( https://www.arduino.cc/reference/en/language/functions/communication/serial/ 참조)
- Arduino와 같은 여러 Arduino 호환 보드 Mega 2560, Arduino Due, Arduino Uno Wifi Rev.2 등에는 4 개의 하드웨어 UART가 있습니다. Serial1의 핀 ( “1”참고)은 USB를 통해 랩톱으로의 직렬 UART 통신 ( “1”없음)을 방해하지 않고 다른 Arduino와 통신하는 데 사용할 수 있습니다. (아, Arduino Uno에는 하드웨어 UART가 1 개뿐입니다.)
- ATmega32u4 기반 Arduino Micro 및 Arduino Leonardo와 FLORA와 같은 ATmega32u4 기반 Arduino 파생 제품 및 Teensy 시리즈 와 같은 많은 ARM 기반 Arduino 파생 제품에는 아무것도 em 사용하지 않는 USB 인터페이스가 있습니다. > UART 핀의> Serial1의 핀 ( “1”참고)을 사용하여 USB를 통해 랩톱으로 연결되는 직렬 ( “1”없이) 비 UART 통신을 방해하지 않고 다른 Arduino와 통신 할 수 있습니다. (Alas , Arduino Uno에는 유일한 하드웨어 UART 핀을 사용하는 USB 인터페이스가 있습니다 .
- 핀이 하드 와이어 된 하드웨어 UART가 1 개 뿐인 Arduino Uno도 USB 인터페이스 칩은 다른 핀에서 UART의 느린 시뮬레이션을 비트 뱅 할 수 있습니다. 모두 ' 소프트웨어 직렬 라이브러리는 무엇입니까? Arduino Nano와 호환되는 것은 무엇입니까? .
-
소프트웨어에서 UART를 시뮬레이션하는 것보다 (타이밍이 다소 까다 롭습니다) 시간에 덜 민감한 다른 것을 사용하는 것이 더 쉽고 빠를 수 있습니다. Arduino Unos 또는 다른 Arduino 간의 통신 방법 (예 :
답변
정확히 같은 문제가 발생했습니다! 잘 작동하는 디버깅을 위해 Arduino Uno 보드를 Jtag ICE mkii와 함께 사용했습니다. UART를 사용하기 시작했을 때 그것은 매우 엉망이었습니다. Arduino에서 외부 TTL-USB 어댑터로의 전송이 작동했지만 다른 방향으로는 작동하지 않았습니다. 저는이 스레드를보기 몇 시간 전에 플레이를했고 그 결과 shematic-> Bang! 나는 두 개의 저항을 보았다. 교훈 : 나머지 도구없이 Arduino 하드웨어를 사용하지 마십시오! 빠른 개발을 위해 하드웨어를 사용하는 것이 좋은 생각이라고 생각했습니다. 이제 생각했던 것보다 더 많은 시간이 소요됩니다.
답변
두 개의 TX 핀을 함께 연결해서는 안됩니다. Arduino에는 몇 가지 보호 저항이 있지만 두 개의 출력 핀을 연결하는 것은 권장하지 않습니다.
RX / TX 핀을 직접 사용하는 유일한 방법은 보호 저항 (참조 설계에서 RN4A 및 RN4B)을 제거하는 것입니다. ) 또는 최소한 RN4A를 사용하고 한 번에 하나의 연결 만 사용합니다. “PC 연결을 사용하지 않거나 핀이 여전히 출력이므로 직렬 모니터를 열지 않으면 도움이되지 않습니다.
(여러 개의 RX 핀은 입력이기 때문에 문제 없습니다)
(물론 대부분의 경우 여러 개의 TX 핀과 함께 작동 할 수 있다는 것을 알고 있지만 권장합니다)