Por que não consigo carregar um esboço enquanto outros componentes / dispositivos estão conectados ao meu Uno?

19

Eu queria fazer um circuito bastante simples que mostrasse uma série de LEDs em sequência, usando o meu Arduino Uno (mais especificamente, um clone do SainSmart). Eu escrevi meu esboço e ele compilou bem. Depois disso, conectei 8 resistores LEDS + aos pinos de 0 a 7 e depois conectei o Uno ao meu computador via USB.

Fiz upload de esboços com sucesso no passado, por isso tenho certeza de que minhas configurações, drivers etc. estão corretos. No entanto, quando tentei fazer upload do meu esboço dessa vez, ele não funcionou.

Tentei remover tudo o que havia conectado aos pinos do Arduino e, de repente, o upload funcionou novamente.

Por que isso acontece? Isso significa que tenho que desconectar tudo do quadro toda vez que carregar um esboço?

Peter Bloomfield
fonte

Respostas:

22

O problema é especificamente os pinos 0 e 1. Embora possam ser usados ​​como pinos regulares de E / S digitais, eles também servem como pinos RX e TX para a porta serial do Uno. A conexão USB (para carregar esboços etc.) é roteada internamente para os mesmos pinos. Infelizmente, isso significa que qualquer coisa conectada nos pinos 0 e 1 pode interferir na conexão serial, impedindo a comunicação via USB.

Em resumo, não é necessário desconectar tudo ao carregar um esboço. Só deve ser necessário desconectar qualquer coisa dos pinos 0 e 1. Em vez de passar por esse aborrecimento toda vez que um esboço é carregado, talvez seja melhor evitar usá-los, a menos que seja necessário (por exemplo, você fica sem outros pinos ou seu projeto precisa de uma conexão serial com outro dispositivo).

Peter Bloomfield
fonte
2
Ótima maneira de ensinar a comunidade.
JVarhol
2
Como o Arduino também é programado pela SPI, que reside nos pinos 10-13, também é possível impedir que ele faça upload desses pinos.
TheDoctor
1
Perguntas e respostas bem escritas! Eu adoraria ver mais dessas mensagens de você :)
asheeshr
3
@TheDoctor - Incorreto! Os pinos SPI são relevantes apenas se você estiver usando um programador no sistema. O mecanismo de programação bootloader não requer os pinos SPI em tudo . A menos que você esteja conectando uma ferramenta de programação de hardware separada, não é necessário se preocupar com isso .
Connor Lobo
0

"Peter R. Bloomfield" Eu costumava fazer upload de esboços no meu arduino uno, conectando os pinos Rx e Tx, mas meu esboço é carregado. Na verdade, o problema é que o driver arduino uno pode ser excluído no seu caso

Uttam
fonte
1
Isso foi planejado como uma pergunta de referência. A mesma pessoa perguntou e respondeu à pergunta. Duvido que o problema dele seja que o driver foi excluído.
Nick Gammon