Мултиплексор: всичко, което трябва да знаете

мултиплексор чип

Un мултиплексор е комбинационна схема, която има няколко входа и един изход за данни. С това е възможно да се избере преминаването само на един от входовете му, за да се насочи към изхода му. Тоест, можете да изберете от кой вход да вземете данните или бита, които са на входа и да игнорирате останалите входове. Това е много често в електрониката, когато няколко връзки трябва да споделят една линия или шина.

Тоест, като контролирате мултиплексора, който можете изберете подходящия вход по всяко време. Какво прави възможно, въпреки че да имате само една връзка, можете да работите с множество входни устройства едновременно, без те да си пречат помежду си. Освен това трябва да знаете, че демултиплексор обикновено се използва заедно с мултиплексора в много проекти ...

Какво е мултиплексор?

мултиплексор

Тези комбинационни услуги, наречени мултиплексори те обикновено не са сложни. Те се състоят от няколко логически порта, в зависимост от броя на въведените им данни, а контролът може да увеличи сложността. Те обикновено включват 2n входове и единичен изход, както и контролни линии. И можете да използвате няколко от тях в комбинация, за да увеличите този брой налични билети.

Може да се разбере като селектор. Например, представете си, че имате много прост с два входа, най-простият, който може да бъде изграден. Тази схема ще има един управляващ вход и изход. Ако входовете са A и B, с контролния вход можете да контролирате дали A е този, който предава стойността си на изхода S, или B е този, който го прави. За да направите това, трябва само да променяте стойността на контролната линия C. Например, ако C = 0, това ще бъде A, а ако C = 1, това ще бъде B.

Както ще разберете, ако има повече входове, ще са необходими повече контролни входове за избор. Всъщност мултиплексорът е специален тип декодер, с разрешаващ сигнал за всяка включена И порта и ИЛИ порта между изхода и И портата. По този начин може лесно да бъде избран.

Що се отнася до неговите приложения, можете да го използвате за множество неща:

  • Селектор за вход, за да споделите една шина или линия, когато имате няколко входа.
  • Сериализатор, така че да приема стойността на всеки от входовете си в ред.
  • За мултиплексирано предаване, като се използват едни и същи връзки за различни данни от различни устройства. Например, представете си, че искате да използвате един и същ щифт за данни на микроконтролера, за да свържете няколко изхода на устройството, но че той може да изпраща информация само по един ...
  • Изпълнявайте логически функции и т.н.

Типове мултиплексори

В зависимост от начина на разделяне на предаването има различни видове мултиплексори или мултиплексиране:

  • Чрез разделяне на честотата
  • По разделение на времето
  • Чрез кодово разделяне
  • Чрез разделяне на дължина на вълната

Както можете да си представите, те се контролират от честотата, от времето от часовника, от двоичния код и от дължината на вълната. Но тук ме интересуват само конвенционалните ...

В допълнение към типовете, както при демултиплексора, можете да го намерите с повече или по-малко канали 2, 4, 8, 16 и т.н., в зависимост от това, от което се нуждаете за вашите домашни проекти.

Разлики с демултиплексор

демултиплексор

В цифровата електроника има демултиплексор, комбинационна схема, която е антагонистът на мултиплексора. В този случай ще има само един информационен вход, но той може да бъде предаден чрез различните си изходи. С други думи, в този случай управляващите сигнали ще решат към кой изход се прехвърлят входните данни.

Si свързвате демултиплексор към изхода на мултиплексор, можете да имате много полезна система за научаване как работят и двете устройства.

Къде да купя?

мултиплексор демултиплексор

Тези устройства обикновено са внедрени в потапяйте чипове много просто. Можете да ги намерите в голямо разнообразие от марки и с редица входове или изходи, в случай че сте демултиплексор. Освен това те лесно се намират в различни специализирани медии или онлайн магазини. Ако се интересувате от покупка на добра цена, това могат да бъдат добри примери за започване на вашите проекти:

Съветвам ви да прочетете таблиците с данни от техните производители, за да добиете ясна представа за своите щипка, тъй като те могат да варират в зависимост от производителя или типа, който сте закупили.

CD74HC4067

Освен това, както виждате, има и много добри модули, които ви позволяват да имате и двете устройства в едно. Това е случаят на известен CD74HC4067, малък модул с технология TTL, който може да ви помогне да работите с 16-те си банала по двупосочен начин, като имате MUX / DEMUX. Тоест можете да го използвате като вид интелигентен превключвател.

По този начин вашият Arduino може да чете и пише до 16 различни устройства само с 5 пина, 4 от тях използвани за управление и допълнителен за събиране на сигнала, който е предназначен за четене или запис според избрания канал.

Хубавото на този чип е това работи както с цифрови, така и с аналогови сигнали, така че е съвместим с много сензори, които работят върху аналогови и други цифрови чипове, както и с множество различни електронни елементи. Дава голяма гъвкавост. Ето защо те са известни още като I / O разширители или входни и изходни усилватели ...

Можете дори да го използвате за комуникации през серийния порт, шината I2C или SPI, за които вече говорихме по други поводи.

Разбира се, преди да работите с него, трябва да се уверите в това отговарят на напреженията и токовете който допуска тази верига, за да не я повреди. Например, в този случай той може да осигури до 20 mA, както и напрежение от 2 до 6v. Ако обаче искате да работите с по-високи токове можете да използвате реле или през транзистор.

Интеграция с Arduino

Arduino с Bluetooth

Форма на имате повече входове на вашата платка Arduino или повече изходи, е да се използват тези мултиплексори и демултиплексори. С тях ще избегнете да купувате дъска с по-висока цена, която има повече щифтове, или да използвате други трикове, за да свържете всичко, от което се нуждаете.

Например можете да използвате MUX и DEMUX модул за да можете да имате и двете в един елемент и след това да ги интегрирате по прост начин във вашия проект с Arduino. С CD74HC4067 можете да го свържете много лесно, така че трябва да следвате тези правила:

  • Vcc на чипа MUX / DEMUX трябва да го свържете към Vcc на Arduino или 5V.
  • GND, земята, трябва да го свържете с GND на Arduino.
  • Пиновете с маркировка S0, S1, S2, S3 са тези, които контролират активния канал, с четири Arduino цифрови I / O, като D8, D9, D10 и D11.
  • EN също позволява, така че да работи като мултиплексор, можете да го свържете към GND на Arduino.
  • И SIG е изходният сигнал, който ще определи избрания канал. Той може да бъде свързан към Arduino или към всяко устройство, което трябва да прочете изхода. В този случай съм го свързал с A0, за да получа стойностите от самия Arduino.
  • В другия край на модула ще имате входовете в този случай, които са C0-C10, които можете да свържете към вашите устройства.

Веднъж свързан, кодът на Arduino може да бъде прост. The Arduino IDE скица като мултиплексор Може да бъде следното (този код ще изключи и включи съответно каналите им, но можете да го промените, за да направите проекта, който искате):

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

Ако искате да го използвате като DEMUX, трябва само да вземете предвид, че C0-C10 ще бъдат изходите, а SIG ще бъде входът. В случай, че искате използвайте го като демултиплексор, кодът ще се промени по следния начин:

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

Не забравяйте, че можете да получите повече информация с помощта на нашата безплатен курс по програмиране на Arduino.


Коментар, оставете своя

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   Ксавие Ортис каза той

    Здравейте, правя проект, това, което правя, за да използвам 74hc4067 за входове на 16 инфрачервени сензора за препятствия и че всеки сензор осветява различен изход за мен. Е, ако бих могъл да го направя с arduino mega, но трябва да използвам 50 инфрачервени сензора и всеки да включва изход, тоест 50 изхода, мисля да използвам няколко 744067 за входове на сензора и tlc5940 за изходи, но в какво е програмният код, малко се изгубих, благодаря предварително за вашата помощ.