Multiplekseri: kaikki mitä sinun tarvitsee tietää

multiplekseri-siru

Un multiplekseri on yhdistelmäpiiri, jolla on useita tuloja ja yksi datalähtö. Tämän avulla on mahdollista valita vain yhden sen sisäänkäynnin kanava sen kanavan ohjaamiseksi uloskäynnille. Toisin sanoen voit valita, mistä syötteestä otat tulossa olevan datan tai bitin, ja ohittaa muut syötteet. Tämä on hyvin yleistä elektroniikassa, kun useat yhteydet tarvitsevat jakaa yhden linjan tai väylän.

Eli ohjaamalla multiplekseriä voit valitse aina sopiva tulo. Mikä tekee mahdolliseksi, että vaikka sinulla on vain yksi yhteys, voit työskennellä useiden syöttölaitteiden kanssa samanaikaisesti ilman, että ne häiritsevät toisiaan. Sinun tulisi myös tietää, että demultiplekseriä käytetään yleensä multiplekserin kanssa monissa projekteissa ...

Mikä on multiplekseri?

multiplekseri

Nämä yhdistyspalvelut soittivat multiplekserit ne eivät yleensä ole monimutkaisia. Ne koostuvat muutamasta logiikkaportista riippuen niiden syötettyjen tietojen määrästä ja ohjaus voi lisätä monimutkaisuutta. Ne sisältävät yleensä 2n tulot ja yksi lähtö sekä ohjausjohdot. Ja voit käyttää useita niistä yhdessä lisätäksesi käytettävissä olevien lippujen määrää.

Se voidaan ymmärtää valitsin. Kuvittele esimerkiksi, että sinulla on hyvin yksinkertainen, jossa on kaksi tuloa, yksinkertaisin, joka voidaan rakentaa. Tällä piirillä on yksi ohjaustulo ja -lähtö. Jos tulot ovat A ja B, ohjaustulolla voidaan ohjata, välittääkö arvo A ulostulolle S vai onko se B, joka tekee sen. Tätä varten sinun on muutettava vain ohjauslinjan C arvoa. Jos esimerkiksi C = 0 on A ja jos C = 1 on B.

Kuten ymmärrät, jos syötteitä on enemmän, niitä tarvitaan enemmän ohjaustulot valintaa varten. Itse asiassa multiplekseri on erityistyyppinen dekooderi, jossa on aktivointisignaali jokaiselle mukana olevalle AND-portille ja TAI-portti lähdön ja AND-porttien välissä. Näin se voidaan helposti valita.

Mitä tulee sen sovelluksiin, voit käyttää sitä lukemattomille asioille:

  • Tulovalitsin jakaa yhden väylän tai linjan, kun sinulla on useita tuloja.
  • Serializer niin, että se ottaa kunkin tulonsa arvon järjestyksessä.
  • Multipleksoituun lähetykseen, jossa käytetään samoja yhteyslinjoja erilaisille tiedoille eri laitteilta. Kuvittele esimerkiksi, että haluat käyttää samaa mikro-ohjaimen tietotappia useiden laitelähtöjen liittämiseen, mutta että se voi lähettää tietoja vain yksi kerrallaan ...
  • Suorita loogisia toimintoja jne.

Multiplekserityypit

Lähetyksen jakamistavasta riippuen niitä on erilaisia ​​tyyppejä multiplekserit tai multiplekserit:

  • Taajuusalueen mukaan
  • Aikajako
  • Koodijaon mukaan
  • Jakamalla aallonpituus

Kuten voitte kuvitella, niitä ohjataan taajuudella, ajan kellolla, binäärikoodilla ja aallonpituudella. Mutta täällä minua kiinnostaa vain perinteinen ...

Tyyppien lisäksi, kuten demultiplekserillä, löydät sen enemmän tai vähemmän kanavia 2, 4, 8, 16 jne. Riippuen siitä, mitä tarvitset DIY-projekteihisi.

Erot demultiplekserin kanssa

demultiplekseri

Digitaalisessa elektroniikassa on demultiplekseri, yhdistelmäpiiri, joka on multiplekserin antagonisti. Tässä tapauksessa tietoja on vain yksi, mutta se voidaan lähettää sen eri lähtöjen kautta. Toisin sanoen tässä tapauksessa ohjaussignaalit päättävät, mihin lähtöön syötetiedot siirretään.

Si liität demultiplekserin multiplekserin lähtöön, sinulla voi olla erittäin hyödyllinen järjestelmä oppia kuinka molemmat laitteet toimivat.

Mistä ostaa?

multiplekseri demultiplekseri

Nämä laitteet on yleensä toteutettu dip-sirut erittäin yksinkertainen. Löydät ne useista eri tuotemerkeistä ja useilla tuloilla tai lähdöillä, jos olet demultiplekseri. Lisäksi ne löytyvät helposti useista erikoistuneista tiedotusvälineistä tai verkkokaupoista. Jos olet kiinnostunut ostamaan yhden edulliseen hintaan, nämä voivat olla hyviä esimerkkejä aloittaa projektiisi:

Kehotan sinua lukemaan lomakkeet valmistajilta saada selkeä käsitys heidän Sokka irti, koska ne voivat vaihdella ostamasi valmistajan tai tyypin mukaan.

cd74hc4067

Lisäksi, kuten näette, on myös erittäin hyviä moduuleja, joiden avulla molemmat laitteet ovat yhdessä. Näin on tunnettu CD74HC4067, pieni moduuli TTL-tekniikalla, joka voi auttaa sinua työskentelemään sen 16 banaalin kanssa kaksisuuntaisesti, kun sinulla on MUX / DEMUX. Eli voit käyttää sitä eräänlaisena älykytkimenä.

Siten Arduinosi voi lukea ja kirjoittaa enintään yhden6 erilaista laitetta vain 5 nastaa, joista 4 käytetään ohjaukseen ja toinen kerää signaalin, joka on tarkoitettu luettavaksi tai kirjoitettavaksi valitun kanavan mukaisesti.

Hyvä asia tässä sirussa on se toimii sekä digitaalisten että analogisten signaalien kanssa, joten se on yhteensopiva monien antureiden kanssa, jotka toimivat analogisilla ja muilla digitaalisilla siruilla, sekä lukuisten erilaisten elektronisten elementtien kanssa. Se antaa suuren monipuolisuuden. Siksi ne tunnetaan myös I / O-laajentimina tai tulo- ja lähtövahvistimina ...

Voit jopa käyttää sitä tiedonsiirto sarjaportin kautta, I2C-väylä tai SPI, josta olemme jo puhuneet muissa tilanteissa.

Ennen kuin työskentelet hänen kanssaan, sinun on tietysti varmistettava se täyttävät jännitteet ja virrat joka myöntää tämän piirin, jotta se ei vahingoitu. Esimerkiksi tässä tapauksessa se voi tuottaa jopa 20 mA: n jännitteen sekä 2-6 V: n jännitteen. Jos kuitenkin haluat työskennellä suurempien virtojen kanssa voit käyttää relettä tai transistorin kautta.

Integrointi Arduinon kanssa

Arduino Bluetoothilla

Muoto sinulla on enemmän tuloja Arduino-kortillasi tai enemmän lähtöjä, on käyttää näitä multipleksereitä ja demultipleksereitä. Niiden avulla sinun ei tarvitse ostaa kalliimpaa levyä, jossa on enemmän nastoja, tai sinun ei tarvitse käyttää muita temppuja yhdistääksesi kaiken tarvitsemasi.

Voit esimerkiksi käyttää a MUX- ja DEMUX-moduulit saada molemmat yhdessä elementissä ja integroida se sitten yksinkertaisella tavalla projektiisi Arduinon kanssa. CD74HC4067: n avulla voit liittää sen helposti, joten sinun on noudatettava näitä sääntöjä:

  • MUX / DEMUX-sirun Vcc on liitettävä se Arduinon tai 5 V: n Vcc: hen.
  • GND, maa, sinun on liitettävä se Arduinon GND: hen.
  • Nastat, jotka on merkitty S0, S1, S2, S3, ohjaavat aktiivista kanavaa neljällä Arduino-digitaali-I / O: lla, kuten D8, D9, D10 ja D11.
  • EN on myös mahdollinen, joten se toimii multiplekserinä ja voit liittää sen Arduinon GND: hen.
  • Ja SIG on lähtösignaali, joka määrittää valitun kanavan. Se voidaan liittää Arduinoon tai mihin tahansa laitteeseen, jonka täytyy lukea lähtö. Tässä tapauksessa olen liittänyt sen A0: een saadaksesi arvot itse Arduinolta.
  • Moduulin toisessa päässä on tässä tapauksessa tulot, jotka ovat C0-C10, jotka voit liittää laitteisiisi.

Kun yhteys on muodostettu, Arduino-koodi voi olla yksinkertainen. Arduino IDE -piirustus multiplekserinä Se voi olla seuraava (tämä koodi sammuu vain heidän kanavillaan, mutta voit muokata sitä tekemään haluamasi projektin):

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

Jos haluat käyttää sitä DEMUX: na, sinun tulisi vain ottaa huomioon, että C0-C10 olisi lähtöjä ja SIG olisi tulo. Jos haluat käytä sitä demultiplekserinä, koodi muuttuisi näin:

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

Muista, että voit saada lisätietoja meidän ilmainen Arduino-ohjelmointikurssi.


Kommentti, jätä sinun

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.

  1.   Xavier Ortiz dijo

    Hei, teen projektin, kuten käytän 74hc4067: ää 16 infrapunaesteen estoanturin tuloihin ja että kukin anturi sytyttää minulle eri lähdön. No, jos voisin tehdä sen arduino-megan kanssa, mutta minun on käytettävä 50 infrapuna-anturia ja että kukin kytkee päälle lähdön, toisin sanoen 50 ulostuloa, ajattelen käyttää useita 744067 anturituloihin ja tlc5940 lähtöihin, mutta missä on ohjelmointikoodi, olen hieman eksynyt, kiitos etukäteen avustasi.