İki Arduino arasında seri iletişim için maksimum kablo uzunluğu nedir?


9

İki Arduino'nun üç kabloyla bağlanacağı bir proje inşa ediyorum: TX seri iletişim için bir RX ve ortak bir GND. İletişim etkilenmeden önce buradaki tellerin maksimum uzunluğu ne olur?

Bir tarafta Arduino Mega R3 ve diğer tarafta Arduino Mini kullanıyorum.

Baud hızı için özel bir gereksinimim yok, bu herhangi bir şekilde yardımcı olursa en düşük olanı kullanabilirim.

Yanıtlar:


4

Belirtmeniz gerekiyor

  • İlgilendiğiniz aralık sırası - metre, onlarca metre, kilometre veya eyaletler arası mı? :-). ALL, uygun uzlaşma ile mümkündür.

  • Devreye nasıl bağlanmayı düşünüyorsunuz - doğrudan Arduino pinleri, yüksek / düşük tampon, diferansiyel sürücüler, ...

5V / 0V "tek kutuplu" kullanıyorsanız, 9600 baud'da uygun sürücülerle birçok metre alabilirsiniz. Bir Arduino pimi kullanırsanız, doğrudan tel direnci ve menzil arttıkça endüktans önemli olmaya başlayacaktır.

300 baud'da bükümlü çift kablolarla yüzlerce metreye ulaşabilirsiniz. Menzil arttıkça, diğer devreden çapraz konuşma ve dış gürültü gibi unsurlar önem kazanmaktadır. Her durumda sinyal + topraklama ile birlikte 4 kabloya sahip daha uzun aralıklarda AMA yardımcı olur, ancak ilgilenilen aralıklarda 2 tel artı toprak düzgün çalışacaktır.

Yeterli voltaj ve yeterince yavaş sinyal vermeye hazırsanız, çok erken telgraf kablolarında olduğu gibi binlerce milden fazla sinyal alabilirsiniz. Gerekli binlerce volt ve saniyede birkaç bitlik sinyal hızları çoğu durumda caydırıcı olacaktır.


Kat etmek istediğim mesafe evimizin içinden kapıya yaklaşık 40-50 metredir. Amacım, ilgili Arduino pimlerini doğrudan bir önceki interkom kurulumundan bulduğum bir kabloyla bağlamaktı.
hobie

2
Uzun süren kablolarla Arduino için bazı tehlikeler. İndüksiyon, sızıntı, elektrostatik yük. (Yıldırım ve toprak arızası sadece güç arızasından belki ama ...). Tüm hatlardaki güç kaynağı raylarına geri kelepçe diyotları iyi bir fikir. Temel sürücü IC ÇOK iyi bir fikir. Her iki uçta bir xx74xx14 hex Schmitt invertör IC bile yararlı olacaktır. (burada xx, aileye göre değişir). Doğru hat sürücüleri daha da iyi ama bu bir başlangıç. Arduino'nuz değerliyse bir tampon kullanın.
Russell McMahon

Görüş ve önerileriniz için herkese teşekkürler. Verilen mesafeyi (yaklaşık 40m) basit bir bağlantıyla kapatabildiğimi öğrenmek için, sırasıyla bir gönderici ve alıcı olarak kurulan iki Arduino Uno ile denedim. Kartlar TX / RX hatları (pim 0 ve 1) üzerinden saniyede 9600 bit hızla bağlanır. Alıcı gelen verileri dinlerken gönderen her saniye bir test dizesi gönderir. Mevcut bir hat kullanıyorum (bu kablonun kalitesi / özellikleri hakkında bilgi yok. Neyse, gönderen / alıcı çifti bu mesafe ve konfigürasyonda sorunsuz çalışıyor gibi görünüyor.
hobie

Teşekkürler, IC veya sürücü çipine özel bir öneriniz / bağlantınız var mı?
hobie

@hobie 50 metre ve 9600 baud'da neredeyse her 5V dijital sürücü IC'si ve hatta sadece dijital çıkış IC'leri ile OK sonuçları elde edebilirsiniz (deneyin ve görün). Yararlı bir başlangıç ​​noktası, tipik olarak 74xxx14, CDxxx14, MM ..... 14 olan Schmitt tetik CMOS invertörleridir. Schmitt tetiklemeli inverterleri arayın, en düşük tahrik gücünden kaçının.
Russell McMahon
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.