Perché non riesco a caricare uno schizzo mentre altri componenti / dispositivi sono collegati al mio Uno?


19

Volevo realizzare un circuito abbastanza semplice che facesse lampeggiare una serie di LED in sequenza, usando il mio Arduino Uno (più specificamente, un clone SainSmart). Ho scritto il mio schizzo e compilato bene. Successivamente, ho collegato 8 LED + resistori ai pin da 0 a 7, quindi ho collegato Uno al mio computer tramite USB.

Ho caricato schizzi con successo in passato, quindi sono sicuro che le mie impostazioni, i driver ecc. Sono corretti. Tuttavia, quando ho provato a caricare il mio schizzo questa volta, non ha funzionato.

Ho provato a rimuovere tutto ciò che avevo collegato ai pin di Arduino e all'improvviso il caricamento ha funzionato di nuovo.

Perché succede? Significa che devo scollegare tutto dalla scheda ogni volta che carico uno schizzo?

Risposte:


22

Il problema riguarda in particolare i pin 0 e 1. Sebbene possano essere utilizzati come normali pin IO digitali, servono anche come pin RX e TX per la porta seriale di Uno. La connessione USB (per caricare schizzi, ecc.) Viene instradata internamente agli stessi pin. Sfortunatamente ciò significa che qualsiasi cosa connessa ai pin 0 e 1 può interferire con la connessione seriale, impedendo la comunicazione tramite USB.

In breve, non è necessario disconnettere tutto durante il caricamento di uno schizzo. Dovrebbe essere necessario solo scollegare qualsiasi cosa dai pin 0 e 1. Invece di passare attraverso quella seccatura ogni volta che viene caricato uno schizzo, potrebbe essere meglio solo evitare di usare quei pin a meno che non sia necessario (ad es. il tuo progetto richiede una connessione seriale a un altro dispositivo).


2
Bel modo di insegnare alla comunità.
JVarhol,

2
Poiché Arduino è anche programmato da SPI, che risiede sui pin 10-13, è anche possibile impedirne il caricamento su questi pin
TheDoctor,

1
Domande e risposte ben scritte! Mi piacerebbe vedere altri tuoi post simili :)
asheeshr,

3
@TheDoctor - Errato! I pin SPI sono rilevanti solo se si utilizza un programmatore interno al sistema. Il meccanismo di programmazione bootloader non richiede i pin SPI affatto . A meno che non stia collegando uno strumento di programmazione hardware separato, questo non è qualcosa di cui devi preoccuparti .
Connor Wolf,

0

"Peter R. Bloomfield" Ero solito caricare uno schizzo nel mio arduino uno collegando i pin Rx e Tx ma il mio schizzo veniva caricato. In realtà il problema è che arduino uno driver potrebbe essere eliminato nel tuo caso


1
Questo era inteso come una domanda di riferimento. La stessa persona ha posto e risposto alla domanda. Dubito che il suo problema sia che il driver è stato eliminato.
Nick Gammon
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.