Çoklayıcı: bilmeniz gereken her şey

çoklayıcı çip

Un çoklayıcı birkaç girişe ve tek bir veri çıkışına sahip kombinasyonel bir devredir. Bununla, girişlerinden sadece birinin geçişini çıkışına yönlendirmek mümkündür. Yani, girişteki veriyi veya biti hangi girişten alacağınızı seçebilir ve diğer girişleri yok sayabilirsiniz. Bu, birkaç bağlantının tek bir hattı veya veriyolunu paylaşması gerektiğinde elektronikte çok yaygındır.

Yani, çoklayıcıyı kontrol ederek şunları yapabilirsiniz: her zaman uygun girişi seçin. Tek bir bağlantıya sahip olmanıza rağmen, aynı anda birden fazla giriş cihazıyla, birbirlerini engellemeden çalışabilmenizi mümkün kılan şey. Ayrıca, bir çok projede genellikle çoklayıcı ile birlikte bir demultiplexer kullanıldığını bilmelisiniz ...

Çoklayıcı nedir?

çoklayıcı

Bu birleşimsel hizmetler çoklayıcılar genellikle karmaşık değildirler. Veri girişlerinin miktarına bağlı olarak birkaç mantık geçidinden oluşurlar ve kontrol karmaşıklığı artırabilir. Genellikle içerirler 2n girişler ve tek bir çıkışın yanı sıra kontrol hatları. Ve mevcut bilet sayısını artırmak için birkaçını kombinasyon halinde kullanabilirsiniz.

Olarak anlaşılabilir bir seçici. Örneğin, inşa edilebilecek en basit olan iki girişli çok basit bir tanesine sahip olduğunuzu hayal edin. Bu devrenin tek bir kontrol girişi ve çıkışı olacaktır. Girişler A ve B ise, kontrol girişi ile değerini S çıkışına iletenin A mı yoksa B olarak mı yaptığını kontrol etmek mümkündür. Bunu yapmak için, kontrol çizgisi C'nin değerini değiştirmelisiniz. Örneğin, C = 0 ise A ve C = 1 ise B olacaktır.

Anlayacağınız gibi, daha fazla girdi varsa, daha fazlasına ihtiyaç duyulacaktır. kontrol girişleri seçim için. Aslında, çoklayıcı, dahil edilen her bir AND geçidi için bir etkinleştirme sinyali ve çıkış ile AND geçitleri arasında bir OR geçidi olan özel bir kod çözücü türüdür. Bu şekilde kolaylıkla seçilebilir.

Uygulamalarına gelince, onu kullanabilirsiniz birçok şey için:

  • Birden fazla girişiniz olduğunda tek bir veriyolu veya hattı paylaşmak için giriş seçici.
  • Serileştirici, böylece girişlerinin her birinin değerini sırayla alır.
  • Çeşitli cihazlardan gelen çeşitli veriler için aynı bağlantı hatlarını kullanarak çoğullamalı iletim için. Örneğin, birkaç cihaz çıkışını bağlamak için bir mikrodenetleyicinin aynı veri pinini kullanmak istediğinizi, ancak her seferinde yalnızca bir tane bilgi gönderebileceğini hayal edin ...
  • Mantıksal işlevleri vb. Gerçekleştirin

Çoklayıcı türleri

İletimin bölünme şekline bağlı olarak, çeşitli tipler çoklayıcılar veya çoğullayıcı:

  • Frekans bölmesine göre
  • Zaman bölüşümüne göre
  • Kod bölümüne göre
  • Bölünmesine göre dalga boyu

Tahmin edebileceğiniz gibi, frekansla, zamanla bir saatle, ikili kodla ve dalga boyuyla kontrol edilirler. Ama burada sadece geleneksel olanla ilgileniyorum ...

Çoğullama çözücüde olduğu gibi tiplere ek olarak, şununla bulabilirsiniz: az ya da çok kanal DIY projeleriniz için neye ihtiyacınız olduğuna bağlı olarak 2, 4, 8, 16 vb.

Demultiplexer ile farklılıklar

çoğullama çözücü

Dijital elektronikte var çoğullama çözücüçoklayıcının antagonisti olan bir birleşimsel devre. Bu durumda yalnızca bir bilgi girişi olacaktır, ancak çeşitli çıktıları aracılığıyla iletilebilir. Diğer bir deyişle, bu durumda, kontrol sinyalleri giriş verilerinin hangi çıkışa aktarılacağına karar verecektir.

Si bir çoklayıcı çıkışına bir demultiplexer bağlarsınız, her iki cihazın nasıl çalıştığını öğrenmek için çok kullanışlı bir sisteme sahip olabilirsiniz.

Nereden Alınır?

çoklayıcı demultiplexer

Bu cihazlar normalde daldırma çipleri Çok basit. Demultiplexer olmanız durumunda bunları çok çeşitli markalarda ve bir dizi girdi veya çıktıyla bulabilirsiniz. Ek olarak, çeşitli özel ortamlarda veya çevrimiçi mağazalarda kolayca bulunurlar. İyi bir fiyata bir tane satın almakla ilgileniyorsanız, bunlar projelerinizle başlamak için iyi örnekler olabilir:

Okumanızı tavsiye ederim veri sayfaları üreticileri hakkında net bir fikir edinmek için Elektriksel bağlantı, satın aldığınız üreticiye veya türe göre değişiklik gösterebileceklerinden.

cd74hc4067

Ek olarak, gördüğünüz gibi, her iki cihazı bir arada bulundurmanıza izin veren çok iyi modüller de var. Durum böyle bilinen CD74HC4067MUX / DEMUX'a sahip olarak 16 banali ile çift yönlü çalışmanıza yardımcı olabilecek TTL teknolojisine sahip küçük bir modül. Yani, onu bir tür akıllı anahtar olarak kullanabilirsiniz.

Böylece Arduino'nuz 1 adede kadar okuyup yazabilir.6 farklı cihaz sadece 5 pinli, 4 tanesi kontrol için kullanılır ve bir tanesi de seçilen kanala göre okunması veya yazılması amaçlanan sinyali toplamak için kullanılır.

Bu çipin iyi yanı, hem dijital hem de analog sinyallerle çalışırbu, onu analog ve diğer dijital çipler üzerinde çalışan birçok sensörün yanı sıra çok sayıda farklı elektronik elemanla uyumlu hale getirir. Çok yönlülük sağlar. Bu nedenle G / Ç genişleticiler veya giriş ve çıkış amplifikatörleri olarak da bilinirler ...

Şunun için bile kullanabilirsin seri bağlantı noktası üzerinden iletişim, I2C otobüsü veya başka durumlarda daha önce bahsettiğimiz SPI.

Tabii onunla çalışmadan önce şunlardan emin olmalısınız: gerilimleri ve akımları karşılayın bu devreye zarar vermemek için kabul ediyor. Örneğin, bu durumda 20 mA'ya kadar ve 2 ila 6v'luk bir voltaj sağlayabilir. Ancak, daha yüksek akımlarla çalışmak istiyorsanız bir röle kullanabilirsin veya bir transistör aracılığıyla.

Arduino ile entegrasyon

Bluetooth özellikli Arduino

Tek yönlü Arduino kartınızda daha fazla giriş veya daha fazla çıkış var, bu çoklayıcıları ve çoğullayıcıları kullanmaktır. Onlarla, daha fazla pime sahip daha yüksek fiyatlı bir tahta satın almaktan veya ihtiyacınız olan her şeyi bağlamak için başka numaralar kullanmak zorunda kalmayacaksınız.

Örneğin, bir MUX ve DEMUX modülü Her ikisine de tek bir elemanda sahip olabilmek ve daha sonra bunu basit bir şekilde Arduino ile projenize entegre edebilmek. CD74HC4067 ile onu çok kolay bir şekilde bağlayabilirsiniz, bu nedenle şu kurallara uymanız gerekir:

  • MUX / DEMUX çipinin Vcc'si, onu Arduino'nun Vcc'sine veya 5V'ye bağlamanız gerekir.
  • GND, toprak, onu Arduino'nun GND'sine bağlamalısınız.
  • S0, S1, S2, S3 olarak işaretlenmiş pinler, D8, D9, D10 ve D11 gibi dört Arduino dijital I / O ile aktif kanalı kontrol eden pinlerdir.
  • EN aynı zamanda bir çoklayıcı olarak çalışabilmesi için bunu Arduino'nun GND'sine bağlayabilirsiniz.
  • Ve SIG, seçilen kanalı belirleyecek olan çıkış sinyalidir. Arduino ya da çıkışı okuması gereken herhangi bir cihaza bağlanabilir. Bu durumda, değerleri Arduino'nun kendisinden elde etmek için A0'a bağladım.
  • Modülün diğer ucunda bu durumda cihazlarınıza bağlayabileceğiniz C0-C10 girişlerine sahip olacaksınız.

Bağlandıktan sonra Arduino kodu basit olabilir. Çoklayıcı olarak Arduino IDE çizimi Aşağıdakiler olabilir (bu kod yalnızca sırasıyla kanallarını kapatır ve açar, ancak istediğiniz projeyi yapmak için onu değiştirebilirsiniz):

const int muxSIG = A0;
const int muxS0 = 8;
const int muxS1 = 9;
const int muxS2 = 10;
const int muxS3 = 11;
 
int SetMuxChannel(byte channel)
{
   digitalWrite(muxS0, bitRead(channel, 0));
   digitalWrite(muxS1, bitRead(channel, 1));
   digitalWrite(muxS2, bitRead(channel, 2));
   digitalWrite(muxS3, bitRead(channel, 3));
}
 
void setup()
{
   pinMode(muxSIG, OUTPUT);
   pinMode(muxS0, OUTPUT);
   pinMode(muxS1, OUTPUT);
   pinMode(muxS2, OUTPUT);
   pinMode(muxS3, OUTPUT);
}
 
void loop()
{
   for (byte i = 0; i < 16; i++)
   {
      SetMuxChannel(i);
      digitalWrite(muxSIG, HIGH);
      delay(200);
      digitalWrite(muxSIG, LOW);
      delay(200);
   }
}

DEMUX olarak kullanmak istiyorsanız, yalnızca C0-C10'un çıkışlar olacağını ve SIG'nin giriş olacağını düşünmelisiniz. Eğer istersen Demultiplexer olarak kullanınkod şu şekilde değişir:

onst int muxSIG = A0;
const int muxS0 = 8;
const int muxS1 = 9;
const int muxS2 = 10;
const int muxS3 = 11;
 
int SetMuxChannel(byte channel)
{
   digitalWrite(muxS0, bitRead(channel, 0));
   digitalWrite(muxS1, bitRead(channel, 1));
   digitalWrite(muxS2, bitRead(channel, 2));
   digitalWrite(muxS3, bitRead(channel, 3));
}
 
void setup()
{
   Serial.begin(9600);
   pinMode(muxS0, OUTPUT);
   pinMode(muxS1, OUTPUT);
   pinMode(muxS2, OUTPUT);
   pinMode(muxS3, OUTPUT);
}
 
void loop()
{
   for (byte i = 0; i < 16; i++)
   {
      SetMuxChannel(i);
      byte muxValue = analogRead(muxSIG);
 
      Serial.print(muxValue);
      Serial.print("\t");
   }
   Serial.println();
   delay(1000);
}

Bizim yardımıyla daha fazla bilgi alabileceğinizi unutmayın. ücretsiz Arduino programlama kursu.


Bir yorum bırak seninkini

Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   Xavier Ortiz dijo

    Merhaba, bir proje yapıyorum, 74hc4067'yi 16 kızılötesi engel sensörünün girişleri için kullanmak ve her sensörün beni farklı bir çıkışa çevirmesi için yaptığım şey. Peki, arduino mega ile yapabilirsem ama 50 kızılötesi sensör kullanmam gerekiyor ve her birinin bir çıkışı, yani 50 çıkışı açması gerekiyor, sensör girişleri için birkaç 744067 ve çıkışlar için tlc5940 kullanmayı düşünüyorum. ama programlama kodu nedir biraz kayboldum, yardımınız için şimdiden teşekkürler.