Un multiplexor je kombinačný obvod, ktorý má niekoľko vstupov a jeden dátový výstup. Týmto je možné zvoliť priechod iba jedného z jeho vchodov, aby sa nasmeroval k jeho východu. To znamená, že si môžete vybrať, z ktorého vstupu chcete zobrať údaje alebo bit, ktoré sú na vstupe, a ostatné vstupy ignorovať. To je v elektronike veľmi bežné, keď niekoľko spojov musí zdieľať jednu linku alebo autobus.
To znamená, že môžete ovládať multiplexor vždy vyberte vhodný vstup. Čo umožňuje, že napriek tomu, že máte iba jedno pripojenie, môžete pracovať s viacerými vstupnými zariadeniami súčasne bez toho, aby si navzájom prekážali. Mali by ste tiež vedieť, že demultiplexor sa všeobecne používa v spojení s multiplexorom v mnohých projektoch ...
Čo je to multiplexer?
Tieto kombinované služby tzv multiplexery nebývajú zložité. Skladajú sa z niekoľkých logických hradiel v závislosti od ich množstva dátových vstupov a riadenie by mohlo zvýšiť zložitosť. Spravidla zahŕňajú 2n vstupy a jeden výstup, ako aj ovládacie vedenia. Niekoľko z nich môžete použiť v kombinácii na zvýšenie tohto počtu dostupných lístkov.
Dá sa to chápať ako selektor. Napríklad si predstavte, že máte jeden veľmi jednoduchý s dvoma vstupmi, najjednoduchšími, ktoré sa dajú zostaviť. Tento obvod bude mať jeden riadiaci vstup a výstup. Ak sú vstupy A a B, pomocou riadiaceho vstupu môžete ovládať, či je to A, kto odovzdáva svoju hodnotu na výstup S, alebo či to robí B. Ak to chcete urobiť, musíte iba zmeniť hodnotu riadiaceho riadku C. Napríklad, ak C = 0, bude to A a ak C = 1, bude to B.
Ako pochopíte, ak bude viac vstupov, bude potrebných viac riadiace vstupy na výber. V skutočnosti je multiplexor špeciálnym typom dekodéra s aktivačným signálom pre každú zahrnutú bránu AND a bránu OR medzi výstupom a bránami AND. Takto sa dá ľahko zvoliť.
Pokiaľ ide o jeho aplikácie, môžete ich použiť pre množstvo vecí:
- Selektor vstupu na zdieľanie jednej zbernice alebo linky, ak máte viac vstupov.
- Serializer tak, aby brala hodnotu každého zo svojich vstupov v poriadku.
- Pre multiplexovaný prenos s použitím rovnakých pripojovacích vedení pre rôzne dáta z rôznych zariadení. Napríklad si predstavte, že chcete použiť rovnaký dátový pin mikrokontroléra na pripojenie viacerých výstupov zariadenia, ale môže odosielať informácie iba jeden po druhom ...
- Vykonajte logické funkcie atď.
Typy multiplexerov
V závislosti od spôsobu rozdelenia prevodovky existujú rôzne druhy multiplexery alebo multiplexovanie:
- Podľa frekvenčného delenia
- Podľa časového rozdelenia
- Podľa kódu
- Rozdelením na vlnová dĺžka
Ako si viete predstaviť, sú riadené frekvenciou, časom hodinami, binárnym kódom a vlnovou dĺžkou. Ale tu ma zaujíma iba konvenčné ...
Okrem typov, rovnako ako u demultiplexora, ich nájdete aj v viac alebo menej kanálov 2, 4, 8, 16 atď., Podľa toho, čo potrebujete pre svoje DIY projekty.
Rozdiely s demultiplexorom
V digitálnej elektronike existuje demultiplexor, kombinačný obvod, ktorý je antagonistom multiplexora. V takom prípade bude existovať iba jeden informačný vstup, ale je možné ho prenášať cez jeho rôzne výstupy. Inými slovami, v tomto prípade sa o ňom rozhodne pomocou riadiacich signálov, na ktoré výstup sa prenášajú vstupné údaje.
Si pripojíte demultiplexor k výstupu multiplexora, môžete mať veľmi užitočný systém na naučenie sa fungovania oboch zariadení.
Kde kúpiť?
Tieto zariadenia sú bežne implementované v dip čipy veľmi jednoduché. Nájdete ich v najrôznejších značkách a s množstvom vstupov alebo výstupov pre prípad, že budete demultiplexorom. Okrem toho sa dajú ľahko nájsť v rôznych špecializovaných médiách alebo online obchodoch. Ak máte záujem kúpiť si jednu za dobrú cenu, môžu to byť dobré príklady pre začatie vašich projektov:
- 8-kanálový multiplexor IT
- 8-kanálový multiplexer perel
- Nenašli sa žiadne produkty.
- CD74HC4067 16-kanálový multiplexor / demultiplexor
Radím ti čítať údajové listy od výrobcov, aby získali jasnú predstavu o svojich výrobkoch pinov, pretože sa môžu líšiť v závislosti od výrobcu alebo typu, ktorý ste kúpili.
cd74hc4067
Okrem toho, ako vidíte, existujú aj veľmi dobré moduly, ktoré umožňujú mať obe zariadenia v jednom. Je to prípad známy CD74HC4067, malý modul s technológiou TTL, ktorý vám pomôže pracovať so svojimi 16 banálmi obojsmerne tým, že bude mať MUX / DEMUX. To znamená, že ho môžete použiť ako akýsi inteligentný prepínač.
Vaše Arduino teda dokáže čítať a zapisovať až 16 rôznych zariadení iba s 5 pinmi, z ktorých 4 sa používajú na riadenie a ďalší na zber signálu, ktorý sa má čítať alebo zapisovať podľa zvoleného kanálu.
Dobré na tomto čipu je, že pracuje s digitálnymi aj analógovými signálmi, takže je kompatibilný s mnohými snímačmi, ktoré pracujú na analógových a iných digitálnych čipoch, ako aj s množstvom rôznych elektronických prvkov. Poskytuje veľkú všestrannosť. Preto sú tiež známe ako I / O expandéry alebo vstupné a výstupné zosilňovače ...
Môžete ho dokonca použiť na komunikácia cez sériový port, autobus I2C alebo SPI, o ktorých sme už hovorili pri iných príležitostiach.
Pred prácou s ním sa to samozrejme musíte ubezpečiť spĺňať napätia a prúdy ktorý pripúšťa tento okruh, aby ho nepoškodil. Napríklad v tomto prípade môže poskytnúť až 20 mA, ako aj napätie 2 až 6v. Ak však chcete pracovať s vyššími prúdmi môžete použiť relé alebo cez tranzistor.
Integrácia s Arduino
Forma mať viac vstupov na doske Arduino alebo viac výstupov, je použitie týchto multiplexorov a demultiplexorov. S nimi sa vyhnete nutnosti kupovať dosku s vyššou cenou, ktorá má viac pinov, alebo použitiu iných trikov na prepojenie všetkého, čo potrebujete.
Môžete napríklad použiť a Modul MUX a DEMUX mať možnosť mať oba v jednom prvku a potom ich jednoduchým spôsobom integrovať do svojho projektu s Arduinom. S CD74HC4067 ho môžete pripojiť veľmi ľahko, takže musíte dodržiavať tieto pravidlá:
- Vcc čipu MUX / DEMUX ho musíte pripojiť k Vcc Arduino alebo 5V.
- GND, zem, musíte ho pripojiť k GND Arduina.
- Kolíky označené S0, S1, S2, S3 riadia aktívny kanál so štyrmi digitálnymi I / O Arduino, napríklad D8, D9, D10 a D11.
- EN tiež umožňuje, aby fungoval ako multiplexer, môžete ho pripojiť k GND Arduina.
- A SIG je výstupný signál, ktorý určí vybraný kanál. Môže byť pripojený k Arduinu alebo k ľubovoľnému zariadeniu, ktoré potrebuje na čítanie výstupu. V tomto prípade som ho pripojil k A0, aby som získal hodnoty zo samotného Arduina.
- Na druhom konci modulu budete mať v tomto prípade vstupy, ktoré sú C0-C10, ktoré môžete pripojiť k svojim zariadeniam.
Po pripojení môže byť kód Arduino jednoduchý. The Arduino IDE skica ako multiplexer Môže to byť nasledovné (tento kód sa iba vypne a zapne príslušné kanály, ale môžete ho upraviť tak, aby vytvoril požadovaný projekt):
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); } }
Ak ho chcete použiť ako DEMUX, mali by ste brať do úvahy iba to, že C0-C10 budú výstupy a SIG bude vstup. Ak chcete použite ako demultiplexor, kód by sa zmenil takto:
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); }
Pamätajte, že ďalšie informácie môžete získať pomocou nášho bezplatný kurz programovania Arduino.
Ahoj, robím projekt, čo je to, že používam 74hc4067 na vstupy 16 infračervených senzorov prekážok a že každý senzor ma privádza na iný výstup. No, ak by som to dokázal s arduino mega, ale musím použiť 50 infračervených senzorov a že každý z nich zapne výstup, teda 50 výstupov, uvažujem o použití niekoľkých 744067 pre vstupy senzorov a pre výstupy tlc5940, ale v čom je programovací kód, som trochu stratený, vopred ďakujem za vašu pomoc.