Publicado el Dejar un comentario

ESP8266 Multiplexor HP4067 CMOS 16 CH

Un problema muy común al utilizar los chips de bajo costo para desarrollo de tecnologías IoT, es el número limitado de entradas analógicas disponibles, esto debido a que la implementación de las mismas resulta encarecer el producto, pero bueno, dado que el problema es la necesidad de ampliar el número de entradas analógicas existen varios métodos para hacerlo.

Sin embargo yo voy a describir una que considero muy simplificada y elegante.

MATERIALES

En mi caso yo utilicé los siguientes materiales:

  • Chip de bajo costo ESP8266 NODEMCU v3
  • Multiplexor analógico/digital CD74HC4067 16-analógico
  • Cables dupont
  • ¡Muchas ganas de aprender!
ESP8266
MULTIPLEXOR

CONEXIONES

Para que el dispositivo funcione de manera correcta realice la siguiente conexión:

CONEXIÓN DEL MULTIPLEXOR.
  • La señal en SIG ⇒ A0 (en mi caso por que ocupo ampliar en número de señales analógicas a leer)
  • S3 ⇒ D1 tomando la señal SCL.
  • S2 ⇒ D2 tomando la señal de SDA.
  • S1 ⇒ D3, utilizando la entrada denominada GPI0.
  • S0 ⇒ D4, utilizando la entrada denominada GPI2.
  • EN y GND a tierra.
  • Vcc en mi caso a 3v dado que el multiplexor tiene un rango de voltaje de 2v a 6v.

CÓDIGO

El código más simplificado que encontré (que funcionara) y adapte es el siguiente:

const int muxSIG = A0;
const int muxS0 = D4;
const int muxS1 = D3;
const int muxS2 = D2;
const int muxS3 = D1;
 
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);
      muxValue = analogRead(muxSIG);
 
      Serial.print(muxValue);
      Serial.print("\t");
   }
   Serial.println();
   delay(1000);
}

¡Con esto leemos los 16 puertos analógicos ampliados, uno a uno!

¡de manera muy simplificada lo sé pero es una opción!

Cabe mencionar que este dispositivo tiene la capacidad de manejar dispositivos analógicos y digitales y por lo cual se puede decir que los dispositivos conectados tendrán la capacidad de ser dispositivos de lectura o escritura; Por lo regular este dispositivo es utilizado cuando se requiere controlar muchos leds en un proyecto.

¡Espero les sea útil la información!, buen día.