Se o Arduino se conectou ao computador e abriu o Serial Monitor, os pinos Tx e Rx ainda estarão funcionando?

Suponha que alguém conecte duas das placas Arduino Uno por meio de pinos Rx e Tx. Então, se uma ou ambas as placas Arduino estivessem conectadas ao computador e possivelmente abrissem monitores seriais, o pino Tx e Rx ainda estaria funcionando? ou seja, o Arduino ainda se comunicará por meio dos pinos Rx e Tx quando estiver se comunicando com o computador? Se não, como fazê-los funcionar enquanto se conecta ao computador?

Comentários

  • O chip USB FTDI está conectado aos pinos TX / RX. Portanto, o serial pode não funcionar da maneira que você espera.

Resposta

Suponha que um conecte duas das placas Arduino Uno por meio dos pinos Rx e Tx.

Presumo que você conectará o TX de um Arduino ao RX do outro e vice-versa, que é a maneira certa de conectá-los. Como o Selion explicou em sua resposta, você não deve conectar dois pinos TX juntos.

se uma ou ambas as placas Arduino foram conectadas ao computador e possivelmente abriram monitores seriais

Se você fizer isso, o Arduino nem notará.

Bem, para ser mais preciso … há um pequeno chip no Uno, nea r o conector USB, denominado “MEGA16U2”. Este chip é usado como conversor USB / serial e irá notar quando você conectar o link USB e quando você abrir a porta. No entanto, o chip principal (o grande PDIP28), que é o microcontrolador que executa seu esboço, não saberá nem se importará.

irá fixar Tx e Rx ainda está funcionando?

Com certeza.

O Arduino ainda se comunicará por Rx e o pino Tx quando está se comunicando com o computador?

O RX não se comunicará com o computador. O que acontecerá é:

  • O que quer que seu Arduino grave em sua porta serial, será recebido pelo outro Arduino e pelo monitor serial.
  • Tudo o que você enviar por meio do monitor serial será perdido.
  • Quando você Serial.read(), obterá tudo o que foi definido pelo outro Arduino.

O motivo desse comportamento é 1   kΩ resistor que fica entre o TX do Mega16U2 e o RX do microcontrolador principal. Quando você conecta este RX ao TX do outro Arduino, que é de baixa impedância (≈ 2 5   Ω), esse TX “ganhará”: uma saída de baixa impedância supera uma de alta impedância.

Resposta

como fazer [dois Arduinos se comunicando] funcionando enquanto se conectam ao computador?

Existem várias maneiras de 2 Arduinos se comunicarem diretamente entre si enquanto um ou os dois estão se comunicando com o monitor serial de um laptop por USB.

  • Use um UART para os Arduinos se comunicarem de forma independente da conexão USB. (Veja https://www.arduino.cc/reference/en/language/functions/communication/serial/ )

    • Várias placas compatíveis com Arduino, como o Arduino Mega 2560, Arduino Due, Arduino Uno Wifi Rev.2, etc. tem 4 UARTs de hardware; os pinos do Serial1 (observe o “1”) poderiam ser usados para se comunicar com outro Arduino sem interferir na comunicação UART Serial (sem um “1”) via USB para um laptop. (Infelizmente, o Arduino Uno tem apenas 1 UART de hardware).
    • O Arduino Micro baseado em ATmega32u4 e Arduino Leonardo e derivados do Arduino baseados em ATmega32u4 como FLORA e muitos dos derivados do Arduino baseados em ARM, como a série Teensy , têm uma interface USB que não usa nenhuma dos pinos UART; portanto, os pinos de Serial1 (observe o “1”) poderiam ser usados para se comunicar com outro Arduino sem interferir na comunicação serial (sem um “1”) não UART por USB para um laptop. (Infelizmente , o Arduino Uno tem uma interface USB que não usa seus únicos pinos UART de hardware).
    • Até mesmo o Arduino Uno, que tem apenas 1 UART de hardware cujos pinos são conectados fisicamente o chip de interface USB pode fazer uma simulação lenta de um UART em outros pinos. Veja Qual ' é a diferença entre todos as Bibliotecas seriais de software? Qual delas é compatível com o Arduino Nano? .
  • Em vez de tentar simular um UART no software (o tempo é meio complicado), pode ser mais fácil / rápido usar algum outro menos sensível ao tempo formas de comunicação entre o Arduino Unos ou outros Arduinos, como

Resposta

Eu tenho exatamente o mesmo problema! Eu estava usando a placa Arduino Uno com um Jtag ICE mkii para depuração, que estava funcionando bem. Quando comecei a usar o UART, era uma bagunça pesada. A transmissão do Arduino para um adaptador TTL-USB externo estava funcionando, mas não na outra direção. Joguei horas antes de ver este tópico e isso me deu a ideia de pesquisar o shematic – > Bang! Eu vi os dois resistores. Lição aprendida: não use o hardware Arduino sem o resto das ferramentas! Achei uma boa ideia usar o hardware para um desenvolvimento rápido. Agora me custa mais tempo que pensei …

Resposta

Você deveria “t conectar dois pinos TX juntos. O Arduino tem alguns resistores de proteção, mas mesmo assim não é recomendado conectar dois pinos de saída.

A única maneira segura de usar os pinos RX / TX diretamente é remover os resistores de proteção (RN4A e RN4B no design de referência ) ou pelo menos o RN4A e use apenas uma conexão por vez. Não adianta se você não usar a conexão do PC ou não abrir o Monitor Serial, pois os pinos ainda são uma saída.

(Vários pinos RX não são problema, pois são entradas)

(E, claro, sei que poderia funcionar com vários pinos TX juntos na maioria das vezes, mas eu recomendaria)

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *