Postagem em destaque

Controle PID de Potência em Corrente Alternada - Arduino e TRIAC - Parte I

Este post é o primeiro de uma série de seis que escrevi tratando de controle de potência e PID (controle proporcional, integral e derivativo...

segunda-feira, 9 de julho de 2012

Controlando “infinitos” LEDs com Arduino II

A ideia deste CI é a gente mandar os dados para ele em uma forma chamada serial (um bit por vez) e ele converter para paralelo, ou seja, eu "escrevo" nele o estado de cada cor dos LED um a um e quando eu disser que acabei de mandar ele envia todos os estados de uma só vez, um para cada pino de saída (ele tem oito, então com um chip dá para controlar dois LEDs RGB mais as cores vermelha e verde do terceiro LED. O azul fica com o pino Q0 do próximo chip.

Abaixo, o esquema de ligação do 74HC595 (595 para os íntimos, que já já seremos):


Os pinos do chip, como é padrão, são numerados da forma descrita, a partir da esquerda do chanfro descendo e subindo do outro lado. Os pinos 1 a 7 são os pinos de dados Q1 a Q7. O pino Q0 é o 15. Porque será que os pinos de dados não são os de 1 a 8? Vai saber...
O pino 16 é o Vcc. Como vamos alimentar os LEDs com 3,3V, ele deve ser conectado ao 3V3 do Arduino através do barramento da protoboard. O pino 10 deve também ser ao Vcc  e o 13 ao terra.

O pino Latch ("tranca", numa tradução literal, que aliás é péssima) deve ser mantido LOW (0V) enquanto os dados estão sendo enviados. Quando terminamos de enviar os dados, deve ser mudado prá HIGH. É o pino 11 do chip; Já pino 12 é o pino Clock. Ele marca uma espécie de "batimento cardíaco" do circuito. Deve ser ligado e desligado a cada envio de dados ao CI.
O pino 14 é o pino de dados.
A conexão entre Arduino e CI fica da seguinte forma:


Arduino 595 Descrição
13 14 Serial
12 11 Clock
11 12 Latch


E o pino 9? Ele é usado para conectar um chip em outro. A ideia é que os dados são enviados ao primeiro CI e ele passa os dados ao seguinte, usando o pino 9 como saída. Este é conectado ao pino 14 do segundo CI. Os pinos 12 e 11 dos dois CI são conectados, de maneira ao latch e clock serem os mesmos para os dois CIs. Assim, podemos ter "n" CIs conectados uns aos outros, comandados por apenas 3 portas do Arduino.

Abaixo, um zoom das conexões dos CIs descritas acima.

Eu adotei as cores dos LEDs RGB para os fios ligados aos pinos  Q0 a Q8. O laranja foi usado no lugar do vermelho, prá não confundir com Vcc.