Problema leitura multiplex 4067

Prezados,
Para fins de teste, conectei um dip switch nas entradas de um módulo multiplex 4067. No arduino, construi um código para varrer todas as entradas do 4067 e exibir as respectivas saidas. Por exemplo, com todo o dipswitch desligado eu teria uma sequencia de 16 zeros.
Contudo, o código não faz as leituras corretas a não ser que eu introduza um delay de 10 ms entre a seleção da entrada do multipex e a leitura de A0. A impressão que dá é que o arduino lê A0 antes que o dado da entrada selecionada (S0 a S3) esteja disponível em A0.

Alguém experimentou algo parecido?

Agradeço qualquer ajuda.

Trecho de código faz a seleção da entrada e leitura do sinal.

int analogVal;

for(int i = 0; i < 4; i ++){
digitalWrite(controlPin[i], muxChannel[inputCH][i]);
}

////////////////////////////////////////////
//delay(10); // Essencial para funcionar.
// sem esse atraso, não há tempo para
// s0 a s3 selecionarem a entrada correta
// e transferirem o valor para saida.
////////////////////////////////////////////

analogVal = analogRead(an_in)== 1023;

return analogVal;

para facilitar a ajuda, poste um esquemático do seu projeto, e usando as tags
" < code > ", post seu codigo completo.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.