Multiplexer: sve što trebate znati

multiplekser čip

Un multipleksor je kombinacijski krug koji ima nekoliko ulaza i jedan izlaz podataka. Ovim je moguće odabrati prolaz samo jednog od njegovih ulaza kako bi ga usmjerio do izlaza. Odnosno, mogli biste odabrati s kojeg ćete ulaza uzeti podatke ili bit koji je na ulazu i zanemariti ostatak ulaza. To je vrlo često u elektronici kada nekoliko veza mora dijeliti jednu liniju ili sabirnicu.

Odnosno, upravljanjem multiplekserom možete odaberite odgovarajući ulaz u svakom trenutku. Šta omogućava da unatoč tome što imate samo jednu vezu, možete istovremeno raditi s više ulaznih uređaja, a da oni ne ometaju jedni druge. Također, trebali biste znati da se demultiplexer obično koristi zajedno s multiplekserom u mnogim projektima ...

Šta je multiplekser?

multipleksor

Ove kombinacijske usluge tzv multiplekseri obično nisu složeni. Sastoje se od nekoliko logičkih vrata, ovisno o broju ulaza podataka, a kontrola bi mogla povećati složenost. Obično uključuju 2n ulazi i jedan izlaz, kao i kontrolne linije. A nekoliko ih možete koristiti u kombinaciji da biste povećali taj broj dostupnih karata.

Može se shvatiti kao selektor. Na primjer, zamislite da imate vrlo jednostavan s dva ulaza, najjednostavniji koji se može izgraditi. Taj krug će imati jedan upravljački ulaz i izlaz. Ako su ulazi A i B, pomoću upravljačkog ulaza moguće je kontrolirati da li je A taj koji svoju vrijednost prenosi na izlaz S ili to čini B. Da biste to učinili, morate samo mijenjati vrijednost kontrolne linije C. Na primjer, ako je C = 0, to će biti A, a ako je C = 1 to će biti B.

Kao što ćete shvatiti, ako bude više ulaza, trebat će ih više kontrolni ulazi za odabir. U stvari, multiplekser je posebna vrsta dekodera, sa signalom za omogućavanje za svaki uključeni AND ulaz i ILI ulaz između izlaza i AND ulaza. Na taj se način može lako odabrati.

Što se tiče njegovih aplikacija, možete ih koristiti za mnoštvo stvari:

  • Birač ulaza za dijeljenje jedne magistrale ili linije kada imate više ulaza.
  • Serijalizator tako da uzima u red vrijednost svakog od svojih ulaza.
  • Za multipleksirani prijenos koristeći iste veze za različite podatke s različitih uređaja. Na primjer, zamislite da želite koristiti isti podatkovni pin mikrokontrolera za povezivanje nekoliko izlaza uređaja, ali da informacije može slati samo jedan po jedan ...
  • Izvršite logičke funkcije itd.

Tipovi multipleksera

Ovisno o načinu na koji je prijenos podijeljen, postoje razne vrste multiplekseri ili multipleksiranje:

  • Podjelom frekvencije
  • Podjelom vremena
  • Podjelom koda
  • Podjelom od talasna duljina

Kao što možete zamisliti, njima se upravlja frekvencijom, vremenom satom, binarnim kodom i talasnom dužinom. Ali ovdje me zanima samo konvencionalno ...

Pored tipova, kao i kod demultipleksera, možete ga pronaći i sa manje ili više kanala 2, 4, 8, 16 itd., Ovisno o tome što vam treba za vaše „uradi sam“ projekte.

Razlike sa demultiplekserom

demultiplexer

U digitalnoj elektronici postoji demultiplexer, kombinacijski krug koji je antagonist multipleksera. U ovom slučaju postojat će samo jedan ulaz podataka, ali se on može prenositi kroz različite izlaze. Drugim riječima, u ovom slučaju, upravljački signali će odlučiti na koji izlaz se prenose ulazni podaci.

Si povežete demultiplexer na izlaz multipleksera, možete imati vrlo koristan sistem za učenje kako rade oba uređaja.

Gdje kupiti?

multiplexer demultiplexer

Ovi uređaji su obično implementirani u dip čips veoma jednostavno. Možete ih naći u širokom spektru marki i sa brojnim ulazima ili izlazima u slučaju da ste demultiplekser. Pored toga, lako se mogu naći u raznim specijaliziranim medijima ili na internet trgovinama. Ako ste zainteresirani za kupovinu po povoljnoj cijeni, ovo mogu biti dobri primjeri za početak projekata:

Savjetujem vam da pročitate tabele podataka od njihovih proizvođača kako bi stekli jasnu predstavu o njima pin out, jer mogu varirati ovisno o proizvođaču ili tipu koji ste kupili.

cd74hc4067

Pored toga, kao što vidite, postoje i vrlo dobri moduli koji vam omogućavaju da oba uređaja imate u jednom. To je slučaj poznati CD74HC4067, mali modul s TTL tehnologijom koji vam može pomoći u dvosmjernom radu sa svojih 16 banana, ako imate MUX / DEMUX. Odnosno, možete ga koristiti kao neku vrstu pametnog prekidača.

Dakle, vaš Arduino može čitati i pisati do 16 različitih uređaja sa samo 5 pinova, od kojih 4 za kontrolu i dodatni za prikupljanje signala koji je namijenjen čitanju ili pisanju prema odabranom kanalu.

Dobra stvar kod ovog čipa je to radi s digitalnim i analognim signalima, tako da je kompatibilan s mnogim senzorima koji rade na analognim i drugim digitalnim čipovima, kao i mnoštvom različitih elektroničkih elemenata. Daje veliku svestranost. Zbog toga su poznati i kao I / O proširivači ili ulazna i izlazna pojačala ...

Možete ga čak koristiti komunikacija preko serijskog porta, autobus I2C ili SPI, o čemu smo već govorili u drugim prilikama.

Prije nego što radite s tim, morate se pobrinuti za to zadovoljavaju napone i struje koja priznaje ovaj krug kako ga ne bi oštetila. Na primjer, u ovom slučaju može pružiti do 20 mA, kao i napon od 2 do 6v. Međutim, ako želite raditi s jačim strujama mogao bi ti koristiti relej ili kroz tranzistor.

Integracija s Arduinom

Arduino sa Bluetoothom

Forma imate više ulaza na vašoj Arduino ploči ili više izlaza, je korištenje ovih multipleksera i demultipleksera. Pomoću njih ćete izbjeći kupnju ploče s višim cijenama koja ima više igla ili upotrebu drugih trikova za povezivanje svega što vam treba.

Na primjer, možete koristiti a MUX i DEMUX modul kako biste mogli imati oba u jednom elementu, a zatim ih na jednostavan način integrirati u svoj projekt s Arduinom. S CD74HC4067 možete ga vrlo lako povezati, pa morate slijediti ova pravila:

  • Vcc čipa MUX / DEMUX morate ga spojiti na Vcc Arduino ili 5V.
  • GND, tlo, morate ga spojiti na GND Arduina.
  • Pribadače označene sa S0, S1, S2, S3 su one koje kontroliraju aktivni kanal, sa četiri Arduino digitalna U / I, kao što su D8, D9, D10 i D11.
  • EN također omogućava, tako da radi kao multipleksor, možete ga povezati s GND-om Arduina.
  • A SIG je izlazni signal koji će odrediti odabrani kanal. Može se povezati s Arduinom ili bilo kojim uređajem koji treba očitati izlaz. U ovom slučaju spojio sam ga na A0 da bih dobio vrijednosti iz samog Arduina.
  • Na drugom kraju modula u ovom ćete slučaju imati ulaze, a to su C0-C10 koje možete povezati sa svojim uređajima.

Jednom povezan, Arduino kôd može biti jednostavan. The Arduino IDE skica kao multiplekser To može biti sljedeće (ovaj kôd će isključiti i uključiti samo njihove kanale, ali možete ga izmijeniti kako biste napravili projekt koji želite):

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

Ako ga želite koristiti kao DEMUX, trebali biste samo uzeti u obzir da bi C0-C10 bili izlazi, a SIG ulaz. U slučaju da želite koristite ga kao demultiplekser, kod bi se promijenio ovako:

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

Zapamtite da više informacija možete dobiti uz pomoć našeg besplatni kurs Arduino programiranja.


Komentar, ostavi svoj

Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   Xavier Ortiz rekao je

    Bok, radim projekt, kao i 74hc4067 za ulaze 16 infracrvenih senzora prepreka i da me svaki senzor uključuje na drugom izlazu. Pa, ako bih to mogao učiniti s arduino mega, ali moram koristiti 50 infracrvenih senzora i da svaki uključi izlaz, odnosno 50 izlaza, razmišljam o korištenju nekoliko 744067 za ulaze senzora i tlc5940 za izlaze, ali u čemu je programski kod pomalo sam se izgubio, unaprijed zahvaljujem na vašoj pomoći.