Usando multiplexor con un Arduino

4

Estoy intentando que un multiplexor funcione con el Arduino. Descripción en sparkfun Hoja de datos

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 se mapea casi 1 a 1 con el arduino.

Estoy usando este código simple para cambiar 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 el pin analógico en S en el multiplexor. Mi problema es que no está cambiando! ¿Cómo soluciono esto para que se comporte como es debido y dé un cero (o cierre) cada vez que hago select_wire(1) y leo el pin analógico?

Además, no estoy usando el "lenguaje" de Wiring, pero estoy usando la biblioteca de Wiring. También he establecido todos los pinMode s apropiados en el init

    
pregunta Earlz

1 respuesta

3

Como rzrgenesys187 dijo:

  

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

Sí, así que en realidad estaba cambiando todo el tiempo ... sin embargo, hay mucha más distorsión, por lo que el cable conectado a tierra flotó en algún lugar en los 10s. Y el AREF no es alto, así que no entiendo cómo funciona eso. El AREF para mí dio aproximadamente los mismos valores que el suelo al usar

analogReference(DEFAULT);

no estoy seguro de por qué, pero AREF me está dando valores cercanos al terreno ... muy extraño, pero el MUX hace un cambio de hecho, por lo que esta pregunta es respondida ... y en realidad nunca tuve ningún problema ... meh.

EDITAR:

En realidad, conectar directamente a AREF hace que la entrada sea alta a 1023, así que no tengo idea de por qué la entrada no va a ser tan alta con el MUX. Tal vez un poco de límite de voltaje, idk. Tengo que leer sobre esto ..

EDIT2:

Ok, finalmente creo que lo estoy resolviendo. Aparentemente, las placas de prueba pierden mucha corriente, de modo que si estuviera conectado a C0 y estuviera leyendo C1, entonces un lote de voltaje se filtraría a C1. Sin embargo, de todos modos, la conexión de AREF a C3 hace que ambas entradas sean altas, por lo que ahora estoy más confundido.

    
respondido por el Earlz

Lea otras preguntas en las etiquetas