Multiplexor analógico CD74HC4067 16 canales (ref: 0019)

1,50 

Hay existencias

Cantidad Descuento
1 - 5 -
6 - 10 5%
11 - 15 10%
16 + 15%

Descripción

Este multiplexor analógico bidireccional nos permite aumentar el número de entradas analógicas de nuestro controlador. Nos permitirá dirigir la señal de 16 entradas (C0-C15) hacia una única conexión con el Arduino (SIG). Los pines de control S0 a S3 permiten apuntar a una de las 16 entradas. El pin de activación (EN, activo a nivel bajo) activa o desactiva el funcionamiento del multiplexor. Como es bidireccional, también puede usarse para ampliar el número de salidas. Es un dispositivo analógico, aunque puede usarse también con entradas/salidas digitales; no obstante, existen multiplexores específicos para aplicaciones digitales, como mejor rendimiento bajo ciertas condiciones.

Basado en el chip CD74HC4067. Más información: Hoja de datos CD74HC4067

Ejemplo de código (usándolo como entrada):

// *** CONEXIONES ***
const int SIG = A0; //Pin SIG del MUX conectado a A0 en Arduino
const int S0 = 7; // Pines S0-S3 conectados a D7-D10 en Arduino
const int S1 = 8;
const int S2 = 9;
const int S3 = 10;
// *** FUNCIÓN SELECCIÓN DE CANAL ***
int MuxCanal(byte canal){ // Activa los pines correspondientes al canal seleccionado (0-15)
   digitalWrite(S0, bitRead(canal, 0));
   digitalWrite(S1, bitRead(canal, 1));
   digitalWrite(S2, bitRead(canal, 2));
   digitalWrite(S3, bitRead(canal, 3));
}
// *** CONFIGURACIÓN ***
void setup() {
   pinMode(S0, OUTPUT); //Pines de control del MUX como salidas
   pinMode(S1, OUTPUT);
   pinMode(S2, OUTPUT);
   pinMode(S3, OUTPUT);
   Serial.begin(9600); // Monitor Serie a 9600bps
}
// *** CÓDIGO PRINCIPAL ***
void loop() {
// Recorre los 16 canales, mostrando su valor por el monitor serie
   for (byte j = 0; j < 16; j++) {
      MuxCanal(j); // Apunta al canal "j"
      delay(50); // Espera de 50ms
      byte valor = analogRead(SIG); //Lee la entrada A0
      Serial.print(valor);
      Serial.print("\t");
   }
   Serial.println();
}

Ejemplo de código (usándolo como salida):

// *** CONEXIONES ***
const int SIG = A0; //Pin SIG del MUX conectado a A0 en Arduino
const int S0 = 7; // Pines S0-S3 conectados a D7-D10 en Arduino
const int S1 = 8;
const int S2 = 9;
const int S3 = 10;
// *** FUNCIÓN SELECCIÓN DE CANAL ***
int MuxCanal(byte canal){ // Activa los pines correspondientes al canal seleccionado (0-15)
   digitalWrite(S0, bitRead(canal, 0));
   digitalWrite(S1, bitRead(canal, 1));
   digitalWrite(S2, bitRead(canal, 2));
   digitalWrite(S3, bitRead(canal, 3));
}
// *** CONFIGURACIÓN ***
void setup(){
   pinMode(SIG, OUTPUT); // Todos los pines como salida
   pinMode(S0, OUTPUT);
   pinMode(S1, OUTPUT);
   pinMode(S2, OUTPUT);
   pinMode(S3, OUTPUT);
}
// *** CÓDIGO PRINCIPAL ***
void loop() {
   for (byte j = 0; j < 16; j++) {
   // Apunta al canal "j" y lo activa durante 1seg
      MuxCanal(j);
      digitalWrite(SIG, HIGH);
      delay(1000);
      digitalWrite(SIG, LOW);
   }
}

También te recomendamos…