Multipleksers: viss, kas jums jāzina

multipleksera mikroshēma

Un multipleksors ir kombinēta shēma, kurai ir vairākas ieejas un viena datu izeja. Izmantojot šo, ir iespējams izvēlēties tikai vienas no tās ieejām, lai novirzītu to uz izeju. Tas ir, jūs varētu izvēlēties, no kuras ievades ņemt datus vai bitu, kas atrodas pie ieejas, un ignorēt pārējās ievades. Tas ir ļoti bieži elektronikā, kad vairākiem savienojumiem ir nepieciešams koplietot vienu līniju vai kopni.

Tas ir, kontrolējot multipleksoru, jūs varat vienmēr atlasiet atbilstošo ievadi. Kas padara iespējamu to, ka, neskatoties uz to, ka jums ir tikai viens savienojums, jūs varat vienlaikus strādāt ar vairākām ievades ierīcēm, netraucējot viena otrai. Jums arī jāzina, ka daudzos projektos demultipleksoru parasti lieto kopā ar multipleksoru ...

Kas ir multipleksors?

multipleksors

Šie kombinētie pakalpojumi zvanīja multipleksori tie parasti nav sarežģīti. Tie sastāv no dažiem loģiskiem vārtiem atkarībā no to ievadīto datu skaita, un kontrole varētu palielināt sarežģītību. Tie parasti ietver 2n ieejas un viena izeja, kā arī vadības līnijas. Un jūs varat izmantot vairākas no tām kombinācijā, lai palielinātu pieejamo biļešu skaitu.

To var saprast kā atlasītājs. Piemēram, iedomājieties, ka jums ir ļoti vienkāršs, ar divām ieejām, visvienkāršāko, ko var izveidot. Šai shēmai būs viena vadības ieeja un izeja. Ja ieejas ir A un B, ar vadības ieeju jūs varat kontrolēt, vai tas ir A, kurš nodod savu vērtību izejai S, vai tas ir B, kurš to dara. Lai to izdarītu, jums jāmaina tikai vadības līnijas C. vērtība. Piemēram, ja C = 0 tas būs A un ja C = 1 tas būs B.

Kā jūs sapratīsit, ja būs vairāk izejvielu, būs vajadzīgas arī citas vadības ieejas atlasei. Faktiski multipleksors ir īpašs dekodētāja tips, ar iespējošanas signālu katram iekļautajam AND vārtam un OR vārtiem starp izeju un vārtiem AND. Tādā veidā to var viegli izvēlēties.

Attiecībā uz tā lietojumprogrammām varat to izmantot par daudzām lietām:

  • Ievades atlasītājs, lai koplietotu vienu kopni vai līniju, ja jums ir vairākas ieejas.
  • Serializators tā, lai tas secībā ņemtu katra tā ievadītā vērtību.
  • Multipleksētai pārraidei, izmantojot vienas un tās pašas savienojuma līnijas dažādiem datiem no dažādām ierīcēm. Piemēram, iedomājieties, ka vēlaties izmantot vienu un to pašu mikrokontrollera datu tapu, lai savienotu vairākas ierīces izejas, taču informāciju var nosūtīt tikai pa vienam ...
  • Veikt loģiskās funkcijas utt.

Multipleksoru veidi

Atkarībā no pārraides sadalīšanas veida ir dažādi veidi multipleksori vai multipleksēšana:

  • Pēc frekvences dalījuma
  • Pēc laika dalījuma
  • Pēc koda dalīšanas
  • Sadalot viļņa garums

Kā jūs varat iedomāties, tos kontrolē frekvence, laiks - pulkstenis, binārs kods un viļņa garums. Bet šeit mani interesē tikai parastais ...

Papildus tipiem, tāpat kā ar demultiplekseri, jūs to varat atrast ar vairāk vai mazāk kanālu 2, 4, 8, 16 utt., Atkarībā no tā, kas jums nepieciešams jūsu DIY projektiem.

Atšķirības ar demultiplekseri

demultipleksers

Digitālajā elektronikā ir demultipleksers, kombinācijas shēma, kas ir multipleksora antagonists. Šajā gadījumā būs tikai viena informācijas ievade, bet to var nosūtīt, izmantojot dažādas tās izejas. Citiem vārdiem sakot, šajā gadījumā vadības signāli izlems, uz kuru izvadi tiek pārsūtīti ievades dati.

Si jūs multipleksētāja izejai pievienojat demultipleksoru, jums var būt ļoti noderīga sistēma, lai uzzinātu, kā darbojas abas ierīces.

Kur nopirkt?

multipleksers demultipleksers

Šīs ierīces parasti tiek ieviestas iemērciet mikroshēmas ļoti vienkārši. Jūs varat tos atrast dažādos zīmolos un ar vairākiem ievadiem vai izvadiem, ja esat demultipleksētājs. Turklāt tie ir viegli atrodami dažādos specializētos medijos vai tiešsaistes veikalos. Ja jūs interesē iegādāties par labu cenu, šie var būt labi piemēri, lai sāktu ar saviem projektiem:

Iesaku izlasīt datu lapas no ražotājiem, lai iegūtu skaidru priekšstatu par viņu pinout, jo tie var atšķirties atkarībā no iegādātā ražotāja vai veida.

cd74hc4067

Turklāt, kā redzat, ir arī ļoti labi moduļi, kas ļauj abas ierīces būt vienā. Tā tas ir zināms CD74HC4067, neliels modulis ar TTL tehnoloģiju, kas var palīdzēt jums strādāt ar saviem 16 banāliem divvirzienu veidā, izmantojot MUX / DEMUX. Tas ir, jūs varat to izmantot kā sava veida viedo slēdzi.

Tādējādi jūsu Arduino var lasīt un rakstīt līdz 16 dažādas ierīces ar tikai 5 tapām, 4 no tām tiek izmantotas kontrolei un vēl viena, lai savāktu signālu, kuru paredzēts lasīt vai rakstīt atbilstoši izvēlētajam kanālam.

Laba lieta šajā mikroshēmā ir tā darbojas gan ar ciparu, gan analogo signālu, tāpēc tas ir saderīgs ar daudziem sensoriem, kas darbojas ar analogām un citām digitālajām mikroshēmām, kā arī ar daudziem dažādiem elektroniskiem elementiem. Tas dod lielu daudzpusību. Tāpēc tos sauc arī par I / O paplašinātājiem vai ieejas un izejas pastiprinātājiem ...

Jūs to pat varētu izmantot sakari caur seriālo portu, I2C kopne vai SPI, par kuru mēs jau runājām citos gadījumos.

Protams, pirms strādājat ar viņu, jums tas ir jāpārliecinās atbilst spriegumiem un strāvām kas atzīst šo ķēdi, lai to nesabojātu. Piemēram, šajā gadījumā tas var nodrošināt līdz 20 mA, kā arī spriegumu no 2 līdz 6v. Tomēr, ja vēlaties strādāt ar lielāku strāvu jūs varētu izmantot releju vai caur tranzistoru.

Integrācija ar Arduino

Arduino ar Bluetooth

Viens veids jūsu Arduino dēlī ir vairāk ieeju vai vairāk izeju, ir izmantot šos multipleksorus un demultipleksētājus. Ar tiem jūs izvairīsities no tā, ka jums būs jāpērk dēlis ar augstāku cenu, kurā ir vairāk tapu, vai jāizmanto citi triki, lai savienotu visu nepieciešamo.

Piemēram, varat izmantot a MUX un DEMUX modulis lai abas varētu būt vienā elementā, un pēc tam vienkāršā veidā integrējiet to savā projektā ar Arduino. Izmantojot CD74HC4067, to var viegli savienot, tāpēc jums jāievēro šie noteikumi:

  • Mcc / DEMUX mikroshēmas Vcc jums tas jāpievieno Arduino vai 5V Vcc.
  • GND, zeme, jums tas jāpievieno Arduino GND.
  • Piespraudes, kas apzīmētas ar S0, S1, S2, S3, ir tās, kas kontrolē aktīvo kanālu ar četriem Arduino digitālajiem I / O, piemēram, D8, D9, D10 un D11.
  • EN arī iespējo, lai tas darbotos kā multipleksors, varat to savienot ar Arduino GND.
  • Un SIG ir izejas signāls, kas noteiks izvēlēto kanālu. To var savienot ar Arduino vai jebkuru ierīci, kurai jāizlasa izeja. Šajā gadījumā es to esmu savienojis ar A0, lai iegūtu vērtības no paša Arduino.
  • Moduļa otrajā galā šajā gadījumā būs ievadi, kas ir C0-C10, kurus varat savienot ar savām ierīcēm.

Kad savienojums ir izveidots, Arduino kods var būt vienkāršs. The Arduino IDE skice kā multipleksors Tas var būt šāds (šis kods attiecīgi tiks izslēgts un tikai viņu kanālos, taču jūs varat to modificēt, lai izveidotu vēlamo projektu):

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

Ja vēlaties to izmantot kā DEMUX, jums jāapsver tikai tas, ka C0-C10 būtu izejas un SIG būtu ieeja. Gadījumā, ja vēlaties izmantojiet to kā demultipleksoru, kods mainīsies šādi:

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

Atcerieties, ka ar mūsu palīdzību varat iegūt vairāk informācijas bezmaksas Arduino programmēšanas kurss.


Komentārs, atstāj savu

Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.

  1.   Ksavjē Ortizs teica

    Sveiki, es daru projektu, ko es daru, lai izmantotu 74hc4067 16 infrasarkano staru šķēršļu sensoru ieejām un ka katrs sensors man iededzina atšķirīgu izeju. Nu, ja es to varētu izdarīt ar arduino mega, bet man ir jāizmanto 50 infrasarkanie sensori un katrs ieslēdz izeju, tas ir, 50 izejas, es domāju izmantot vairākus 744067 sensoru ieejām un tlc5940 izejām, bet kādā ir programmēšanas kods, es esmu mazliet apmaldījies, paldies jau iepriekš par jūsu palīdzību.