Мультиплексор: усе, що вам потрібно знати

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

Un мультиплексор являє собою комбінаційну схему, яка має кілька входів і один вихід даних. Завдяки цьому можна вибрати прохід лише одного з його входів, щоб направити його до виходу. Тобто, ви можете вибрати, з якого входу брати дані або біт, що є на вході, і ігнорувати решту входів. Це дуже часто зустрічається в електроніці, коли декілька з'єднань повинні спільно використовувати одну лінію або шину.

Тобто, керуючи мультиплексором, ви можете постійно вибирайте відповідне введення. Що робить можливим, що, незважаючи на лише одне з’єднання, ви можете одночасно працювати з кількома пристроями введення, не заважаючи один одному. Крім того, ви повинні знати, що демультиплексор зазвичай використовується разом з мультиплексором у багатьох проектах ...

Що таке мультиплексор?

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

Ці комбінаційні служби називають мультиплексори вони, як правило, не складні. Вони складаються з декількох логічних входів, залежно від їх кількості введених даних, і управління може збільшити складність. Зазвичай вони включають 2n входи і один вихід, а також лінії управління. І ви можете використовувати кілька з них у комбінації, щоб збільшити кількість доступних квитків.

Це можна зрозуміти як селектор. Наприклад, уявіть, що у вас є дуже простий з двома входами, найпростіший, який можна побудувати. Ця схема матиме єдиний вхід і вихід управління. Якщо входи A і B, за допомогою входу управління можна контролювати, чи це A передає своє значення на вихід S, чи це робить B. Для цього вам потрібно лише змінити значення контрольної лінії C. Наприклад, якщо C = 0, це буде A, а якщо C = 1, то це буде B.

Як ви зрозумієте, якщо буде більше вхідних даних, знадобиться більше входи управління для відбору. Насправді мультиплексор - це спеціальний тип декодера, з сигналом включення для кожного вхідного входу AND і затвором АБО між виходом і входами AND. Таким чином його можна легко вибрати.

Що стосується його додатків, ви можете ним користуватися для безлічі речей:

  • Селектор вводу для спільного використання однієї шини або лінії, якщо у вас є кілька входів.
  • Серіалізатор, щоб він приймав значення кожного з його входів по порядку.
  • Для мультиплексної передачі використовуються однакові лінії зв'язку для різних даних з різних пристроїв. Наприклад, уявіть, що ви хочете використовувати один і той же штифт даних мікроконтролера для підключення декількох виходів пристрою, але що він може надсилати інформацію лише по одному ...
  • Виконувати логічні функції тощо.

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

Залежно від способу поділу передачі існують різні типи мультиплексори або мультиплексування:

  • За частотним поділом
  • За розподілом часу
  • Кодовим поділом
  • Поділом довжина хвилі

Як ви можете собі уявити, ними керує частота, час - годинник, двійковий код та довжина хвилі. Але тут мене цікавлять лише звичайні ...

На додаток до типів, як і у демультиплексора, ви можете знайти його і за допомогою більш-менш каналів 2, 4, 8, 16 тощо, залежно від того, що вам потрібно для ваших саморобних проектів.

Відмінності з демультиплексором

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

У цифровій електроніці є демультиплексор, комбінаційна схема, яка є антагоністом мультиплексора. У цьому випадку буде лише один вхід інформації, але він може передаватися через різні виходи. Іншими словами, у цьому випадку керуючі сигнали вирішать, на який вихід передаються вхідні дані.

Si ви підключаєте демультиплексор до виходу мультиплексора, ви можете мати дуже корисну систему для вивчення того, як працюють обидва пристрої.

Де купити?

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

Ці пристрої зазвичай реалізовані в занурити чіпси дуже просто. Ви можете знайти їх у найрізноманітніших торгових марок та з кількома входами чи виходами, якщо ви є демультиплексором. Крім того, їх легко знайти в різних спеціалізованих ЗМІ або Інтернет-магазинах. Якщо ви зацікавлені придбати такий за вигідною ціною, це можуть бути гарні приклади для початку своїх проектів:

Раджу прочитати таблиці даних від виробників, щоб отримати чітке уявлення про них цоколевка, оскільки вони можуть відрізнятися залежно від виробника або типу, який ви придбали.

cd74hc4067

Крім того, як бачите, є також дуже хороші модулі, які дозволяють мати обидва пристрої в одному. Це випадок відомий CD74HC4067, невеликий модуль з технологією TTL, який може допомогти вам працювати зі своїми 16 бананами в двосторонньому напрямку, використовуючи MUX / DEMUX. Тобто ви можете використовувати його як свого роду розумний комутатор.

Таким чином, ваш Arduino може читати та писати до 16 різних пристроїв лише 5 висновків, 4 з них використовуються для управління, а додатковий - для збору сигналу, який призначений для зчитування або запису відповідно до обраного каналу.

Хороша річ цього чіпа в тому, що працює як з цифровими, так і з аналоговими сигналами, тому він сумісний з багатьма датчиками, які працюють на аналогових та інших цифрових мікросхемах, а також з безліччю різних електронних елементів. Це дає велику універсальність. Ось чому вони також відомі як розширювачі вводу-виводу або підсилювачі вводу-виводу ...

Ви можете навіть використовувати його для зв'язку через послідовний порт, шина I2C або SPI, про яку ми вже говорили в інших випадках.

Звичайно, перед тим як працювати з ним, ви повинні це переконатись відповідають напругам і струмам що допускає цю схему, щоб не пошкодити її. Наприклад, у цьому випадку він може забезпечувати до 20 мА, а також напругу від 2 до 6 в. Однак, якщо ви хочете працювати з вищими струмами ви можете використовувати реле або через транзистор.

Інтеграція з Arduino

Arduino з Bluetooth

Форма мати більше входів на платі Arduino або більше виходів, полягає у використанні цих мультиплексорів та демультиплексорів. З ними вам не доведеться купувати плату з більш високими цінами, яка має більше шпильок, або використовувати інші трюки, щоб з’єднати все, що вам потрібно.

Наприклад, ви можете використовувати a Модулі MUX та DEMUX мати можливість мати обидва елементи в одному елементі, а потім простим способом інтегрувати їх у свій проект з Arduino. За допомогою CD74HC4067 ви можете дуже легко підключити його, тому ви повинні дотримуватися таких правил:

  • Vcc мікросхеми MUX / DEMUX, ви повинні підключити його до Vcc Arduino або 5V.
  • GND, земля, ви повинні підключити його до GND Arduino.
  • Висновки з позначками S0, S1, S2, S3 - це ті, які керують активним каналом з чотирма цифровими входами / виходами Arduino, такими як D8, D9, D10 і D11.
  • EN також дозволяє, так що він працює як мультиплексор, і ви можете підключити його до GND Arduino.
  • А SIG - це вихідний сигнал, який визначатиме обраний канал. Його можна підключити до Arduino або до будь-якого пристрою, який повинен зчитувати вихідні дані. У цьому випадку я підключив його до A0, щоб отримати значення з самого Arduino.
  • На іншому кінці модуля ви матимете входи в цьому випадку, це C0-C10, які ви можете підключити до своїх пристроїв.

Після підключення код Arduino може бути простим. Ескіз IDE Arduino як мультиплексор Це може бути наступне (цей код лише вимкне і ввімкне їх канали відповідно, але ви можете змінити його, щоб зробити бажаний проект):

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 для виходів, але в чому полягає програмний код, я трохи загубився, заздалегідь дякую за вашу допомогу.