Multiplexer: minden, amit tudnia kell

multiplexer chip

Un multiplexer egy kombinációs áramkör, amely több bemenettel és egyetlen adatkimenettel rendelkezik. Ezzel lehetőség van csak az egyik bejáratának átjáróját kiválasztani, hogy a kijáratához irányítsa. Vagyis kiválaszthatja, hogy melyik bemenetből vegye a bemeneten lévő adatot vagy bitet, és figyelmen kívül hagyhatja a többi bemenetet. Ez nagyon gyakori az elektronikában, amikor több kapcsolathoz van szükség egy vonal vagy busz megosztására.

Vagyis a multiplexer vezérlésével mindig válassza ki a megfelelő bemenetet. Mi teszi lehetővé, hogy annak ellenére, hogy csak egy kapcsolata van, több bemeneti eszközzel dolgozhat egyszerre anélkül, hogy azok interferálnának egymással. Azt is tudnia kell, hogy a demultiplexert általában a multiplexerrel együtt használják sok projektben ...

Mi az a multiplexer?

multiplexer

Ezek a kombinációs szolgáltatások hívták multiplexerek általában nem összetettek. Néhány logikai kapuból állnak, az adatbevitel mennyiségétől függően, és az irányítás növelheti a bonyolultságot. Általában tartalmazzák 2n bemenetek és egyetlen kimenet, valamint vezérlő vonalak. Közülük pedig több is használható együtt a rendelkezésre álló jegyek számának növelésére.

Felfogható úgy egy választó. Például képzelje el, hogy van egy nagyon egyszerű, két bemenettel, a legegyszerűbb, amit fel lehet építeni. Ennek az áramkörnek egyetlen vezérlő bemenete és kimenete lesz. Ha a bemenetek A és B, akkor a vezérlő bemenettel szabályozható, hogy A-e adja-e át az értékét az S kimenetnek, vagy pedig B-e. Ehhez csak a C vezérlővonal értékét kell megváltoztatnia. Például, ha C = 0, akkor A, és ha C = 1, akkor B.

Mint megérted, ha több bemenet van, akkor többre lesz szükség vezérlő bemenetek a kiválasztáshoz. Valójában a multiplexer egy speciális típusú dekóder, minden egyes bekapcsolt AND kapunál egy engedélyező jellel és a kimenet és az AND kapuk között egy OR kapuval. Így könnyen kiválasztható.

Ami az alkalmazásait illeti, használhatja a dolgok sokaságáért:

  • Bemenetválasztó egyetlen busz vagy vonal megosztására, ha több bemenet van.
  • A Serializer úgy, hogy az egyes bemenetek értékét rendbe hozza.
  • Multiplexes adatátvitelhez, ugyanazon csatlakozási vonalak használatával, különféle adatokhoz különböző eszközökről. Képzelje el például, hogy ugyanazzal a mikrovezérlő tűvel szeretné használni több eszköz kimenetének összekapcsolását, de csak egyszerre tud információkat küldeni ...
  • Logikai funkciók végrehajtása stb.

Multiplexer típusok

Az átvitel felosztásának módjától függően vannak különféle típusok multiplexerek vagy multiplexerek:

  • Frekvenciaosztás szerint
  • Időosztás szerint
  • Kódfelosztás szerint
  • A felosztás szerint hullámhossz

Ahogy el lehet képzelni, frekvencia, idő, óra, bináris kód és hullámhossz vezérli őket. De itt csak a hagyományos ...

A típusok mellett, mint a demultiplexernél, itt is megtalálható többé-kevésbé csatornák 2, 4, 8, 16 stb., Attól függően, hogy mire van szükséged a barkácsprojektekhez.

Különbségek egy demultiplexerrel

demultiplexer

A digitális elektronikában van demultiplexer, egy kombinációs áramkör, amely a multiplexer antagonistája. Ebben az esetben csak egy információbemenet lesz, de továbbítható különféle kimenetein keresztül. Más szavakkal, ebben az esetben a vezérlőjelek segítségével dől el, hogy melyik kimenetre továbbítják a bemenő adatokat.

Si demultiplexert csatlakoztat a multiplexer kimenetéhez, akkor nagyon hasznos rendszerrel rendelkezhet mindkét eszköz működésének megismeréséhez.

Hol kapható?

multiplexer demultiplexer

Ezeket az eszközöket általában mártogató chips Nagyon egyszerű. Megtalálhatók sokféle márkában, és számos bemenettel vagy kimenettel, ha demultiplexerről van szó. Ezenkívül könnyen megtalálhatók különféle speciális médiákban vagy online áruházakban. Ha érdekel egy jó áron történő megvásárlás, ezek jó példák lehetnek a projektek kezdetéhez:

Azt tanácsolom, olvassa el az adatlapokat gyártóktól, hogy világos képet kapjanak kitűz, mivel a megvásárolt gyártótól vagy típustól függően változhatnak.

cd74hc4067

Ezen felül, amint láthatja, vannak nagyon jó modulok is, amelyek lehetővé teszik, hogy mindkét eszköz egyben legyen. Ez a helyzet ismert CD74HC4067, egy kis modul TTL technológiával, amely segíthet abban, hogy 16 banáljával kétirányú módon dolgozzon, a MUX / DEMUX használatával. Vagyis egyfajta okos kapcsolóként használhatja.

Így az Arduino akár 1-ig képes írni és olvasni6 különböző eszköz mindössze 5 érintkezõvel, amelyek közül 4-et használnak a vezérléshez, és egy másikat a kiválasztott csatorna szerint olvasható vagy írandó jel összegyûjtésére.

Az a jó ebben a chipben, hogy digitális és analóg jelekkel egyaránt működik, így kompatibilis számos érzékelővel, amelyek analóg és más digitális chipeken működnek, valamint különféle elektronikus elemek sokaságával. Nagyszerű sokoldalúságot nyújt. Éppen ezért I / O bővítőként vagy bemeneti és kimeneti erősítőként is ismertek ...

Akár használhatná is kommunikáció a soros porton keresztül, az I2C busz vagy az SPI, amelyről már máskor is beszéltünk.

Természetesen a vele való együttműködés előtt meg kell győződnie arról megfeleljen a feszültségeknek és áramoknak amely beismeri ezt az áramkört, hogy ne károsítsa azt. Például ebben az esetben akár 20 mA-t is képes biztosítani, valamint 2-6 V feszültséget. Ha azonban nagyobb áramokkal akar dolgozni használhatna egy relét vagy tranzisztoron keresztül.

Integráció az Arduinóval

Arduino Bluetooth-tal

Egyik út több bemenet van az Arduino táblán, vagy több kimenet, ezeket a multiplexereket és demultiplexereket kell használni. Velük elkerülheti, hogy magasabb árú táblákat vásároljon, amelyekben több csap van, vagy más trükkökkel kell összekapcsolnia mindent, amire szüksége van.

Például használhatja a MUX és DEMUX modul hogy mindkettő egyetlen elemben legyen, majd könnyedén integrálhassa a projektjébe az Arduinóval. A CD74HC4067 segítségével nagyon egyszerűen csatlakoztathatja, ezért be kell tartania az alábbi szabályokat:

  • A MUX / DEMUX chip Vcc-jét csatlakoztatnia kell az Arduino vagy az 5V Vcc-hez.
  • A GND-t, a földet, csatlakoztatnia kell az Arduino GND-jéhez.
  • Az S0, S1, S2, S3 jelöléssel ellátott csapok vezérlik az aktív csatornát, négy Arduino digitális I / O-val, például D8, D9, D10 és D11.
  • Az EN is lehetővé teszi, hogy multiplexerként működjön, csatlakoztathatja az Arduino GND-jéhez.
  • És a SIG az a kimeneti jel, amely meghatározza a kiválasztott csatornát. Csatlakoztatható Arduinóhoz vagy bármely olyan eszközhöz, amelynek le kell olvasnia a kimenetet. Ebben az esetben az A0-hoz csatlakoztattam, hogy az értékeket magától az Arduinótól szerezzem be.
  • A modul másik végén ott lesznek a bemenetek ebben az esetben, ezek a C0-C10, amelyeket csatlakoztathat eszközeihez.

A csatlakozás után az Arduino kód egyszerű lehet. A Arduino IDE vázlat multiplexerként Ez a következő lehet (ez a kód csak kikapcsol, illetve csatornáikon, de módosíthatja úgy, hogy a kívánt projekt legyen):

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);
   }
}

Ha DEMUX néven akarja használni, akkor csak azt vegye figyelembe, hogy a C0-C10 lenne a kimenet, a SIG pedig a bemenet. Ha akarod használd demultiplexerként, a kód így változik:

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);
}

Ne feledje, hogy további információhoz juthat a ingyenes Arduino programozási tanfolyam.


Hozzászólás, hagyd a tiedet

Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.

  1.   Xavier Ortiz dijo

    Helló, csinálok egy olyan projektet, mint ahogyan a 74hc4067-et 16 infravörös akadályérzékelő bemenetére használom, és hogy mindegyik érzékelő más és más kimenetet kapcsol be. Nos, ha meg tudnám csinálni az arduino megával, de 50 infravörös érzékelőt kell használnom, és mindegyik bekapcsol egy kimenetet, azaz 50 kimenetet, több 744067-et használok az érzékelő bemeneteihez és a tlc5940-et kimenetekhez, de mi a programozási kód, kissé eltévedtem, előre is köszönöm a segítséget.