Berapa panjang kawat maksimum untuk komunikasi serial antara dua Arduino?

9

Saya sedang membangun sebuah proyek di mana dua Arduino akan dihubungkan oleh tiga kabel: TX RX untuk komunikasi serial dan GND umum. Berapa panjang maksimum kabel di sini sebelum komunikasi terpengaruh?

Saya menggunakan Arduino Mega R3 di satu sisi dan Arduino Mini di sisi lain.

Saya tidak memiliki persyaratan khusus untuk Baud rate, saya bisa menggunakan yang terendah jika ini membantu.

hobi
sumber

Jawaban:

4

Anda harus menentukan

  • Urutan kisaran yang Anda minati - apakah dalam urutan meter, puluhan meter, kilometer atau antar negara? :-). SEMUA dimungkinkan dengan kompromi yang sesuai.

  • Bagaimana Anda akan terhubung ke sirkuit - pin Arduino langsung, buffer tinggi / rendah, driver diferensial, ...

Jika Anda menggunakan 5V / 0V "unipolar" maka katakanlah 9600 baud Anda bisa mendapatkan banyak meter dengan driver yang sesuai. Jika Anda menggunakan pin Arduino secara langsung, resistansi kawat dan induktansi akan mulai menjadi masalah karena rentang meningkat.

Pada 300 baud, Anda dapat mencapai ratusan meter dengan kabel twisted pair. Karena rentang meningkatkan aspek-aspek seperti cross-talk dari sirkuit lain dan kebisingan eksternal meningkat. Pada rentang yang lebih panjang memiliki 4 kabel dengan sinyal + arde dipilin bersama dalam setiap kasus membantu TAPI kemungkinan pada rentang bunga 2 kabel plus arde akan bekerja OK.

Jika Anda siap menggunakan tegangan yang cukup dan pensinyalan yang cukup lambat, Anda dapat memberi sinyal lebih dari ribuan mil - seperti yang dilakukan dengan kabel telegraf yang sangat awal. Ribuan volt diperlukan dan kecepatan pensinyalan mungkin beberapa bit per detik akan menjadi disinsentif dalam kebanyakan kasus.

Russell McMahon
sumber
Jarak yang ingin saya tempuh adalah sekitar 40-50 meter dari dalam rumah kami ke pintu gerbang luar. Tujuan saya adalah untuk menghubungkan pin Arduino yang relevan secara langsung dengan kabel yang saya temukan dari instalasi interkom sebelumnya.
hobie
2
Beberapa bahaya bagi Arduino dengan kabel yang agak panjang. Induksi, kebocoran, muatan elektrostatik. (Petir & kenaikan tanah dari kesalahan daya hanya mungkin tapi ...). Membalikkan dioda penjepit ke rel catu daya di semua lini adalah ide yang bagus. IC driver dasar ide yang SANGAT bagus. Bahkan IC inverter hex xitt74xx14 hex Schmitt di setiap ujung akan berguna. (di mana xx bervariasi dengan keluarga). Driver garis yang tepat bahkan lebih baik tapi itu awal. JIKA Arduino Anda berharga, gunakan buffer.
Russell McMahon
Terima kasih semuanya atas komentar dan sarannya. Untuk mengetahui apakah saya dapat menutupi jarak yang diberikan (sekitar 40m) dengan koneksi sederhana, saya mencobanya dengan dua Arduino Uno, yang masing-masing diatur sebagai pengirim dan penerima. Papan terhubung langsung melalui garis TX / RX (pin 0 dan 1) pada 9600 bit per detik. Pengirim mengirimkan string tes setiap detik saat penerima mendengarkan data yang masuk. Saya menggunakan saluran yang ada (tidak ada info tentang kualitas / spesifikasi kabel ini. Pokoknya, pasangan pengirim / penerima tampaknya berfungsi tanpa masalah pada jarak dan konfigurasi ini.
hobie
Terima kasih, apakah Anda memiliki saran / tautan khusus ke IC atau chip driver?
Hobi
@obie Pada 50 meter dan 9600 baud Anda mungkin dapat mencapai hasil OK (coba dan lihat) dengan hampir semua IC driver digital 5V dan bahkan hanya IC output digital. Titik awal yang bermanfaat adalah Schmitt trigger CMOS inverter biasanya 74xxx14, CDxxx14, MM ..... 14. Carilah inverter yang dipicu Schmitt, hindari yang berkekuatan drive terendah.
Russell McMahon