Mengapa saya tidak dapat mengunggah sketsa saat komponen / perangkat lain terhubung ke Uno saya?

19

Saya ingin membuat sirkuit yang cukup sederhana yang akan mem-flash serangkaian LED secara berurutan, menggunakan Arduino Uno saya (lebih khusus, klon SainSmart). Saya menulis sketsa saya dan itu dikompilasi dengan baik. Setelah itu, saya menghubungkan 8 LED + resistor ke pin 0 hingga 7, dan kemudian menghubungkan Uno ke komputer saya melalui USB.

Saya telah mengunggah sketsa dengan sukses di masa lalu, jadi saya yakin pengaturan dan driver saya dll sudah benar. Namun, ketika saya mencoba mengunggah sketsa saya kali ini, tidak berhasil.

Saya mencoba menghapus semua yang saya sambungkan ke pin Arduino, dan tiba-tiba unggahan itu bekerja lagi.

Mengapa ini terjadi? Apakah itu berarti saya harus memutuskan segala sesuatu dari papan setiap kali saya mengunggah sketsa?

Peter Bloomfield
sumber

Jawaban:

22

Masalahnya adalah pin 0 dan 1. Meskipun mereka dapat digunakan sebagai pin IO digital biasa, mereka juga berfungsi sebagai pin RX dan TX untuk port serial Uno. Koneksi USB (untuk mengunggah sketsa, dll.) Dialihkan ke pin yang sama secara internal. Sayangnya itu berarti apa pun yang terhubung pada pin 0 dan 1 dapat mengganggu koneksi serial, mencegah komunikasi melalui USB.

Singkatnya, tidak perlu memutus semuanya saat mengunggah sketsa. Seharusnya hanya perlu untuk memutuskan apa pun dari pin 0 dan 1. Daripada melalui kerumitan itu setiap kali sketsa diunggah, mungkin lebih baik hanya menghindari menggunakan pin-pin itu kecuali diperlukan (misalnya Anda kehabisan pin lain, atau proyek Anda memerlukan koneksi serial ke perangkat lain).

Peter Bloomfield
sumber
2
Cara yang bagus untuk mengajar masyarakat.
JVarhol
2
Karena Arduino juga diprogram oleh SPI, yang berada pada pin 10-13, juga memungkinkan untuk mencegahnya mengunggah pada pin ini
TheDoctor
1
Q&A yang ditulis dengan baik! Saya ingin melihat lebih banyak posting seperti itu dari Anda :)
asheeshr
3
@TheDoctor - Salah! Pin SPI hanya relevan jika Anda menggunakan In-System-Programmer. Mekanisme pemrograman bootloader tidak memerlukan pin SPI sama sekali . Kecuali Anda menghubungkan alat pemrograman perangkat keras yang terpisah, ini bukan sesuatu yang perlu Anda khawatirkan .
Connor Wolf
0

"Peter R. Bloomfield" Saya dulu mengunggah sketsa di arduino uno saya dengan menghubungkan Rx dan pin Tx tetapi sketsa saya diunggah. Sebenarnya masalahnya adalah arduino uno driver dapat dihapus dalam kasus Anda

Uttam
sumber
1
Ini dimaksudkan sebagai pertanyaan referensi. Orang yang sama bertanya dan menjawab pertanyaan itu. Saya ragu masalahnya adalah bahwa driver telah dihapus.
Nick Gammon