Página 1 de 1
Ajuda sobre um projeto simples de verificar continuidade

Enviado:
28 Set 2007 18:20
por kyonak
PEssoal é o seguinte
to precisando desenvolver um programa em PIC que é simples porem to quebrando a cabeça pra fazer ele pq to a muito tempo sem praticar
O sistema consiste em testar a continuidade de 2 fios paralelos e identificar erros caso exista
ele tem que funcionar marromeno assim
sao 2 soquetes em que de 1 lado coloco 2 pontas do fio e do outro lado as outras 2 pontas
nisso o sistema tem que verificar e me dizer se está tudo OK, se está em curto, invertido ou se um deles está aberto.
Alguem possui alguma idéia de como eu faço para fazer essa verificação??
como faço para o PIC identificar que as vias foram invertidas ou estão em curto
a idéia ja ta valendo, o código eu me viro
Obrigado

Enviado:
29 Set 2007 02:44
por phophollety
Pode fazer de diversar maneiras...
Ligar um fio por vez, enviar o sinal por uma IO e ler pelo outro, ver se o que manda chega,
Ligar os dois fios ao mesmo tempo, usando tensão diferencial por exemplo +10V em um fio e -10V em outro e medir isto, claro, neste caso terá que ter uma eletrônica analógica te auxiliando.
Também pode ficar invertendo os fios, por exemplo, manda 0 e 1 e verifica se chegou 0 e 1 depois manda 1 e 0 e verifica se chegou 1 e 0 eu creio que o último caso é mais simples, só tomaria o cuidade de usar 4 portas sim, suas para saida dua para entrada, na saida ligue um R de 470R por ai e depois na entrada outro R, se for fazer em Assembler pode fazer assim:
Supondo que vai usar os IOs RA0 e RA1 com tx e RB0 e RB1 com RX
movlw b'00000001'
movwf porta ; envia o teste
movf portb,w ; le o resultado do portb, carrega no work
xorlw b'00000001' ; faz o xor
btfss status,z
; se forem iguais o resultado será 0, então o status, z será 1
goto teste2 ;está certo, vai para o teste 2
goto erro ; incorreto, trata o erro
pode repetir isto várias vezes, manda por uma porta, lê por outra, tanto "cabo quebrado" com "curto no cabo" podem te dar a mesma ou diferentes indicações.
E ai, deu uma luz?

Enviado:
29 Set 2007 09:20
por marcospaf
cara beleza?? é super simples ma verdade você quer fazer uma giga de testes para os cabos .
bom as pontas de entrada você liga no pic , ou seja , por exemplo como são 2 fios ligue no portb,0 e portb,1
A saida ou seja a continuação do fio liga cada um em leds em serie com um resistor de 1k . se alimentar a 5volts fica tranquilo para ver.
ja o programa você deve fazer ele "pulsado" , ou seja : você da um pulso no primeiro cabo depois de 1 segundo da um pulo de 5volts no segundo cabo e assim por diante se possuir mais cabos.
Com isso você vai verificar , continuidade e ligação do cabo !!! valeu??
um abração

Enviado:
29 Set 2007 15:48
por Doglao
Se voce for usar por exemplo o portB para fazer isso, voce vai testar 4 fios , voce primeiro coloca pullups no portB e depois faz uma varredura, coloca 0 no b,0 e le os outros pinos, depois voce coloca 0 no b,1 e o b,0 voce coloca 1 denovo e le o restante depois voce coloca 0 no b,2 e os outros pinos em 1, e le os outros pinos denovo, voce vai ler os valore e mostrar os pinos que se modificaram, em um display ou outro metodo. assim voce pode identificar os pinos que fazem curto entre si, dai eh so voce atravez do programa identificar os pinos e dizer se estao de acordo. Por conencidencia estou fazendo um equipamento que testa continuidades em cabeamentos, e vai ter 1024 pontos para provar mas agora to usando soh 64, da uma olhada no video que fiz do cara.
http://www.youtube.com/watch?v=mFM_-Zk7Vv8
esta em fase de construcao, mas a varredura identifica perfeito os pinos que estao em curto e ja esta quase terminada a parte que compara os pinos com a sequencia que quero que prove, e vai mostrar se tem inversao, nao continuidade, se tem mais contatos (curto), e pontos que nao estao programados vao ser identificados tambem para seguranca tipo se conectaram errado na carta de pinos e estes pinos nao estao na secuencia de programacao.

Enviado:
29 Set 2007 20:06
por kyonak
Pessoal, obrigado pelas dicas
phophollety
eu até pensei em várias coisas que você falou, mas como disse eu tenho que ligar um par de cabos que na verdade é um cabo de celular que será testado, o teste tem que ser bem rápido e verificar tudo em tempo real sem a necessidade de apertar nenhum botao já que a produção são de 500 cabos por hora
estava pensando em usar a saida e entrada analogica do 16F628A
eu nunca fiz isso
mas pensei em um eu enviar 3v e o outro 2v
se ele receber ao contrário no final é pq ta invertido
se receber ok os 2 no final é pq está OK
se nao receber o 3v ou 2v é pq o sistema está aberto
agora o curso eu ainda nao sei como verificar, nisso tenho que ver os testes de como vou me sair caso eu curto circuite 3x e 2v
só pra ter idéia a giga de teste tem que ter 4 LEDS
Aprovado
Aberto
Curto
Invertido
além disso tem que ter um sinal sonoro que vai ser um sinal estridente caso o cabo esteja ruim e baixo caso o cabo esteja aprovado (mas isso é moleza de fazer).

Enviado:
29 Set 2007 20:55
por fabim
phophollety escreveu:Também pode ficar invertendo os fios, por exemplo, manda 0 e 1 e verifica se chegou 0 e 1 depois manda 1 e 0 e verifica se chegou 1 e 0
eu mesmo não teria pensado melhor..
amiguinho. Essa dica do fofolete, é a solução para seus problemas.... Use um pouquinho de imaginação como o fofolete usou e vai ter a solução prontinha.
Abraços
Fabim

Enviado:
29 Set 2007 21:32
por Doglao
se for mesmo testar somente dois fios, nem precisa microcontrolador somente faz o contato de uma estremidade em positivo e o outro em negativo usando 5volts por exemplo e na outra estremidade voce usa dois leds um verde e outro vermelho, o anodo do led verde voce junta com o catodo do led vermelho e o catodo do led verde voce junta com o anodo do led vermelho, entao o positivo vai ao anodo do led verde com uma resistencia de 470ohms e o negativo vai ao catodo quando voce ligar a mesinha de teste, voce coloca o cabinho e quando acender o led verde e que ta ok, se nao acende nada, entao esta sem continuidade se acende o led vermelho e que esta invertido.

Enviado:
29 Set 2007 21:41
por fabim
boa.. igualim aquelas pontas de teste para usb frontal de PC.
Se voce não ter necessidade de apontar curto....
- Código: Selecionar todos
----|<---------
-------/\/\/\/\--------
----->|---------
isso aí que o doglão disse..
mais so serve para inspeção visual..
abraços
fabim

Enviado:
29 Set 2007 21:57
por Doglao
ja ia me esquecendo para o curto voce coloca um led amarelo com uma resistencia de 470ohms do lado que entra os 5 volts nos contatos energizados dai ele sempre vai estar aceso, se voce coloca um cabo em curto este led amarelo vai se apagar nao se esqueca de colocar uma resistencia limitadora de corrente na saida da fonte para o teste de curto nao forcar a fonte ou fazer um estrago.
Barato, simples e Just in Time o teste.

Enviado:
29 Set 2007 22:00
por Doglao
se for melhorando voce usa optos no lugar dos leds e voce pode acionar um rele que aciona una sirene, ou lampada ou electrovalvula para cada caso do problema

Enviado:
01 Out 2007 13:26
por Doglao
Ola! disponibilizei um esqueminha usando puramente leds e resistencias para testar cabos de duas vias, ele testa se esta em curto, inversao e nao continuidade mostrando qual dos dois fio esta sem continuidade e finalmente teste ok!
Como sugeri en posts anteriores pode usar optos e as saidas ligadas a uma electrovalvula ou solenoide que abre uma porta para ir colocando os cabos bons e ruins em caixas separadas para cada caso, e colocar uma painel com indicacoes tipo "INVERSAO", "CURTO", "OK" , e tambem a um microcontrolador mostrando as mensagems em um display, e com saida a uma impressora que gera um codigo de barras contendo a data hora, a mesa de teste , o turno e um numero serial em uma etiqueta autocolante e colocar-la no chicotinho, e programar para fechamento de embalagem, por exemplo a cada 500 chicotinhos emitir a ultima etiqueta do chicote e uma de caixa para embalagem com outras infomacoes mais.
http://rapidshare.com/files/59543561/teste2vias.bmp
ai esta o link com a foto do esqueminha.
abcs

Enviado:
02 Out 2007 11:47
por kyonak
Doglao, muito obrigado
vim aqui postar que consegui fazer hoje mesmo e está funcionando perfeitamente
Eu fiz foi diferente no sentido que eu mando o Microcontrolador ficar vendo se recebe sinal positivo na porta B6 e B7
nisso eu faço contagem de pulsos e verificro se o B6 recebeu 3 vezes o pulso e se o B7 2 vezes
se o B6 = 3 pulsos e o B7 = 2 pulsos ta tudo OK
se o B6 = 2 pulsos e o B7 = 3 pulsos ta invertido
se o B6 = 3 pulsos e o B7 = 0 ou B6 = 0 e B7 = 3 e outras variações com algumas das portas com 0 pulsos ele está aberto
se o B7 ou B6 = 5 pulsos é porque ta em curto
nisso eu ainda coloquei um apito, aqueles apitozinhos de aviso de saida de carro para que se estiver OK ele apite igual a um grilo e se estiver ruim ele de um apito contínuo de 200ms
assim eu consigo detectar todos os tipos de erro
ps: os leds só acendem caso exista algum cabo conectado
como a possibilidade do cabo estar com as 2 vias desconectadas é praticamente 0 eu deixo ele ativar quando o B6 ou B7 recebem algum pulso
tive que colocar 2 diodos também nas portas que enviam os pulsos porque quando eu curto circuitava o PIC travava.
de qualquer forma agradeço a todos e quem precisar do código...
#include <16F628a.h>
#use delay(clock=20000000)
#fuses INTRC_IO, NOPROTECT, PUT, NOMCLR,NOWDT,BROWNOUT,NOLVP
void main()
{
int i, PINOB6, PINOB5, apitar;
// B1 = B6
// B2 = B5
while(true)
{
output_high(PIN_B1);// Pino B1 de envio de sinal Ligado
output_high(PIN_B2);// Pino B2 de envio de sinal Ligado
output_low(PIN_A0);// Pino de LED Desligado
output_low(PIN_A1);// Pino de LED Desligado
output_low(PIN_A6);// Pino de LED Desligado
output_low(PIN_A7);// Pino de LED Desligado
apitar = 0;
while ((input(PIN_B6)==1) || (input(PIN_B5)==1))
{
delay_ms(100);
PINOB6 = 0;
PINOB5 = 0;
output_high(PIN_B1);
output_low(PIN_B2);
for (i=1; i<=3; i++)
{
if (input(PIN_B6)==1)
{
PINOB6 = PINOB6 + 1;
}
if (input(PIN_B5)==1)
{
PINOB5 = PINOB5 + 1;
}
}
output_low(PIN_B1);
output_high(PIN_B2);
for (i=1; i<=2; i++)
{
if (input(PIN_B6)==1)
{
PINOB6 = PINOB6 + 1;
}
if (input(PIN_B5)==1)
{
PINOB5 = PINOB5 + 1;
}
}
if ((PINOB6==3) && (PINOB5==2)) // Verifica OK
{
output_high(PIN_A6);
output_low(PIN_A0);// Pino de LED Desligado
output_low(PIN_A1);// Pino de LED Desligado
output_low(PIN_A7);// Pino de LED Desligado
output_high(PIN_B4);
delay_ms(2);
output_low(PIN_B4);
delay_ms(5);
output_high(PIN_B4);
delay_ms(2);
output_low(PIN_B4);
delay_ms(5);
output_high(PIN_B4);
delay_ms(2);
output_low(PIN_B4);
delay_ms(5);
apitar = 0;
}else
if ((PINOB5==3) && (PINOB6==2)) //Verifica Invertido
{
output_high(PIN_A7);
output_low(PIN_A0);// Pino de LED Desligado
output_low(PIN_A1);// Pino de LED Desligado
output_low(PIN_A6);// Pino de LED Desligado
if (apitar==0)
{
output_high(PIN_B4);
delay_ms(200);
output_low(PIN_B4);
apitar = 1;
}
}else
if (((PINOB5==3) && (PINOB6==0)) || ((PINOB5==2) && (PINOB6==0)) ||
((PINOB5==0) && (PINOB6==2)) || ((PINOB5==0) && (PINOB6==3)) ) //Verifica Aberto
{
output_high(PIN_A1);
output_low(PIN_A0);// Pino de LED Desligado
output_low(PIN_A6);// Pino de LED Desligado
output_low(PIN_A7);// Pino de LED Desligado
if (apitar==0)
{
output_high(PIN_B4);
delay_ms(200);
output_low(PIN_B4);
apitar = 1;
}
}else if ((PINOB6==5) || (PINOB5==5)) //Verifica Curto
{
output_high(PIN_A0);
output_low(PIN_A1);// Pino de LED Desligado
output_low(PIN_A6);// Pino de LED Desligado
output_low(PIN_A7);// Pino de LED Desligado
if (apitar==0)
{
output_high(PIN_B4);
delay_ms(200);
output_low(PIN_B4);
apitar = 1;
}
}
output_high(PIN_B1);// Pino B1 de envio de sinal Ligado
output_high(PIN_B2);// Pino B2 de envio de sinal Ligado
}
}
}
eu fiz em C porque é bem mais fácil e nao tenho motivos para fazer em assembler
não cheguei a criar funções, preguiça mesmo.