Multiplexeur: tout ce que vous devez savoir

puce multiplexeur

Un multiplexeur est un circuit combinatoire qui a plusieurs entrées et une seule sortie de données. Avec cela, il est possible de sélectionner le passage d'une seule de ses entrées pour le canaliser vers sa sortie. Autrement dit, vous pouvez sélectionner à partir de quelle entrée prendre les données ou le bit qui se trouve à l'entrée et ignorer le reste des entrées. Ceci est très courant en électronique lorsque plusieurs connexions doivent partager une seule ligne ou un seul bus.

Autrement dit, en contrôlant le multiplexeur, vous pouvez sélectionnez à tout moment l'entrée appropriée. Ce qui permet que malgré une seule connexion, vous puissiez travailler avec plusieurs périphériques d'entrée en même temps sans qu'ils n'interfèrent les uns avec les autres. De plus, il faut savoir qu'un démultiplexeur est généralement utilisé en conjonction avec le multiplexeur dans de nombreux projets ...

Qu'est-ce qu'un multiplexeur?

multiplexeur

Ces services combinatoires appelés multiplexeurs ils ne sont généralement pas complexes. Ils sont composés de quelques portes logiques en fonction de leur quantité d'entrées de données et le contrôle pourrait augmenter la complexité. Ils comprennent généralement 2n entrées et une seule sortie, ainsi que des lignes de contrôle. Et vous pouvez utiliser plusieurs d'entre eux en combinaison pour augmenter ce nombre de billets disponibles.

Cela peut être compris comme un sélecteur. Par exemple, imaginez que vous en avez une très simple avec deux entrées, la plus simple qui puisse être construite. Ce circuit aura une seule entrée et sortie de contrôle. Si les entrées sont A et B, avec l'entrée de contrôle, il est possible de contrôler si c'est A qui transmet sa valeur à la sortie S ou si c'est B qui le fait. Pour ce faire, il suffit de faire varier la valeur de la ligne de contrôle C. Par exemple, si C = 0 ce sera A et si C = 1 ce sera B.

Comme vous l'aurez compris, s'il y a plus d'entrées, il en faudra plus entrées de contrôle pour la sélection. En fait, le multiplexeur est un type spécial de décodeur, avec un signal de validation pour chaque porte ET incluse et une porte OU entre la sortie et les portes ET. De cette façon, il peut être facilement sélectionné.

Quant à ses applications, vous pouvez l'utiliser pour une multitude de choses:

  • Sélecteur d'entrée pour partager un seul bus ou ligne lorsque vous avez plusieurs entrées.
  • Sérialiseur afin qu'il prenne la valeur de chacune de ses entrées dans l'ordre.
  • Pour une transmission multiplexée utilisant les mêmes lignes de connexion pour diverses données provenant de divers appareils. Par exemple, imaginez que vous souhaitiez utiliser la même broche de données d'un microcontrôleur pour connecter plusieurs sorties d'appareil, mais qu'il ne puisse envoyer des informations qu'une à la fois ...
  • Effectuer des fonctions logiques, etc.

Types de multiplexeurs

Selon la façon dont la transmission est divisée, il y a divers types multiplexeurs ou multiplexage:

  • Par division de fréquence
  • Par division temporelle
  • Par division de code
  • Par division de longueur d'onde

Comme vous pouvez l'imaginer, ils sont contrôlés par fréquence, par temps par une horloge, par code binaire et par longueur d'onde. Mais ici je ne m'intéresse qu'au conventionnel ...

En plus des types, comme avec le démultiplexeur, vous pouvez le trouver avec plus ou moins de canaux 2, 4, 8, 16, etc., selon ce dont vous avez besoin pour vos projets de bricolage.

Différences avec un démultiplexeur

démultiplexeur

Dans l'électronique numérique, il y a démultiplexeur, un circuit combinatoire qui est l'antagoniste du multiplexeur. Dans ce cas, il n'y aura qu'une seule entrée d'information, mais elle peut être transmise via ses différentes sorties. En d'autres termes, dans ce cas, il sera décidé au moyen des signaux de commande vers lesquels les données d'entrée sont transférées en sortie.

Si vous connectez un démultiplexeur à la sortie d'un multiplexeur, vous pouvez avoir un système très utile pour apprendre comment les deux appareils fonctionnent.

Où acheter?

démultiplexeur multiplexeur

Ces appareils sont normalement implémentés dans chips de trempette très simple. Vous pouvez les trouver dans une grande variété de marques et avec un certain nombre d'entrées ou de sorties en cas de démultiplexeur. De plus, ils se retrouvent facilement dans divers médias spécialisés ou magasins en ligne. Si vous souhaitez en acheter un à un bon prix, voici de bons exemples pour commencer vos projets:

Je vous conseille de lire les fiches techniques de leurs fabricants pour avoir une idée claire de leur brochage, car ils peuvent varier en fonction du fabricant ou du type que vous avez acheté.

cd74hc4067

De plus, comme vous pouvez le voir, il existe également de très bons modules qui vous permettent d'avoir les deux appareils en un. C'est le cas de connu CD74HC4067, un petit module avec la technologie TTL qui peut vous aider à travailler avec ses 16 banals de manière bidirectionnelle, en ayant MUX / DEMUX. Autrement dit, vous pouvez l'utiliser comme une sorte de commutateur intelligent.

Ainsi, votre Arduino peut lire et écrire jusqu'à 16 appareils différents avec seulement 5 broches, dont 4 utilisées pour le contrôle et une supplémentaire pour collecter le signal destiné à être lu ou écrit en fonction du canal sélectionné.

La bonne chose à propos de cette puce est que fonctionne avec les signaux numériques et analogiques, il est donc compatible avec de nombreux capteurs fonctionnant sur des puces analogiques et autres puces numériques, ainsi qu'avec une multitude d'éléments électroniques différents. Cela donne une grande polyvalence. C'est pourquoi ils sont également connus sous le nom d'extendeurs d'E / S ou d'amplificateurs d'entrée et de sortie ...

Vous pouvez même l'utiliser pour communications via le port série, le bus I2C ou le SPI, dont nous avons déjà parlé à d’autres occasions.

Bien sûr, avant de travailler avec, vous devez vous assurer que répondre aux tensions et courants que ce circuit admet pour ne pas l'endommager. Par exemple, dans ce cas, il peut fournir jusqu'à 20 mA, ainsi qu'une tension de 2 à 6v. Cependant, si vous souhaitez travailler avec des courants plus élevés vous pourriez utiliser un relais ou à travers un transistor.

Intégration avec Arduino

Arduino avec Bluetooth

À sens unique avoir plus d'entrées sur votre carte Arduino ou plus de sorties, consiste à utiliser ces multiplexeurs et démultiplexeurs. Avec eux, vous éviterez d'avoir à acheter une carte plus chère qui a plus de broches, ou d'avoir à utiliser d'autres astuces pour connecter tout ce dont vous avez besoin.

Par exemple, vous pouvez utiliser un Module MUX et DEMUX pour pouvoir avoir les deux dans un seul élément, puis l'intégrer de manière simple à votre projet avec Arduino. Avec le CD74HC4067, vous pouvez le connecter très facilement, vous devez donc suivre ces règles:

  • Vcc de la puce MUX / DEMUX vous devez le connecter à Vcc d'Arduino ou 5V.
  • GND, le sol, vous devez le connecter au GND de l'Arduino.
  • Les broches marquées S0, S1, S2, S3 sont celles qui contrôlent le canal actif, avec quatre E / S numériques Arduino, telles que D8, D9, D10 et D11.
  • L'EN est également activé, de sorte qu'il fonctionne comme un multiplexeur, vous pouvez le connecter au GND d'Arduino.
  • Et SIG est le signal de sortie qui déterminera le canal sélectionné. Il peut être connecté à Arduino ou à tout appareil qui a besoin de lire la sortie. Dans ce cas, je l'ai connecté à A0 pour obtenir les valeurs de l'Arduino lui-même.
  • À l'autre extrémité du module, vous aurez les entrées dans ce cas, qui sont C0-C10 que vous pouvez connecter à vos appareils.

Une fois connecté, le code Arduino peut être simple. le Esquisse Arduino IDE en tant que multiplexeur Cela peut être le suivant (ce code ne désactivera et rallumera que leurs canaux respectivement, mais vous pouvez le modifier pour créer le projet souhaité):

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

Si vous voulez l'utiliser comme DEMUX, vous devez seulement considérer que C0-C10 serait les sorties et SIG serait l'entrée. Au cas où tu veux utilisez-le comme démultiplexeur, le code changerait comme ceci:

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

N'oubliez pas que vous pouvez obtenir plus d'informations avec l'aide de notre cours de programmation Arduino gratuit.


Un commentaire, laissez le vôtre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

      Xavier Ortiz dit

    Salut, je fais un projet, la chose comme je le fais d'utiliser le 74hc4067 pour les entrées de 16 capteurs d'obstacles infrarouges, et que chaque capteur me tourne sur une sortie différente. Eh bien, si je pouvais le faire avec le méga arduino mais je dois utiliser 50 capteurs infrarouges et que chacun allume une sortie, c'est-à-dire 50 sorties, je pense utiliser plusieurs 744067 pour les entrées de capteur et pour les sorties le tlc5940, mais dans quel est le code de programmation je suis un peu perdu, merci d'avance pour votre aide.