Página 1 de 1

Maximização de pino como fazer ???

MensagemEnviado: 15 Out 2009 10:45
por Andre_Cruz
Estou utilizando um 12F675 e programando no Hitech.
Uso o pino GPIO0, GPIO1 e GPIO2 para acionar três transistores BC337, gostaria de usar o mesmo pino como entrada para ler o estado de um botão, o software eu sei o que eu devo fazer que é, alternar a configuração do pino hora como saída hora como entrada, mas o hardware não sei como fazer isso.

Por isso peço a ajuda de todos, qualquer ajuda será bem vinda.

Muito obrigado.

MensagemEnviado: 15 Out 2009 11:17
por xultz
O problema de fazer isso é que quando o sinal que você quer ler estiver em nível alto, vai acionar teu transístor. Se isso não for um problema, é simples, mas se for, vai precisar de um IO expander ou um micro maior.
De qualquer maneira, quando quiser maximizar alguma coisa é só clicar no botão com símbolo de um quadrado, do lado daquele com um X, no canto superior direito da janela.

MensagemEnviado: 15 Out 2009 11:24
por Andre_Cruz
xultz,

Acionar o transistor quando o botão estiver pressionado não é problema na minha aplicação.

Tem como dizer como fazer essa maximização de pino ?

Muito obrigado por responder
Abraço

MensagemEnviado: 15 Out 2009 12:39
por _blackmore_
André,

No livro "Conectando o PIC" da editora érica tem exemplo de como fazer o que tu precisa, mas a programação é em assembly e uma teoria para desenvolver o hardware (apesar de não ser algo complexo), o exemplo é para acender um LED e acionar um botão no mesmo pino.

MensagemEnviado: 15 Out 2009 12:53
por vtrx
André,isso é fácil,mas depende de como está o seu hardware,poste o esquema dos Transistores para poder ver como está polarizando eles.

MensagemEnviado: 15 Out 2009 17:31
por verd
você quer expandir suas saidas? utilize um 4094!

MensagemEnviado: 15 Out 2009 18:32
por Andre_Cruz

MensagemEnviado: 15 Out 2009 19:23
por vtrx
André,não repare na imagem pois usei a sua mesmo.
O código,se precisar,é em assembler,não sei se em C os tempos vão ficar perfeitos.
http://www.mandeibem.com.br/?cod=1510200919195993340

MensagemEnviado: 15 Out 2009 20:17
por Andre_Cruz
vtrx,

Não tinha visualizado essa possibilidade de configurar o botão dessa maneira, vou testar qualquer coisa eu uso um PIC com mais I/O.

Agradeço a todos.

Abraço

MensagemEnviado: 15 Out 2009 20:54
por vtrx
André,dependendo do seu HardWare e Linguagem de programação,voce não precisa de expandir portas ou muito menos um pic 'maior',é só esquantar um pouco a cabeça,no final das contas o resultado será excelente.

MensagemEnviado: 15 Out 2009 21:59
por Sergio38br
Vc pode configurar um pino como A/D e vendo a tensão sobre o pino saber qual chave esta pressionada.

[ ]`s
Sergio

MensagemEnviado: 15 Out 2009 22:07
por Andre_Cruz
Sergio38br

Eu aciono 3 leds, GPIO0, GPIO1 e GPIO2.
No pino GPIO3 entra meu sinal.
GPIO4 e GPIO5 esta o cristal de 20 MHz.

Minha idéia era colocar 2 push botom junto com o led, que é rapido, ja efetuar a leitura do A/D é mais lento.

Mas a idéia de usar uma rede R2R com botões e apenas 1 pino é muito boa.

Muito obrigado pela ajuda.

MensagemEnviado: 15 Out 2009 23:35
por _blackmore_
pensou em utilizar o oscilador interno do pic?

MensagemEnviado: 16 Out 2009 09:53
por Andre_Cruz
_blackmore_

Já pensei mas eu necessito do oscilador externo de 20 MHz, porque o software faz bastante conta e com o oscilador interno de 4 MHz não da conta do recado.

VAlew

MensagemEnviado: 16 Out 2009 10:32
por fabim
Andre, veja bem. Não sei se você conhece a téncnica mais não custa explicar.
Existe uma técnica de der 2 botões em um mesmo pino.

a técnica é simples, vou dar os passos e você da seus pulos com o restante.

Uma porta como entrada pode ler 3 niveis "lógicos".
Sendo 0
Sendo 1
Sendo H/Z.

mais eim ? HZ, não é hertz é do ingreizi High Z, ou alta impedância.

pino do pic.(resistor tipo 10K) (capacitor de 10nF para terra)

Neste arranjo aí, tu vai ter duas chaves.

uma do cap para VDD, e outra em paralelo com o cap.

Como funca ?

continua numa proxima duvida.
Lembre-se o R+C se você setar a porta como saida, colocar este pino como 1 o R+C mai armazenar 5V, e ja colocar o pino como entrada, você vai ler este pino como 1 lógico, mais se o botão a 0 estiver precionado..? ou se o botão a 1 estiver precionado ??

eim eim ?