Página 1 de 2
[RESOLVIDO] 2 Leds e 1 botão no mesmo pino é possível ?

Enviado:
07 Mai 2012 01:36
por Andre_Cruz
Pessoal estou precisando acionar dois leds 5mm e ler o estado de um push bottom no mesmo pino de um PIC.
Acionar os dois leds já usei, mas além de acionar os leds ler o botão não consigo ver uma solução em hardware para fazer isso funcionar.
Primeiramente gostaria de saber se é possível.
Abraço

Enviado:
07 Mai 2012 07:30
por FabioSom12
Até pode, mas só poderá ler o botão com o led apagado (ou só aceso). O segundo led nem sei como acender.
Uma saída seria o acionamento do led com um sinal de onda quadrado, faz com um periodo de uns 1ms por ex.
Vc acende o led por 500us, desliga, seta a porta como entrada e faz a leitura do botão.
No programa a condição pra entender o sinal do botão vai ser um "and" com o estado do led invertido.
Coloca um resistor para o sinal do botão não entrar em curto quando a porta estiver como saída.
O põe um diodo para o botão qdo acionado não apagar o led (ou acender).
É meio estranho tudo isso... não da pra por ppi, ci de logica (74hcxx) ou um pic maior?
Dá uma olhada no 74HC164 é um shift register, converte serial (2 ou 3 entradas) em paralelo (8 bits).

Enviado:
07 Mai 2012 13:15
por marcelo campos
caramba! isto que é economia

Enviado:
07 Mai 2012 13:59
por Andre_Cruz
FabioSom12,
Estou com essa limitação de acionar o segundo led.
Quanto a usar um 74HCxx ou um PIC maior é o que eu quero evitar.
Marcelo,
A ideia é essa mesmo economizar mas esta difícil encontrar a solução.
Valew

Enviado:
07 Mai 2012 14:23
por xultz
Cara, já liguei um led e um botão numa GPIO e ficou filé, agora dois leds o bicho pega...

Enviado:
07 Mai 2012 14:56
por Andre_Cruz
Xults,
É o bicho ta pegando kkkk !

Enviado:
07 Mai 2012 15:29
por chrdcv
Considerando um pino de I/O e o mesmo possuindo um pull-up interno:
1). Ligar LED high side: configurar pino como saída em L
2). Ligar LED low side: configurar pino como saída em H
3). Ler push button: configurar pino como entrada, habilitar pull-up e ler o pino.
Considerações:
1). O primeiro resistor limita a corrente nos LEDs, o segundo resistor serve apenas para que quando alguns dos LEDs tiver habilitado, a corrente não flua para o GND quando o push-button for premido, portanto ao calcular o valor do resistor de limitador dos LEDs, faça o outro resistor bem maior que ele, mas bem menor que o "resistor de pull-up" interno do uC.
Putz está errado!

Enviado:
07 Mai 2012 15:47
por ze
chr vai queimar os leds.
andre diz como controlou os 2 leds. quiçá (quiçá) se usares um canal ad...

Enviado:
07 Mai 2012 15:54
por Andre_Cruz

Enviado:
07 Mai 2012 15:59
por chrdcv
lellis escreveu:chr vai queimar os leds.
andre diz como controlou os 2 leds. quiçá (quiçá) se usares um canal ad...
Certíssimo, fiz a maior cagada!


Enviado:
07 Mai 2012 16:01
por Andre_Cruz
Grande lellis,
Foi assim que eu fiz para acionar os 2 leds no mesmo pino.
O tenso esta adicionar o botão nessa história !
Cara tentei usar o CAD pra ler o estado do botão mas não tenho nada de concreto para fazer a montagem e testar.
Estou aberto a sugestões.
Abraço

Enviado:
07 Mai 2012 16:01
por chrdcv
Andre_Cruz escreveu:
do pino do uC, insira um resistor de valor alto (4k7) e depois o push-button em série e no outro pino do push button, GND.

Enviado:
07 Mai 2012 16:06
por xultz
Como que faz para apagar os dois leds? Ao colocar o GPIO como entrada, os dois leds vão acender.
Eu vejo como solução para apagar os dois leds, se colocar uns diodos em série com cada um, de forma que a tensão de junção de um led mais seus diodos fique menor que 5V, porém somando as junções dos dois fique maior que 5V. Assim, com o pino em Hi Z, os leds apagam.
Se colocar um pushbutton no pino, e ele tiver um resistor em série, durante o momento de Hi Z ele pode ser lido, mas se o botão for pressionado, um led vai acender.
É uma solução manquetola, mas funciona. Espera uns 15 minutinhos que vou ali patentear e já volto.

Enviado:
07 Mai 2012 16:08
por Andre_Cruz
chrdcv,
Você diz assim?


Enviado:
07 Mai 2012 16:14
por chrdcv
Andre_Cruz escreveu:chrdcv,
Você diz assim?

Isso, mas verifique o que o xultz postou por último! Ele tem raSgão!