Página 1 de 1

Como diminuir quantidade de portas

MensagemEnviado: 02 Jul 2008 11:39
por joao
Ola pessoal,

Sei que isso eh microcontrolador, mas como é genérico eu preferi colocar aqui.
O problema é o seguinte:
Quero fazer um sistema que use os seguintes componentes:
16 leds
1 Display de LCD 16x2
1 buzzer
4 botoes
1 cristal

Eu gostaria de saber se voces concordam comigo com a quantidade de portas que irei usar no pic/atmel/hc da vida:
16 leds - 16 portas
LCD - 4 pinos se for serial, certo?
buzzer - 1 porta
botao - 4 portas, por ser 4 botoes
cristal - mais uma porta

No total seriam 15 portas de I/O usada.

Agora se eu usar um multiplexador, teria com 5 portas: 2^5 que é 32 dispositivos.

Mas vocês nesse meu caso prefeririam comprar um processador que suporta-se todas essas portas ou usariam um multiplexador?

OBS: A coisa mais pesada que ele irá fazer é mostrar as horas, então não é nada que irá usar muito da CPU.

Obrigado pela Ajuda,
Joao

MensagemEnviado: 02 Jul 2008 13:17
por guest2003
Da pra pensar um pouco mais...

Mas olhando de maneira geral da pra você fazer isso com 9 pinos de I/O do processador...

Fora o cristal... e utilizando 6 pinos de I/O para o LCD (que seria o minimo para estes modulos comuns, D0-3, E, WR)

Fica 4 I/O compartilhada para LED, LCD, Botoes

Fica 4 I/O para os LEDs (4x4=16) , Buzzer e WR-LCD

Fica 1 I/O para Enable do LCD...

Não precisa de hardware externo não, somente o microprocessador fazendo varredura... um PIC de 14 pinos da vida... (uns U$1,00 @ 100pc)

Eh isso...

[]'s

MensagemEnviado: 02 Jul 2008 13:21
por helton
16 leds -> 2x 4094 resolve ( 4 pinos )
1 Display de LCD 16x2 ( 4 pinos )
1 buzzer ( 1 pino )
4 botoes ( 4 pinos )
1 cristal ( 2 pinos )

para mostrar Data e Hora: ATmega8 , dá e sobra...ou um 2313...

MensagemEnviado: 02 Jul 2008 14:43
por guest2003
Helton,

Não entendi qual a vantagem de utilizar hardware externo (2x4094) se com 9 pinos de I/O do processador da pra fazer tudo !?!?!?

Um PIC16F630 pequenininho de 14 pinos (por volta de U$1,00 @ 100) da conta do recado tranquilo...

[]'s

MensagemEnviado: 02 Jul 2008 16:18
por joao
ola pessoal!

Valeu pela ajuda!!!

Mas estou com dúividas:
Como faria a varredura que você fala?
Fica 4 I/O compartilhada para LED, LCD, Botoes

Aqui seria Apenas para selecionar qual seria o objeto que estaria usando?
Fica 4 I/O para os LEDs (4x4=16) , Buzzer e WR-LCD

Aqui como funcionaria os LEDS? Pois preciso deixar um led acesso por um tempo(1 minuto) e o Buzzer também. Essa parte é a que menos entendi. Pode explicar um pouco melhor?
Fica 1 I/O para Enable do LCD...

Pelo o que eu entendi, é só usado esse bit porque é necessário para o LCD.Certo?

Valeu pela explicação!

[]'s Joao

MensagemEnviado: 03 Jul 2008 06:22
por joao
Ola Guest!

Eu achei como fazer para controlar 12 leds com com apenas 4 IO ou 20 leds com 5 IO neste site:
http://www.josepino.com/pic_projects/in ... l_leds.jpc

Essa era a idéia que vc tava querendo passar?

Mas ainda nao entendi como iria fazer apenas usando o pic para controlar apenas com 4 pinos o buzzer, os leds, e ainda mandar dados para o LCD...

Até entendo que dá para se considerar o buzzer e o WR do LCD como se fossem iguals ao LED, logo teríamos mais 5 "LEDS" o que me daria 21 saidas. Que no exemplo que eu achei seria necessário 6 portas de IO.
Ou ainda teria como fazer com que os botoes tambem entrassem nessa idéia de compartilhar? Dai nesse caso teriamos 25 componentes e mais 1 componente que seria o ENABLE do LCD. totalizando 26 componentes. Dai no caso do exemplo, daria para ser feito com 6 IOs e ainda sobrariam mais 2 IOs para o cristal.
Com isso, qualquer PIC que tivesse 8 IOs já resolveria o meu problema...

Eu prirei demais ou estou no caminho certo?!?!?!?!:)

Valeu pela ajuda!

[]'s Joao


Obrigado,
Joao

MensagemEnviado: 03 Jul 2008 08:48
por andre_luis
Hoje em dia, o custo por pinos ficou muito barato.~
É possível comprar microcontroladores core 51 de 40 pinos na faixa de 3 reais ( 1,5 dollar ). Se for colocar componente externo para expandir, só compensa quando mesmo um microcontrolador de 64 pinos não resolva.

+++

MensagemEnviado: 03 Jul 2008 08:58
por guest2003
Desculpe a qualidade da imagem... mas so tinha cam de celular na hora :)

Imagem

Nao precisa usar esse tipo de multiplexação que voce viu na net...

Em L1 a L4 juntamente com D0 a D3 você controla os LEDs

L1 voce controla o Buzzer, veja que para acender o LED L1 tem que ir para VCC e depois quando nao deve acender voce coloca em Hiz... se quiser o buzzer coloca em 0

Leia as chaves em D0 a D3, faça a porta como entrada e habilite os Pull-up internos...

Escreva no LCD usando D0 a D3 mais L2 e E (vale lembrar que D0 a D3 + L2 pode acender o LED, portanto apenas escreva do dado no LCD e saia desta condição, assim não sera visivel a piscada de alguns us no LED)

Utilizando o PIC que sugeri, ainda vai ficar sobrando um pino de I/O, se quiser deixar a vida mais facil, pode usar este pino no RS do LCD (ao invez de L2) ou mesmo ligar o buzzer direto.

é mais ou menos isso...

[]'s

MensagemEnviado: 03 Jul 2008 09:11
por joao
Cara...
Muito boa essa sua explicação!!!!
Entendi tudo da maneira que precisava entender!!!

Valeu mesmo!

[]'s