Multiplexer: sve što trebate znati

čip multipleksera

Un multipleksor je kombinacijski sklop 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 unosa 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, kontrolom multipleksera koji možete uvijek odaberite odgovarajući ulaz. Što omogućuje da unatoč samo jednoj vezi možete istodobno raditi s više ulaznih uređaja, a da oni međusobno ne ometaju. Također, trebali biste znati da se demultiplexer obično koristi zajedno s multiplekserom u mnogim projektima ...

Što 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 upravljačke linije. A nekoliko ih možete koristiti u kombinaciji da biste povećali taj broj dostupnih karata.

Može se shvatiti kao izbornik. Na primjer, zamislite da imate vrlo jednostavan s dva ulaza, najjednostavniji koji se može izgraditi. Taj će krug imati jedan upravljački ulaz i izlaz. Ako su ulazi A i B, pomoću upravljačkog ulaza moguće je kontrolirati je li A taj koji svoju vrijednost prenosi na izlaz S ili je B taj koji to radi. Da biste to učinili, samo morate mijenjati vrijednost kontrolne crte 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 upravljački 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 korištenjem istih priključnih vodova 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.

Vrste multipleksera

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

  • Podjelom frekvencije
  • Podjelom vremena
  • Podjelom koda
  • Podjelom od valna duljina

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

Uz tipove, 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 trebate za svoje DIY projekte.

Razlike s demultiplekserom

demultiplekser

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

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

Gdje kupiti?

multiplekser demultiplekser

Ti su uređaji obično implementirani u umočiti čips jako jednostavno. Možete ih pronaći u širokoj paleti marki i s nizom ulaza ili izlaza u slučaju da ste demultiplexer. Osim toga, lako se mogu naći u raznim specijaliziranim medijima ili internetskim trgovinama. Ako ste zainteresirani za kupnju jednog po povoljnoj cijeni, ovo mogu biti dobri primjeri za početak vaših projekata:

Savjetujem vam da pročitate tablice podataka od njihovih proizvođača kako bi stekli jasnu predodžbu o njima pinout, jer se mogu razlikovati ovisno o proizvođaču ili vrsti koju ste kupili.

cd74hc4067

Osim toga, kao što vidite, postoje i vrlo dobri moduli koji vam omogućuju 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 ovog čipa je to radi i s digitalnim i s analognim signalima, čineći ga kompatibilnim 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 i za komunikacija putem serijskog porta, sabirnica I2C ili SPI, o čemu smo već govorili u drugim prigodama.

Prije nego što radite s njim, to morate osigurati zadovoljavaju napone i struje da ovaj sklop priznaje kako ga ne bi oštetio. 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 s Bluetoothom

Jedan način imate više ulaza na vašoj Arduino ploči ili više izlaza, je korištenje ovih multipleksera i demultipleksera. S njima ćete izbjeći kupnju ploče s višom cijenom koja ima više igla ili upotrebu drugih trikova za povezivanje svega što vam treba.

Na primjer, možete koristiti 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, stoga 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 s oznakama S0, S1, S2, S3 upravljaju aktivnim kanalom, s četiri Arduino digitalna U / I, poput D8, D9, D10 i D11.
  • EN također omogućuje, tako da radi kao multiplekser, 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 s bilo kojim uređajem koji treba očitati izlaz. U ovom slučaju spojio sam ga na A0 kako 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 spojen, Arduino kôd može biti jednostavan. The Arduino IDE skica kao multiplekser To može biti sljedeće (ovaj će se kôd 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 upotrijebite ga kao demultiplexer, kôd 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);
}

Imajte na umu da više informacija možete dobiti uz pomoć našeg besplatni tečaj programiranja Arduino.


Komentar, ostavi svoj

Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  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 obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   Xavier Ortiz dijo

    Pozdrav, radim projekt, kao i 74hc4067 za ulaze 16 infracrvenih senzora prepreka i da svaki senzor za mene osvjetljava drugačiji izlaz. 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.