Multiplexer: lahat ng kailangan mong malaman

multiplexer chip

Un multiplexor ay isang kombinasyon na circuit na mayroong maraming mga input at isang solong output ng data. Sa pamamagitan nito, posible na piliin ang daanan ng isa lamang sa mga pasukan nito upang mai-channel ito sa kanyang exit. Iyon ay, maaari kang pumili mula sa aling input upang kunin ang data o kaunting nasa input at huwag pansinin ang natitirang mga input. Ito ay napaka-pangkaraniwan sa electronics kapag maraming mga koneksyon ang kailangang magbahagi ng isang solong linya o bus.

Iyon ay, sa pamamagitan ng pagkontrol sa multiplexer na maaari mong piliin ang naaangkop na input sa lahat ng oras. Ano ang posible na sa kabila ng pagkakaroon lamang ng isang koneksyon, maaari kang gumana sa maraming mga input device nang sabay-sabay nang hindi sila nakikialam sa bawat isa. Gayundin, dapat mong malaman na ang isang demultiplexer ay karaniwang ginagamit kasabay ng multiplexer sa maraming mga proyekto ...

Ano ang multiplexer?

multiplexor

Tinawag ang mga serbisyong kombinasyong ito mga multiplexer hindi sila karaniwang kumplikado. Binubuo ang mga ito ng ilang mga gate ng lohika depende sa kanilang bilang ng mga input ng data at ang kontrol ay maaaring dagdagan ang pagiging kumplikado. Karaniwan nilang isinasama 2n mga input at isang solong output, pati na rin ang mga linya ng kontrol. At maaari mong gamitin ang ilan sa mga ito sa kumbinasyon upang madagdagan ang bilang ng mga magagamit na tiket.

Maaari itong maunawaan bilang isang tagapili. Halimbawa, isipin na mayroon kang isang napaka-simpleng isa na may dalawang mga input, ang pinakasimpleng maitatayo. Ang circuit na iyon ay magkakaroon ng iisang control at output ng control. Kung ang mga input ay A at B, sa control input posible na makontrol kung ang A na magpapasa ng halaga nito sa output S o kung si B ang gumagawa nito. Upang magawa ito, kailangan mo lamang iiba ang halaga ng linya ng kontrol C. Halimbawa, kung ang C = 0 ay A at kung ang C = 1 ay ang B.

Tulad ng mauunawaan mo, kung maraming mga input, higit ang kakailanganin kontrolin ang mga input para sa pagpili. Sa katunayan, ang multiplexer ay isang espesyal na uri ng decoder, na may isang signal na paganahin para sa bawat AND gate na kasama at isang OR gate sa pagitan ng output at ng AND gate. Sa ganoong paraan madali itong mapili.

Tulad ng para sa mga application nito, maaari mo itong magamit para sa maraming mga bagay:

  • Pumili ng input upang magbahagi ng isang solong bus o linya kapag mayroon kang maraming mga input.
  • Serializer nang sa gayon ay tumatagal ang halaga ng bawat isa sa mga input nito sa pagkakasunud-sunod.
  • Para sa multiplexed na paghahatid gamit ang parehong mga linya ng koneksyon para sa iba't ibang data mula sa iba't ibang mga aparato. Halimbawa, isipin na nais mong gamitin ang parehong data pin ng isang microcontroller upang kumonekta sa maraming mga output ng aparato, ngunit maaari lamang itong magpadala ng impormasyon nang paisa-isa ...
  • Magsagawa ng mga lohikal na pag-andar, atbp.

Mga uri ng multiplexer

Nakasalalay sa paraan ng paghahati ng paghahatid, mayroon iba`t ibang uri multiplexer o multiplexing:

  • Sa pamamagitan ng paghahati ng dalas
  • Ayon sa paghahati ng oras
  • Sa pamamagitan ng paghahati ng code
  • Sa pamamagitan ng paghahati ng haba ng daluyong

Tulad ng naiisip mo, kontrolado sila ng dalas, ng oras ng orasan, ng binary code, at ng haba ng daluyong. Ngunit narito ako interesado lamang sa maginoo ...

Bilang karagdagan sa mga uri, tulad ng sa demultiplexer, maaari mo itong makita higit pa o mas kaunti ang mga channel 2, 4, 8, 16, atbp., Nakasalalay sa kung ano ang kailangan mo para sa iyong mga proyekto sa DIY.

Mga pagkakaiba sa isang demultiplexer

demultiplexer

Sa digital electronics mayroon demultiplexer, isang kombinasyon ng circuit na siyang antagonist ng multiplexer. Sa kasong ito magkakaroon lamang ng isang input ng impormasyon, ngunit maaari itong mailipat sa pamamagitan ng iba't ibang mga output. Sa madaling salita, sa kasong ito, ang mga signal ng control ay magpapasya kung aling output ang inilipat na data ng paglipat.

Si kumonekta ka ng isang demultiplexer sa output ng isang multiplexer, maaari kang magkaroon ng isang napaka kapaki-pakinabang na system para sa pag-aaral kung paano gumagana ang parehong mga aparato.

Saan bibili?

multiplexer demultiplexer

Karaniwang ipinatupad ang mga aparatong ito sa isawsaw ang mga chips napaka-simple. Mahahanap mo ang mga ito sa iba't ibang uri ng mga tatak at may bilang ng mga input o output kung sakaling maging isang demultiplexer. Bilang karagdagan, madali silang matatagpuan sa iba't ibang dalubhasang media o mga online na tindahan. Kung interesado kang bumili ng isa sa isang magandang presyo, ito ay maaaring maging mabuting halimbawa upang magsimula sa iyong mga proyekto:

Pinapayuhan ko kayo na basahin ang mga datasheet mula sa kanilang mga tagagawa upang makakuha ng isang malinaw na ideya ng kanilang Pinout, dahil maaari silang mag-iba depende sa tagagawa o uri na iyong binili.

cd74hc4067

Bilang karagdagan, tulad ng nakikita mo, mayroon ding napakahusay na mga module na nagpapahintulot sa iyo na magkaroon ng parehong mga aparato sa isa. Ito ang kaso ng kilalang CD74HC4067, isang maliit na modyul na may teknolohiya ng TTL na makakatulong sa iyo upang magtrabaho kasama ang 16 na banal sa isang bidirectional na paraan, sa pamamagitan ng pagkakaroon ng MUX / DEMUX. Iyon ay, maaari mo itong gamitin bilang isang uri ng matalinong paglipat.

Kaya, ang iyong Arduino ay maaaring magbasa at sumulat ng hanggang sa 16 magkakaibang mga aparato na may 5 pin lamang, 4 sa mga ito ang ginamit para sa control at isang karagdagang isa upang makolekta ang signal na inilaan na mabasa o maisulat alinsunod sa napiling channel.

Ang magandang bagay sa chip na ito ay iyon gumagana sa parehong mga digital at analog signal, sa gayon ito ay katugma sa maraming mga sensor na gumagana sa analog at iba pang mga digital chip, pati na rin ang isang iba't ibang mga iba't ibang mga elektronikong elemento. Nagbibigay ito ng mahusay na kagalingan sa maraming kaalaman. Iyon ang dahilan kung bakit kilala rin sila bilang mga I / O nagpapalawak o input at output amplifiers ...

Maaari mo ring gamitin ito para sa mga komunikasyon sa pamamagitan ng serial port, ang I2C bus o ang SPI, kung saan napag-usapan na namin sa iba pang mga okasyon.

Siyempre, bago magtrabaho kasama ito, dapat mong tiyakin na matugunan ang mga voltages at alon inaamin ang circuit na ito upang hindi ito mapinsala. Halimbawa, sa kasong ito maaari itong magbigay ng hanggang sa 20 mA, pati na rin isang boltahe ng 2 hanggang 6v. Gayunpaman, kung nais mong magtrabaho kasama ang mas mataas na mga alon maaari kang gumamit ng isang relay o sa pamamagitan ng isang transistor.

Pagsasama sa Arduino

Arduino gamit ang Bluetooth

Isang anyo ng magkaroon ng mas maraming mga input sa iyong Arduino board o higit pang mga output, ay upang gamitin ang mga multiplexer at demultiplexer na ito. Sa kanila maiiwasan mong bumili ng isang mas mataas na presyong board na mayroong maraming mga pin, o kinakailangang gumamit ng iba pang mga trick upang ikonekta ang lahat ng kailangan mo.

Halimbawa, maaari kang gumamit ng a MUX at DEMUX module upang magkaroon ng pareho sa isang solong elemento, at pagkatapos ay madaling isama ito sa iyong proyekto sa Arduino. Sa CD74HC4067 maaari mong maikonekta ito nang napakadali, kaya dapat mong sundin ang mga patakarang ito:

  • Vcc ng MUX / DEMUX chip dapat mong ikonekta ito sa Vcc ng Arduino o 5V.
  • Ang GND, ang lupa, dapat mong ikonekta ito sa GND ng Arduino.
  • Ang mga pin na minarkahan ng S0, S1, S2, S3 ay ang mga kumokontrol sa aktibong channel, na may apat na Arduino digital I / O, tulad ng D8, D9, D10 at D11.
  • Ang EN ay nagpapagana din, upang gumana ito bilang isang multiplexer maaari mo itong ikonekta sa GND ng Arduino.
  • At ang SIG ay ang output signal na tutukoy sa napiling channel. Maaari itong konektado sa Arduino o sa anumang aparato na kailangang basahin ang output. Sa kasong ito ay konektado ko ito sa A0 upang makuha ang mga halaga mula sa Arduino mismo.
  • Sa kabilang dulo ng modyul magkakaroon ka ng mga input sa kasong ito, na kung saan ay C0-C10 na maaari mong ikonekta sa iyong mga aparato.

Kapag nakakonekta, ang Arduino code ay maaaring maging simple. Ang Sketch ng Arduino IDE bilang multiplexer Maaari itong maging ang sumusunod (ang code na ito ay papatayin lamang at sa kanilang mga channel ayon sa pagkakabanggit, ngunit maaari mong baguhin ito upang gawin ang nais mong proyekto):

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

Kung nais mong gamitin ito bilang DEMUX, dapat mo lamang isaalang-alang na ang C0-C10 ay ang mga output at SIG ang magiging input. Kaso gusto mo gamitin ito bilang isang demultiplexer, ang code ay magbabago tulad nito:

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

Tandaan na maaari kang makakuha ng karagdagang impormasyon sa tulong ng aming libreng kurso sa programa ng Arduino.


Ang nilalaman ng artikulo ay sumusunod sa aming mga prinsipyo ng etika ng editoryal. Upang mag-ulat ng isang pag-click sa error dito.

Isang komento, iwan mo na

Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish.

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   Xavier Ortiz dijo

    Kumusta, gumagawa ako ng isang proyekto, ang bagay na ginagawa ko upang magamit ang 74hc4067 para sa mga input ng 16 na infrared na mga sensor ng balakid, at ang bawat sensor ay binabaling ako sa isang iba't ibang output. Kaya kung magagawa ko ito sa arduino mega ngunit kailangan kong gumamit ng 50 infrared sensor at ang bawat isa ay nagbukas ng isang output, iyon ay, 50 outputs, iniisip kong gumamit ng maraming 744067 para sa mga input ng sensor at para sa mga output ng tlc5940, ngunit sa ano ang code ng programa medyo nawala ako, salamat nang maaga para sa iyong tulong.

Pagsubok sa EnglishSubukan ang Catalanpagsusulit sa Espanyol