LusoRobótica - Robótica em Português

Sistemas específicos => PIC => Tópico iniciado por: FET_Destroyer em 17 de Julho de 2010, 01:29

Título: [Dúvida] Como ler touchscreen em PIC
Enviado por: FET_Destroyer em 17 de Julho de 2010, 01:29
Boas
Ora até hoje pensava que ler um touch screen num PIC era simples.
A minha ideia era a seguinte:
RA3 = 5v , RA1 = 0V e ler RA2, o problema surge que o PIC não deixa escolher essa configuração de portas analógicas.
É algo do genero
AN0 AN1 AN2 AN3   registo
 D      D    D      D        00
 A      D    D      D        01
 A      A    D      D        10
 A      A    A      D        11
 A      A    A      A      100

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.micro-examples.com%2Fpics%2F079-TOUCHCLOCK-touchscreen.png&hash=2ba683d947b4b9233aac174a07f7032183daf5ee)

Alguem tem alguma ideia para resolver isto?
Se calhar para quem nunca viu um touchscreen é dificil de perceber a minha dúvida mas para quem já mexeu deve ser facil de perceber.

Cumps
Título: Re: [Dúvida] Como ler touchscreen em PIC
Enviado por: msr em 17 de Julho de 2010, 01:45
Um mega-bitaite: se RA3 = 5V e RA1=0V, só precisas de ler um valor analógico! Basta apenas um canal (AN0) do ADC, o resto é tudo digital.
Mas com isto só ficarias a conhecer a coordenada ao longo de um eixo certo? (não sei bem como funcionam ou touchscreens)
Título: Re: [Dúvida] Como ler touchscreen em PIC
Enviado por: FET_Destroyer em 17 de Julho de 2010, 01:50
Exacto, eu so consigo ler um eixo, pk dps para trocar de eixo, não é possivel fazer a combinação que quero, para ler o touch, é do genero de um potenciometro, o topo do potenciometro a 5 e o bottom a 0V e le-se o wiper, ou seja, é preciso sp que um AN varie de 0 a 1 e o resto seja digital e dessas 4 combinação penso que apenas uma é possivel.
Título: Re: [Dúvida] Como ler touchscreen em PIC
Enviado por: senso em 17 de Julho de 2010, 05:27
Usar um multiplexer?
Título: Re: [Dúvida] Como ler touchscreen em PIC
Enviado por: FET_Destroyer em 17 de Julho de 2010, 11:44
Tambem pensei nisso, mas depois encontrei o driver da mikroE.
Só usa 2 pinos analogicos e 2 digitais o problema é que não vai ter tanta precisão pois só vai dar para medir um eixo uma vez e não duas, para se fazer a média.
Título: Re: [Dúvida] Como ler touchscreen em PIC
Enviado por: Ninja em 17 de Julho de 2010, 22:43
Há PICs que só deixam usar as portas analógicas numa determinada ordem, por exemplo o 18f4550, o 16f88 consegues usar a porta que quiseres independentemente das outras, dá uma olhadela.
Título: Re: [Dúvida] Como ler touchscreen em PIC
Enviado por: FET_Destroyer em 18 de Julho de 2010, 02:27
Boas Ninja
Fui ver o datasheet e realmente esse pic deixa fazer o que punha o touch a funcionar.
Infelizmente em termos de memoria e pinagem não chega para o que quero.
Estou a usar o 18F6722, alguem sabe algum com o mesmo pinout e com a característica de escolhermos os pinos que quisermos do ADC? Até agora só trabalhei com PIC18 e até ver todos os que usei possuem esta característica estupida do ADC.
Obrigado pela dica.

Cumps
Título: Re: [Dúvida] Como ler touchscreen em PIC
Enviado por: beirao em 20 de Julho de 2010, 15:13

Desculpem a ignorância, mas de touchscreen nao entendo nada...

Porque não da para usar apenas dois sinais? Ou seja, se dizes que o touchscreen funciona como um potenciometro ao longo de cada eixo porque nao se pode usar apenas um sinal para a posição do X e outra do Y ? Não percebo porque usar dois sinais para cada eixo...

Mas como nunca mexi em touchsreen também não sei..

obrigado!
Título: Re: [Dúvida] Como ler touchscreen em PIC
Enviado por: msr em 20 de Julho de 2010, 16:31
Ainda nao consegui perceber bem a "manha" da coisa se bem que a minha experiencia, como disse, nao é grande coisa. Vê lá se é isto:

Ao colocares RA3=5V e RA1=0V, lendo RA2 obtens a coordenada y certo? Para leres a coordenada x terias de colocar RA2=5V e RA0=0, lendo RA3?
Ou seja RA3 e RA2 ora são digital ora são analog, certo?

Então e se meteres os quatro canais analógicos? Assim já não há stress com o digital, substituindo o "1" por "0xFF" quando queres os 5V.