Skyduino:~#
Articles
arduino, programmation, test

[Test] Analog Mux 4067 (16 canaux)

Salut tout le monde !

Aujourd’hui je vais vous parler du 4067, et plus précisément de la version breakout de sparkfun de ce composant.

Le 4067 est un petit circuit intégré qui a pour but de « multipléxé » ou de « démultipléxé » des signaux analogique ou numérique.
Pour faire simple avec une broche analogique et 4 broches numérique il est possible d’avoir jusqu’à 16 I/O analogiques/numériques.
Une belle perspective d’utilisation avec une carte arduino !
Imaginé pouvoir connecter 16 capteurs sur une seule broche analogique !
Ou alors 16 bouton/ led sur une broche digital !

Comme toujours quand c’est rouge et blanc, sparkfun n’est pas loin !

Pour cette démonstration je vais utiliser mon arduino pro mini et une breadboard.

Le cablage sera le suivant :

4067 -> arduino
S0 -> D8
S1 -> D9
S2 -> D10
S3 -> D11
SIG -> A0
VCC -> VCC
E -> GND
GND -> GND

Ensuite pour exploiter un peu la chose je vais câbler 16 potentiomètres, ça fait du monde sur la breadboard 8)

Une petite vu plongeante pour le fun !

Maintenant que tout est cablé, le code !
Il est trés simple, il scan chaque canal et renvoie ça valeur analogique.

// Broche d'adresse
#define S0 8
#define S1 9
#define S2 10
#define S3 11

// Broche signal
#define SIG A0

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);
  Serial.println("CD4067 Arduino Test");
}

void loop(){

  // Pour chaque canaux on renvoie la valeur sur le port série
  for(byte i = 0; i < 16; i ++){
    Serial.print("Channel ");
    Serial.print(i, DEC);
    Serial.print(" : ");
    Serial.println(readMux(i), DEC);
    delay(1000);
  }

}

int readMux(byte channel){
  // On selectionne le canaux
  digitalWrite(S0, bitRead(channel, 0) ? HIGH : LOW);
  digitalWrite(S1, bitRead(channel, 1) ? HIGH : LOW);
  digitalWrite(S2, bitRead(channel, 2) ? HIGH : LOW);
  digitalWrite(S3, bitRead(channel, 3) ? HIGH : LOW);

  // On lit la valeur courante
  return analogRead(SIG);
}

On upload le tout et on test !

Et comme prévue la magie fait effet !

CD4067 Arduino Test
Channel 0 : 476
Channel 1 : 501
Channel 2 : 669
Channel 3 : 489
Channel 4 : 445
Channel 5 : 598
Channel 6 : 469
Channel 7 : 479
Channel 8 : 391
Channel 9 : 490
Channel 10 : 515
Channel 11 : 21
Channel 12 : 145
Channel 13 : 535
Channel 14 : 627
Channel 15 : 436
Channel 0 : 476
Channel 1 : 501
Channel 2 : 670
Channel 3 : 488
Channel 4 : 445
Channel 5 : 597
Channel 6 : 470
Channel 7 : 479
Channel 8 : 391
Channel 9 : 490
Channel 10 : 514
Channel 11 : 21
Channel 12 : 144
Channel 13 : 535
Channel 14 : 627
Channel 15 : 436
Channel 0 : 475

Conclusion :
C’est une petite breakout, petite mais puissante !
Si on à beaucoup de capteur c’est l’idéal, ici 16 potentiométre c’est deja beaucoup de monde !
Comme le 4067 se comporte comme un interrupteur on peu imaginer faire un système pour rediriger un port série, une connexion i2C ou mieux faire une sélection d’esclave en SPI.
Cette breakout peut faire énormément de chose à vous de découvrir sont potentielle dans vos projets !

About these ads

Discussion

3 réflexions sur “[Test] Analog Mux 4067 (16 canaux)

  1. BONJOUR, est ce que se projet peut m’aider a envoyer un code binaire et recevoir un 1 en sortie ?

    Publié par mouto | 28 mars 2012, 16 h 40 min
  2. bonjour, skywood !

    juste pour savoir si vous pouvez m’aider!

    je recherche comment écrire des valeurs binaires
    dans un démultiplexeur avec ma carte arduino , mon démultiplexeur est un 4051

    Merci! de m’aider!

    Publié par mouto | 2 avril 2012, 14 h 54 min

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

Archives

Wow. Dogecoin. Amaze.

Laissez un tip en Dogecoin

DMMNFk6WBVTpx2Wu1Z35GL61QXSd6r6WQx

Suivre

Recevez les nouvelles publications par mail.

Rejoignez 770 autres abonnés