4 votos

Uso del multiplexor con un Arduino

Estoy tratando de conseguir un multiplexor para trabajar con el Arduino. Descripción en sparkfun Ficha técnica

Pensé que el cableado era bastante simple y como prueba básica, tengo AREF conectado a C1(multiplexor) y un cable flotante conectado a C0. Todo en el lado de interconexión mapea casi 1 a 1 con el arduino.

Estoy utilizando este sencillo código para conmutar el multiplexor

void select_wire(char which){
    digitalWrite(S0,which&0x01);
    digitalWrite(S1,which&0x02);
    digitalWrite(S2,which&0x04);
    digitalWrite(S3,which&0x08);
    digitalWrite(EN,0);
    delay(1); //required?
}

y luego acabo de leer del pin analógico en S en el multiplexor. Mi problema es que no conmuta. ¿Cómo puedo arreglar esto para que se comporte como se pretende y dar un cero (o cerca) cada vez que hago select_wire(1) y leer el pin analógico?

Además, no estoy usando el "lenguaje" de Wiring sino que estoy usando la librería Wiring. También he configurado todos los pinMode s en el init

3voto

Brad Leach Puntos 9012

Como dijo rzrgenesys187:

Si el pin C0 flota en ALTO y C1 está conectado a AREF que también está en HIGH, entonces no debería haber ningún cambio. ¿Intentaste conectar C1 a tierra para obtener cero cuando ejecutas select_wire(1)?

Sí, por lo que en realidad fue la conmutación de todo el tiempo .. sin embargo, hay mucho más distorsión, por lo que el cable conectado a tierra flotó en algún lugar en los 10s. Y AREF no es alta, así que no entiendo cómo funciona. AREF para mí dio casi los mismos valores que la tierra cuando se utiliza

analogReference(DEFAULT);

No sé por qué, pero AREF me da valores cercanos a tierra... muy extraño, pero el MUX sí cambia, así que esta pregunta está respondida... y en realidad nunca tuve ningún problema... meh.

EDITAR:

En realidad, enganchando directamente en AREF hace que la entrada vaya alta a 1023, así que no tengo idea de por qué la entrada no va tan alto con el MUX. tal vez algún tipo de límite de tensión, idk. Tengo que leer sobre él ..

EDIT2:

Ok, finalmente creo que lo estoy entendiendo. Al parecer las placas de pan pierden mucha corriente, por lo que si estaba conectado a C0 y leía C1, entonces un lote de tensión se filtraría a C1. De todos modos, la conexión de AREF a C3 hace que ambas entradas sean altas, así que ahora estoy aún más confundido.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X