Artigo Retirado do blog http://blog.ricardocastelhano.net/
O Arduino dispõe de 13 Pins Digitais de Input e Output, isto se for uma board standard como a actual Uno ou anteriores como aDuemilenove. Muitas vezes este é uma das razões que algumas pessoas, com quem falo sobre Arduino, usam para a não utilização desta board num projecto. A razão é só existirem 13 portas digitais de I/O.
Bom, a solução passa por dois caminhos, utilizar a board MEGA com 54 pins digitais I/O ou utilizar circuitos integrados (IC) conhecidos como “Multiplexers“. Muitas vezes a primeira solução pode necessitar da segunda, caso 54 pins não sejam suficientes.
Para resolver esta questão utilizo o IC 74HC595 ( existem outros que fazem o mesmo efeito). Este IC é um conhecido “8 bit serial in – parallel out shift register”, ou seja:
“Um serial-in/parallel-out shift register guarda data em elementos internos de memória e envia data para os pins serial-out, data-out. Todas as fases internas são disponíveis como output. Assim, um serial-in/parallel-out shift register converte data de formato serial para formato parallel. Por exemplo, se entrarem quatro bits por quatro pulsos do relógio através de um único arame num data-in, esse data ficará disponível simultaneamente em quatro outputs: QA ao QD depois do quarto impulso do relógio. (fonte: All About Circuits)”
O Pin 8 deverá de estar ligado a Terra (GND).
O Pin 10 deverá de estar ligado a corrente. Este pin é o “Master Reclear” e caso esteja LOW está activo.
O Pin 11 é o “Clock” do IC.
O Pin 12 é o armazenamento (“Latch”) do IC e caso esteja LOW desactiva-se os outputs do IC.
O Pin 13 é o “Enable”, e caso o liguem a Terra (GND) não o conseguem “disable”. Caso procedam assim, o controlo é feito pelo “Latch”.
O Pin 14 é o “Serial Input” ou seja, o pin pelo qual a informação vai do Arduino para o IC.
O Pin 16 é o Vcc (corrente).
Confuso?
Bem, é bastante simples até. Vejamos a seguinte imagem:
ocupando somente 3 pins digitais da nossa board é possível ter acesso a 8 saídas (8-bit). O interessante é que se podem ligar IC’s em paralelo:
Continuam-se a ocupar somente 3 pins da board e agora tem-se a disposição 16 saídas, e este processo pode continuar por quantas vezes forem necessárias.
A configuração do esquema pode se ver nas imagens acima, mas como funciona o código?
Cada vez que se vai enviar um valor para o IC, desliga-se o pin LatchPin para que nenhuma saída “dê sinal”, neste caso seriam os LEDs a piscar.
Enviam-se os bits para o IC, e informa-se qual a ordem de saída dos bits: MSBFIRST (Most Significant Bit First) ou LSBFIRST (Least Significant Bit First).
Agora, e uma vez que estamos a trabalhar com binário, se enviarem o nº1 acende o 1º LED; nº2 acende o 2º LED; nº3 acende o 1º e 2º LED e assim por diante.
Notem que este IC serve para expandir o número de outputs digitais, logo só terão valores HIGH e LOW.
Irei colocar um pequeno video no Vimeo com um pequeno exemplo.
Espero que se divirtam.
Da pra controlar rele nessas portas?
ResponderExcluirObrigado
Fala Diego, isso é totalmente possível, a unica restrição é a tensão que o relê suporta como entrada, é só escolher um relê que seja compatível.
Excluirteria algum exemplo de como utilizar reles nessa configuração? como efetuaria a leitura do Rele? para saber se uma lampada no caso esta ligada ou desligada?
ResponderExcluirblz irmão, se caso eu te passar um codigo teria como vc incluir esse ai? é para uma bateria eletronica com 24 portas? valeu!!!
ResponderExcluir