Un multipleksor je kombinacijsko vezje, ki ima več vhodov in en izhod podatkov. S tem je mogoče izbrati prehod samo enega od njegovih vhodov, da ga usmeri do izhoda. To pomeni, da lahko izberete, iz katerega vhoda boste vzeli podatke ali bit, ki je na vhodu, in prezrli ostale vnose. To je zelo pogosto v elektroniki, ko mora več povezav deliti eno linijo ali vodilo.
Se pravi z nadzorom multiplekserja, ki ga lahko ves čas izberite ustrezen vhod. Kaj omogoča, da lahko kljub samo eni povezavi delate z več vhodnimi napravami hkrati, ne da bi se pri tem motile. Vedeti morate tudi, da se demultiplexer v mnogih projektih običajno uporablja skupaj z multiplexerjem ...
Kaj je multiplekser?
Te kombinacijske storitve so klicale multiplekserji običajno niso zapleteni. Sestavljeni so iz nekaj logičnih vrat, odvisno od njihovega števila vnosov podatkov, nadzor pa bi lahko povečal kompleksnost. Običajno vključujejo 2n vhodi in en izhod ter krmilne linije. In več jih lahko uporabite skupaj, da povečate to število razpoložljivih vstopnic.
Lahko ga razumemo kot izbirnik. Na primer, predstavljajte si, da imate zelo preprost z dvema vhodoma, najpreprostejši, ki ga je mogoče zgraditi. To vezje bo imelo en sam krmilni vhod in izhod. Če sta vhoda A in B, je s krmilnim vhodom mogoče nadzirati, ali je A tisti, ki prenese svojo vrednost na izhod S, ali pa to počne B. Če želite to narediti, morate spremeniti le vrednost krmilne črte C. Če je na primer C = 0, bo A in če je C = 1, bo B.
Kot boste razumeli, če bo več vložkov, jih bo treba več krmilni vhodi za izbiro. Dejansko je multiplekser posebna vrsta dekodirnika, ki ima signal za omogočanje za vsa vključena vrata AND in vrata OR med izhodom in vrati IN. Tako ga je mogoče enostavno izbrati.
Kar zadeva njegove aplikacije, jih lahko uporabljate za množico stvari:
- Izbirnik vhoda za skupno rabo enega vodila ali linije, če imate več vhodov.
- Serializer, tako da vzame vrednost vsakega od svojih vhodov po vrsti.
- Za multipleksiran prenos z uporabo istih povezav za različne podatke iz različnih naprav. Na primer, predstavljajte si, da želite z istim podatkovnim zatičem mikrokrmilnika povezati več izhodov naprave, vendar lahko informacije pošilja samo po eno ...
- Izvajajte logične funkcije itd.
Vrste multipleksorjev
Glede na način delitve menjalnika obstajajo različne vrste multiplekserji ali multipleksiranje:
- Po frekvenčni delitvi
- Po časovni delitvi
- Z delitvijo kode
- Z delitvijo valovna dolžina
Kot si lahko predstavljate, jih nadzoruje frekvenca, čas ura, binarna koda in valovna dolžina. A tu me zanimajo samo običajne ...
Poleg tipov, tako kot pri demultiplekseru, ga lahko najdete tudi pri več ali manj kanalov 2, 4, 8, 16 itd., Odvisno od tega, kaj potrebujete za svoje DIY projekte.
Razlike z demultiplekserom
V digitalni elektroniki obstaja demultiplexer, kombinacijsko vezje, ki je antagonist multiplekserja. V tem primeru bo samo en informacijski vhod, ki pa ga je mogoče prenesti prek različnih izhodov. Z drugimi besedami, v tem primeru se krmilni signali odločijo, na kateri izhod se prenesejo vhodni podatki.
Si demultipleksor priključite na izhod multiplekserja, lahko imate zelo uporaben sistem za učenje, kako delujeta obe napravi.
Kje kupiti?
Te naprave so običajno nameščene v dip čips zelo preprosto. Najdete jih v najrazličnejših blagovnih znamkah in s številnimi vhodi ali izhodi, če ste demultiplekser. Poleg tega jih zlahka najdemo v različnih specializiranih medijih ali spletnih trgovinah. Če vas zanima nakup po ugodni ceni, so to lahko dobri primeri za začetek projektov:
- IT 8-kanalni multiplekser
- 8-kanalni peresnik multiplekserja
- Ni najdenih izdelkov
- CD74HC4067 16-kanalni multiplexer / demultiplexer
Svetujem vam, da preberete podatkovnih listov od njihovih proizvajalcev, da bi dobili jasno predstavo o njih pinout, saj se lahko razlikujejo glede na proizvajalca ali vrsto, ki ste jo kupili.
cd74hc4067
Poleg tega, kot vidite, obstajajo tudi zelo dobri moduli, ki vam omogočajo, da imate obe napravi v eni. To je primer znan CD74HC4067, majhen modul s tehnologijo TTL, ki vam lahko pomaga pri dvosmernem delu s 16 bananami z uporabo MUX / DEMUX. To pomeni, da ga lahko uporabite kot nekakšno pametno stikalo.
Tako lahko vaš Arduino bere in piše do 16 različnih naprav s samo 5 nožicami, od tega 4 za krmiljenje in dodatnim za zbiranje signala, ki je namenjen branju ali zapisovanju glede na izbrani kanal.
Dobra stvar tega čipa je to deluje tako z digitalnimi kot z analognimi signali, zato je združljiv s številnimi senzorji, ki delujejo na analognih in drugih digitalnih čipih, pa tudi z množico različnih elektronskih elementov. Daje veliko vsestranskost. Zato so znani tudi kot V / I ekspanderji ali vhodni in izhodni ojačevalniki ...
Lahko bi ga celo uporabili za komunikacije prek serijskih vrat, vodilo I2C ali SPI, o katerem smo že govorili ob drugih priložnostih.
Seveda se morate pred tem prepričati izpolnjujejo napetosti in tokove ki dopušča to vezje, da ga ne bi poškodoval. Na primer, v tem primeru lahko zagotavlja do 20 mA, pa tudi napetost od 2 do 6v. Če pa želite delati z višjimi tokovi lahko uporabite rele ali skozi tranzistor.
Integracija z Arduinom
Oblika imeti več vhodov na plošči Arduino ali več izhodov, je uporaba teh multiplekserjev in demultiplekserov. Z njimi se boste izognili nakupu dražje plošče z več zatiči ali uporabi drugih trikov za povezovanje vsega, kar potrebujete.
Na primer, lahko uporabite Modula MUX in DEMUX imeti lahko oboje v enem elementu in ga nato na preprost način integrirati v svoj projekt z Arduino. S CD74HC4067 ga lahko zelo enostavno povežete, zato morate upoštevati ta pravila:
- Vcc čipa MUX / DEMUX ga morate priključiti na Vcc Arduino ali 5V.
- GND, tla, morate ga povezati z GND Arduina.
- Zatiči z oznako S0, S1, S2, S3 so tisti, ki nadzorujejo aktivni kanal s štirimi Arduino digitalnimi V / I, kot so D8, D9, D10 in D11.
- EN omogoča tudi, tako da deluje kot multiplekser, zato ga lahko povežete z GND Arduina.
- In SIG je izhodni signal, ki bo določil izbrani kanal. Lahko je povezan z Arduinom ali s katero koli napravo, ki mora prebrati izhod. V tem primeru sem ga povezal z A0, da dobim vrednosti iz samega Arduina.
- Na drugem koncu modula boste imeli v tem primeru vhode, to so C0-C10, ki jih lahko povežete s svojimi napravami.
Ko je koda Arduino povezana, je lahko preprosta. The Skica Arduino IDE kot multiplekser Lahko je naslednje (ta koda se bo izključila in vklopila samo njihove kanale, lahko pa jo spremenite, da naredite želeni 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); } }
Če ga želite uporabiti kot DEMUX, upoštevajte le, da bi bili C0-C10 izhodi, SIG pa vhod. V primeru, da želite uporabite kot demultiplexer, koda bi se spremenila takole:
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 pozabite, da lahko več informacij dobite s pomočjo našega brezplačni tečaj programiranja Arduino.
Pozdravljeni, delam projekt, tako kot pri 74hc4067 za vhode 16 infrardečih senzorjev ovir in da me vsak senzor priklopi na drugačen izhod. No, če bi to lahko storil z arduino mega, vendar moram uporabiti 50 infrardečih senzorjev in da vsak vklopi izhod, to je 50 izhodov, razmišljam, da bi uporabil več 744067 za vhode senzorjev in tlc5940 za izhode, toda kaj je programska koda, sem se malo izgubil, hvala vnaprej za vašo pomoč.