Olá bom dia pessoal, 
tudo beleza?
Aqui meio bagunçado os sinais, rsss. 
Então venho aq pedir uma ajuda da galera ai para tentar identificar o fantasma no meu circuito, no protoboard foi certinho, depois que montei a placa que deu a seguinte mudança. 
Tenho 2 multiplexadores CD4051 ligados e com o comum para um PIC o qual eu faço as leituras do comum para saber se no channel comutado do CD4051 está HIGH ou LOW. 
Porém, o mais estranho acontece, qdo faço as leituras das portas ele chega a mostrar HIGH para o channel comutado, só que em determinados momentos ele mostra LOW e em alguns casos o seguinte channel mostra HIGH sem estar ligado fisicamente. 
Segue o circuito:
Código da leitura:
//Leitura dos sensores para saber qual acabou dentro da garrafa
for(int o=0;o<=MAX;o++){
val=o;
if(o>7){val=o-8;}
//Seta portas da tabela de verificacao
output_d(PORTASMUX[val]);
if(o<=7){
output_high(SELECT_MUX); //Garrafas 2
delay_ms(300);
input(STITEM_0_7);
int status = 0;
for(int k=0;k<10;k++){
status = input(STITEM_0_7);
}
printf("[|%d|%d,%d]\r\n",_STATUS_SENSORES,o,status);
/*if( status!=((int)status_garrafas[i])){
status_garrafas[i] = status;
}*/
}else{
output_low(SELECT_MUX); //Garrafas 1
delay_ms(300);
input(STITEM_8_15);
int status = 0; //input(STITEM_8_15);
for(int k=0;k<10;k++){
status = input(STITEM_8_15);
*********************************************************************
Se alguém puder dar um help fico grato. 
Estou brigando a dias com isso e não consigo sair do zero, já fiz várias mudanças do codigo e nada, to achando q é ruido ou algo assim, porém o CD4051 recebe sinal HIGH qdo os reedswitch ficam ON. 
O estranho é que qdo leio a porta 0 do CD4051, depois de algumas leituras a porta 1 do CD4051 me mostra sinal 1 mesmo o reedswitch não estando ativado. 
Valeu pessoal.

Exibições: 442

As respostas para este tópico estão encerradas.

Respostas a este tópico

Alguem sabe de alguma configuração diferente nos pins para ler a porta D, estava lendo o datasheet e tem algo relacionado com a portaE para que seja feito a leitura na portaD como input. 

Texto datasheet.

"

PORTD operates as an 8-bit wide Parallel Slave Port, or microprocessor port, when control bit PSPMODE (TRISE<4>) is set. In Slave mode, it is asynchronously readable and writable by the external world through RD control input pin, RE0/RD/AN5, and WR control input pin, RE1/WR/AN6.

"

Oi Sr. E, bom dia.

Em primeiro lugar faltou você dizer qual PIC está usando para este projeto:

PIC 16F628A, PIC16F1845, PIC 16F877A, PIC12F675, etc.

Em segundo, se o código funcionou qdo o HW estava montado no protoboard, 

mantenha o código e tente descobrir o erro na placa.

Rui

Oi Rui. 

Desculpe, é, o PIC é o 16F877A, as portas de ativaçao do mux são: D0, D1 e D2, sinal INH: D3 e Comuns: D4 e D5.

Vou seguir o conselho. rssss

Obrigado.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço