LusoRobótica - Robótica em Português
Sobre o LusoRobótica - antigo => Sugestões e Questões => Tópico iniciado por: andnobre em 11 de Junho de 2015, 13:00
-
Boa tarde
tenho aqui uma duvida em relação aos mux ou demux
eu tenho um conjunto de leds que quero ativer vamos imaginar 26 e uso um arduino nano e queria ativa-los.
exemplo:
DDRD = B11111111; //set PORTD (digital 7~0) to outputs
PORTD = B00000000; // off so para exemplo
queria saber como eu faço para activar a saída 17 se o máximo é 7 ou estou a fazer uma grande confusão. se eu tenho de activar sempre 4 PORTs do arduino.
tenho de transformar alguma coisa?
para hex e depois enviar ???
alguém pode dar uma explicação?
muito obrigado
-
Secalhar mandas o numero 17 em binario para ligares o led 17 ja que o bit zero nao esta bgado a nada. Compreendes um funcionamento de um mux? Não estou a ver bem o que estas a fazer ( o problema pode ser meu) mas parece que o que tu queres é um decoder de binario com um barramento de 8 bits?
-
Boa tarde
tenho aqui uma duvida em relação aos mux ou demux
eu tenho um conjunto de leds que quero ativer vamos imaginar 26 e uso um arduino nano e queria ativa-los.
exemplo:
DDRD = B11111111; //set PORTD (digital 7~0) to outputs
PORTD = B00000000; // off so para exemplo
queria saber como eu faço para activar a saída 17 se o máximo é 7 ou estou a fazer uma grande confusão. se eu tenho de activar sempre 4 PORTs do arduino.
tenho de transformar alguma coisa?
para hex e depois enviar ???
alguém pode dar uma explicação?
muito obrigado
que mux estas a usar?
-
cd74hc4067 este é o mux
eu quero ligar o led 17 como eu falo se tenho so 8 bits
PORTB = B01001000; isto quer dizer que activei a posição 7 do PORT B??? numero
o mux activa 4 entradas.
eu tenho de ter sempre 4 portas do meu arduino so para activar as posições do meu mux?
-
Mas se é para ligar leds porque é que não usas dois 595's?
-
cd74hc4067 este é o mux
Primeiro so' consegues controlar ate 16leds, depois tens 4 bits para controlar essas 16 saidas. A tabela na pagina 2 da datasheet e' bem explicita: http://www.ti.com/lit/ds/symlink/cd74hc4067.pdf (http://www.ti.com/lit/ds/symlink/cd74hc4067.pdf)
Considerando que tens:
PORTB.0 - S0
PORTB.1 - S1
PORTB.2 - S2
PORTB.3 - S3
Quando fizeres PORTD = B00001111 tens o led ligado ao pino I15 do mux igual a entrada, se fizeres PORTD = B00000101 tens o led ligado ao pino I5 do mux igual a entrada. Se quiseres ligar os leds todos tens que fazer um for de 0 (B00000000) a 15 (B00001111) com a entrada do MUX (COMMON INPUT/OUTPUT) = 1.
Se quisers ter o led 4 desligado fazes o mesmo mas quando no for estiver no led 4 colocas a a entrada do MUX (COMMON INPUT/OUTPUT) = 0.
-
mas para isso tenho de ter sempre 4 portas do arduino para trabalhar com o mix
Muito obrigado a todos pela explicação.
-
Tanto erro por metro quadrado.
Com um par de 595's só precisas de 3 pinos..
-
mas para isso tenho de ter sempre 4 postas do arduino para trabalhar com o mix
Muito obrigado a todos pela explicação.
Ate tens que ter 5, 4 para o address e 1 para o estado da saida.
Se fizeres como o senso te disse, so' precisas de 3 pinos.
-
É que com o multiplexer a próxima duvida é como é que acende meia duzia de leds ao mesmo tempo ::)
-
Pois tambem nao estou bem a perceber o porque de um mux e nao um shiftregister com um clock, data e latch mete os leds que quiser (isto em teoria pois a partir de uma altura o refreshrate fica horrivel)
-
ja resolvi tudo obrigado pela explicações de todos.
-
E como fizeste?