+ Multiplexores - Tarda mucho en estabilizar V.

Por fin he comprendido el tema de los multiplexores y ahora me acabo de dar con otra puerta.

He montado el siguiente circuito, de modo que las entradas A y B las activo desde el pin 2 y 3 digital.

Lo que sucede es, que cuando le digo que cambie A = 0 y B = 0 (potenciometro 1) a A = 0 y B = 1 (potenciometro 2) tarda al menos medio segundo en ajustarse la tension.

Yo habia pensado en un codigo mas o menos así:

int bitA = 2;
int bitB = 3;

int datosPin0 = 0;
int lastDatos0 = 0;
int variacion0 = 0;

int datosPin1 = 0;
int lastDatos1 = 0;
int variacion1 = 0;

void setup()
{
Serial.begin(115200);
pinMode(bitA,OUTPUT);
pinMode(bitB,OUTPUT);
}

void loop()
{
digitalWrite(bitA,LOW);
digitalWrite(bitB,LOW);
int reading0 = 0;
reading0 = analogRead(datosPin0);
if (abs(reading0-lastDatos0) > variacion0)
{
lastDatos0 = reading0;
Serial.print("Movido el potenciometro 0");
}

digitalWrite(bitA,LOW);
digitalWrite(bitB,HIGH);
int reading1 = 0;
reading1 = analogRead(datosPin1);
if (abs(reading1-lastDatos1) > variacion1);
{
lastDatos1 = reading1;
Serial.print("Movido el potenciometro 1");
}
}

Con esto pretendo comprobar que si se ha movido el potenciometro0 o el potenciometro1, pero la Monitor Serial me dice constantemente que se estan moviendo, cuando solo deberia decirmelo cuando el valor de alguno de los potenciometros hubiera variado.

No se que estoy haciendo mal.

Habia olvidado poner el circuito.

Hola,

dos cosas:

  1. esto que dices de que la señal tarda en estabilizarse es francamente raro, yo he conectado hasta 64x6 entradas analogicas con una serie de multiplexores encadenados y no he tenido este problema. Podrias postear la hoja de caracteristicas de tu chip? Yo uso el 4051

  2. el valor de un potenciometro no es muy estable, por lo que yo no haria la comprobacion como la haces tu, sino dando un margen de por ejemplo +-5. Los valores oscilan constantemente, esto lo puedes probar leyendo un solo potenciometro

/d

Gracias por tu respuesta David. Por el momento estoy utilizando el 4051 tambien. Lo que voy a hacer es ir poco a poco, voy a conectar un primer potenciometro solo y voy a comprobar que realmente la velocidad es la que necesito y, una vez comprobado agregare el otro. Ya comentaré los resultados.

Bien, he cambiado el codigo mucho y he puesto el valor de margen en 6, con lo que funciona bastante bien.

Es una pena que tenga que ser así, porque yo lo que estoy haciendo es una controladora midi y si vario el volumen de la nota de 6 en 6 es demasiada diferencia, se me queda en 21 las posibles opciones de volumen y la verdad es mucho diferencia.

No se, si hubiera potenciometros de mas calidad que eviten que la tension varie tanto quizas los compraria, porque esto limita mucho.

Gracias por tu respuesta.

Si quieres tener mucha precision, te recomiendo que uses encoders en lugar de potenciometros. El programa a hacer es mucho mas complejo porque hay que gestionar interrupciones, pero te dara componentes de giro infinito, etc.

/d