Tutoriels

Utilisation du multiplexeur analogique CD74HC4067 avec Arduino

Schéma montrant les connexions entre le multiplexeur analogique CD74HC4067 et Arduino

Introduction

Le multiplexeur analogique CD74HC4067 est un composant électronique puissant qui permet d’élargir le nombre de canaux d’entrée/sortie analogiques disponibles sur une carte Arduino. Dans cet article, nous explorerons en détail le fonctionnement de ce multiplexeur et apprendrons à l’utiliser avec Arduino pour lire des valeurs analogiques à partir de plusieurs sources.

Fonctionnement du multiplexeur analogique CD74HC4067

1.1 Présentation du multiplexeur analogique CD74HC4067

Le multiplexeur analogique CD74HC4067 est un circuit intégré qui agit comme un commutateur électronique, permettant de connecter un signal d’entrée ou de sortie à l’un des 16 canaux disponibles. Il est contrôlé par des signaux logiques qui déterminent quel canal est sélectionné.

multiplexeur analogique CD74HC4067
multiplexeur analogique CD74HC4067

1.2 Tableau de configuration des canaux

Pour utiliser efficacement le multiplexeur, il est essentiel de comprendre le tableau de configuration des canaux. Celui-ci indique quelles combinaisons de signaux logiques sur les broches de contrôle (S0, S1, S2, S3) sélectionnent chaque canal. En se référant au tableau, il est possible de choisir rapidement le canal souhaité.

Table de vérite de multiplexeur analogique CD74HC4067
Table de vérité de multiplexeur analogique CD74HC4067

1.3 Utilisation des signaux de contrôle

Outre les signaux de sélection de canal, le multiplexeur dispose également d’une broche d’activation (EN) qui permet de l’allumer ou de l’éteindre. Lorsque la broche EN est à l’état bas, la puce est activée, tandis que lorsqu’elle est à l’état haut, la puce est désactivée.

Multiplexeur analogique CD74HC4067
Multiplexeur analogique CD74HC4067

Configuration matérielle

2.1 Connexion du multiplexeur au microcontrôleur Arduino Uno

La connexion du multiplexeur CD74HC4067 à Arduino est assez simple. Les broches de sélection de canal (S0, S1, S2, S3) sont connectées à des broches numériques libres de l’Arduino. La broche d’activation (EN) peut être connectée à la masse ou à une broche de sortie de l’Arduino pour permettre l’allumage ou l’extinction du multiplexeur. Enfin, le signal d’entrée ou de sortie du multiplexeur est connecté à une broche analogique de l’Arduino.

2.2 Matériel requis :

2.3 Schéma de câblage

Il est recommandé de consulter le schéma de câblage fourni dans la documentation du multiplexeur CD74HC4067 et de suivre attentivement les connexions recommandées. Veillez également à utiliser des résistances de limitation de courant appropriées pour protéger le multiplexeur et l’Arduino.

donc pour tester les performances du circuit et du code, vous pouvez utiliser un diviseur de tension selon le circuit suivant.

Schéma de câblage multiplexeur CD74HC4067 avec Arduino
Schéma de câblage multiplexeur CD74HC4067 avec Arduino

Configuration logicielle

3.1 Définition des broches Arduino

Avant de commencer à utiliser le multiplexeur, les broches de sélection de canal, d’activation et de signal de l’Arduino doivent être définies dans le code. Cela permettra au programme de contrôler le multiplexeur et de lire les valeurs analogiques à partir des canaux sélectionnés.

3.2 Configuration initiale

Dans la fonction setup(), les broches de sélection de canal, d’activation et de signal de l’Arduino sont configurées en tant que sorties ou entrées, selon les besoins. De plus, le multiplexeur est initialement désactivé en mettant la broche d’activation (EN) à l’état bas.

3.3 Lecture des valeurs analogiques

Dans la fonction loop(), un exemple de code est fourni pour lire les valeurs analogiques à partir des 16 canaux du multiplexeur. Une boucle itère sur tous les canaux, en utilisant la fonction readMux() pour sélectionner le canal correspondant. Ensuite, la valeur analogique est lue à partir du signal de sortie du multiplexeur et affichée sur le moniteur série de l’Arduino.

Exemple de code

4.1 Code complet pour lire les 16 canaux

//Mux control pins
int s0 = 8;
int s1 = 9;
int s2 = 10;
int s3 = 11;

//Mux in "SIG" pin
int SIG_pin = 0;


void setup(){
  pinMode(s0, OUTPUT); 
  pinMode(s1, OUTPUT); 
  pinMode(s2, OUTPUT); 
  pinMode(s3, OUTPUT); 

  digitalWrite(s0, LOW);
  digitalWrite(s1, LOW);
  digitalWrite(s2, LOW);
  digitalWrite(s3, LOW);

  Serial.begin(9600);
}


void loop(){

  //Loop through and read all 16 values
  for(int i = 0; i < 16; i ++){
    Serial.print("Value at channel ");
    Serial.print(i);
    Serial.print("is : ");
    Serial.println(readMux(i));
    delay(1000);
  }

}


float readMux(int channel){
  int controlPin[] = {s0, s1, s2, s3};

  int muxChannel[16][4]={
    {0,0,0,0}, //channel 0
    {1,0,0,0}, //channel 1
    {0,1,0,0}, //channel 2
    {1,1,0,0}, //channel 3
    {0,0,1,0}, //channel 4
    {1,0,1,0}, //channel 5
    {0,1,1,0}, //channel 6
    {1,1,1,0}, //channel 7
    {0,0,0,1}, //channel 8
    {1,0,0,1}, //channel 9
    {0,1,0,1}, //channel 10
    {1,1,0,1}, //channel 11
    {0,0,1,1}, //channel 12
    {1,0,1,1}, //channel 13
    {0,1,1,1}, //channel 14
    {1,1,1,1}  //channel 15
  };

  //loop through the 4 sig
  for(int i = 0; i < 4; i ++){
    digitalWrite(controlPin[i], muxChannel[channel][i]);
  }

  //read the value at the SIG pin
  int val = analogRead(SIG_pin);

  //return the value
  float voltage = (val * 5.0) / 1024.0;
  return voltage;
}

Résultats et utilisation

5.1 Affichage des valeurs analogiques sur le moniteur série

Après avoir téléversé le code sur l’Arduino, vous pourrez observer les valeurs analogiques lues à partir des 16 canaux du multiplexeur sur le moniteur série de l’Arduino. Cela permet de vérifier le bon fonctionnement du multiplexeur et de s’assurer de la lecture précise des valeurs analogiques.

Capture d'écran illustrant l'exemple de code présenté dans l'article, où les valeurs analogiques sont lues à partir du multiplexeur et affichées sur le moniteur série d'Arduino.
Observation des valeurs analogiques fournie par 16 canaux sur Série Moniteur

5.2 Utilisation des valeurs lues pour des applications spécifiques

Les valeurs analogiques lues à partir du multiplexeur peuvent être utilisées pour différentes applications. Par exemple, vous pouvez les utiliser pour contrôler des actionneurs, effectuer des mesures précises ou surveiller des capteurs analogiques à partir de multiples sources.

Conclusion

Dans cet article, nous avons exploré en détail l’utilisation du multiplexeur analogique CD74HC4067 avec Arduino. Nous avons appris comment le connecter, le configurer et lire des valeurs analogiques à partir de différents canaux. Grâce à ce composant, il est possible d’étendre les capacités d’entrée/sortie analogiques de l’Arduino et de réaliser des projets plus complexes et polyvalents.

Vidéo description de contrôle les relais par multiplexeur analogique CD74HC4067

fiche technique de multiplexeur analogique CD74HC4067 : https://www.ti.com/lit/ds/symlink/cd74hc4067.pdf

Pour plus d’articles : https://www.moussasoft.com/tutoriels-electroniques

Twitter: Moussa Lhoussaine (@Moussasoft_com) / Twitter