• Welcome to LusoRobótica - Robótica em Português.
 

bit para decimal

Started by Kristey, 08 de August de 2014, 13:29

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Kristey

Boas sei que existem Ci's que fazem o descodificação de bits para os visores de sete segmentos.

O que gostava de saber é se existe algum Ci para que possa ligar a um dip switch de 4 valores e que ele diga ao uC o número em decimal.
Porque assim poupança 4 portas i/o para ler os pinos do dip switch 1 a 1.
Posso usar um multiplexer mas neste caso precisava de pinos de selecção na mesma logo ia dar ao mesmo.

senso

E como é que um dip switch diz ao micro o valor em decimal com menos que 4 pinos?
O que podes fazer é usar uma entrada analógica e cada botão tem um peso diferente, assim é só ler a adc e ver por onde anda o valor.
Avr fanboy

thx1011

Podes utilizar um PISO -> Paralel IN / Serial Out como o 75HC589 ou o 74HC166...

Cada dip liga a um pino do Paralel in, e quando queres ler dás clock ao chip e lês do Serial out um a um/bit a bit o estado dos interruptores....

jm_araujo

Eu gosto da solução analógica, muito usada em produtos comerciais (comandos de fio de leitores mp3 e paineis de controlo de autorádios e TVs por exemplo).

dropes

É uma boa solução, ter uma leitura de 16 valores analógicos nem é problemático o ruído.
Agora passar de binário para decimal implicava ter 15 entradas, há quem faça o inverso, e usar um protocolo mais um IC dedicado só para se pouparem 2 entradas é descabido.

StarRider

#5
Boas,

Usas um I2C Port Expander (TCA9554PWR) ... gastas 2 IOs mas ficas com mais 16 (ou 8 ), e poder
ler/escrever e reg destes IOs por I2C, logo é decimal por natureza.

Se não tiveres portas I2C livres no teu MCU podes usar bitbang I2C, funciona 5 estrelas.

Abraços,
PA

Kristey

Penso que nao me expliquei correctamente.
Tenho um circuito que vai ter um dip_switch para poder escolher o numero do modulo.
Esse mesmo dip vai estar ligado a um 74ls47 para mostrar num visor de 7 segmentos.
Mas para o modulo "saber qual o endereço" ou ligo cada "bit" ao uC (4 pinos), e uso uma função para saber que o valor 0010 é o modulo 2, ou então poderia existir um Ci qualquer que me desse o valor em decimal do binario que la fosse ligado.
Neste caso por i2c como foi sugerido, so poupo 2 pinos, mas este ensinamento daria para projectos futuros.


senso

E uma escada de resistencias R-2R nessas saidas ligadas a um pino analógico faz exactamente o que tu queres!
Em arduinês  :-X

http://tronixstuff.com/2012/02/29/tutorial-analog-input-for-multiple-buttons-part-two/
Avr fanboy

StarRider

Boas,

Sim, um divisor de tensão em cascata, dá até para aproveitar as pull-down que já existem no circuito.

Abraços,
PA

Kristey

Quote from: senso on 08 de August de 2014, 23:02
E uma escada de resistencias R-2R nessas saidas ligadas a um pino analógico faz exactamente o que tu queres!
Em arduinês  :-X

http://tronixstuff.com/2012/02/29/tutorial-analog-input-for-multiple-buttons-part-two/
Já tinha pensado nisso senso, a minha questão prende-se com aquele "range" que existe de nivel para nivel.
Será seguro para a aplicação que é (o meu ignitor) ter um metodo destes?

jm_araujo

Estás assim tão limitado de pinos que precises de 3 extra?

Kristey

(se não me falham as contas)
Modulo de ignição:
-transmissor nRF905 são 9 pinos
-1 para cada foguete (6 pinos)
-leds (3 pinos)
-visor 7 seg/dip switch

Modulo de controlo:
(ainda estou pior de pinos porque quero meter um LCD Graphic )
-12 toggles
-7 push buttons
-transmissor nRF905 são 9 pinos
-leds (4 ou 5 pinos)

senso

Porque é que não usas 595's para os leds e para os relés(juntamente com um ULN2806), são 25 centimos cada um em soic.
Avr fanboy

LuísR.A.

Quote from: senso on 10 de August de 2014, 22:13
Porque é que não usas 595's para os leds e para os relés(juntamente com um ULN2806), são 25 centimos cada um em soic.

Ai esta uma ideia, 3pins por cada 595 se nao me engano e muitos outputs à disposição
Tiva MCU é que é.

Tutoriais Tiva+codigos exemplo:
https://sites.google.com/site/luiselectronicprojects/

Kristey

#14
Descartei estas hipoteses porque a primeira vez que tentei algo do genero foi por i2c, e o circuito integrado nesse caso tinha uma caracteristica que era "inicio a 1".
E entao deixei de pensar nisso.

Vou ver esses.

Ja agora os ULN2806 que sugeres são diodos supressores ou os transistores para activação dos reles?
É que nas datasheets que eu ando a ver ha "arrays das duas coisas" com essa referencia.