08.11.2017 Views

arduino_básico_Michael_McRoberts

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Capítulo 6 ■ Contadores binários<br />

149<br />

else {<br />

pinState = LOW;<br />

}<br />

// define dataPin como HIGH ou LOW, dependendo de pinState<br />

digitalWrite(dataPin, pinState);<br />

}<br />

digitalWrite(clockPin, HIGH);<br />

digitalWrite(dataPin, LOW);<br />

// envia o bit no extremo ascendente do clock<br />

}<br />

digitalWrite(clockPin, LOW);<br />

// interrompe o deslocamento<br />

Projeto 18 – Análise do código e do hardware<br />

O código para o projeto 18 é idêntico ao do projeto 17, exceto pela adição de<br />

shiftOut(255-i);<br />

no loop principal. A rotina shiftOut envia oito bits para o 595. No loop principal, você<br />

utiliza duas chamadas a shiftOut, uma enviando o valor de i, e outra enviando o valor<br />

de 255-i. Você chama shiftOut duas vezes, antes de definir o latch como HIGH. Isso enviará<br />

dois conjuntos de oito bits, ou 16 bits no total, para os chips 595, antes que o latch<br />

seja definido como HIGH, para impedir outras operações de escrita nos registradores e<br />

para efetuar a saída do conteúdo do registrador de deslocamento aos pinos de saída,<br />

acendendo e apagando os LEDs.<br />

O segundo 595 tem a mesma fiação do primeiro. Os pinos do clock e do latch estão<br />

ligados aos pinos do primeiro 595. Entretanto, você tem um fio indo do pino 9 do<br />

CI 1 para o pino 14 do CI 2. O pino 9 é o pino de saída de dados e o pino 14 é o pino<br />

de entrada de dados.<br />

Os dados vindos do Arduino entram no pino 14 do primeiro CI. O segundo chip<br />

595 está encadeado ao primeiro, utilizando o pino 9 do CI 1, que emite dados para<br />

o pino 14 do segundo CI, a entrada de dados.<br />

Conforme você faz a entrada de um nono bit, e de outros bits, os dados do CI 1 são<br />

deslocados, saindo por seu pino de dados e entrando pelo pino de dados do segundo<br />

CI. Dessa forma, quando todos os 16 bits tiverem sido enviados pela conexão de dados<br />

a partir do Arduino, os primeiros oito bits enviados terão sido deslocados do primeiro<br />

chip para o segundo. Com isso, o segundo chip 595 armazenará os PRIMEIROS oito<br />

bits enviados, e o primeiro chip 595, os bits de 9 a 16.<br />

Um número praticamente ilimitado de chips 595 pode ser encadeado dessa forma.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!