08.11.2017 Views

arduino_básico_Michael_McRoberts

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Capítulo 7 ■ Displays de LED<br />

163<br />

apresentado ao conceito de arrays multidimensionais, e também aprenderá um pequeno<br />

truque para realizar a rotação de bits (ou deslocamento circular). Para iniciar,<br />

você utilizará exatamente o mesmo circuito do projeto 19.<br />

Digite o código<br />

Digite e faça o upload do código da listagem 7.2.<br />

Listagem 7.2 – Código para o projeto 20<br />

// Projeto 20<br />

#include <br />

int latchPin = 8;<br />

int clockPin = 12;<br />

int dataPin = 11;<br />

byte frame = 0;<br />

// Pino conectado ao pino 12 do 74HC595 (Latch)<br />

// Pino conectado ao pino 11 do 74HC595 (Clock)<br />

// Pino conectado ao pino 14 do 74HC595 (Data)<br />

// variável para armazenar o quadro atual sendo exibido<br />

byte led[8][8] = { {0, 56, 92, 158, 158, 130, 68, 56},<br />

{0, 56, 124, 186, 146, 130, 68, 56},<br />

{0, 56, 116, 242, 242, 130, 68, 56},<br />

{0, 56, 68, 226, 242, 226, 68, 56},<br />

{0, 56, 68, 130, 242, 242, 116, 56},<br />

{0, 56, 68, 130, 146, 186, 124, 56},<br />

{0, 56, 68, 130, 158, 158, 92, 56},<br />

{0, 56, 68, 142, 158, 142, 68, 56} };<br />

// 8 quadros de uma animação<br />

void setup() {<br />

pinMode(latchPin, OUTPUT);<br />

pinMode(clockPin, OUTPUT);<br />

pinMode(dataPin, OUTPUT);<br />

// define os 3 pinos digitais como saídas<br />

}<br />

Timer1.initialize(10000); // define um timer com duração de 10000 microssegundos<br />

Timer1.attachInterrupt(screenUpdate); // anexa a função screenUpdate<br />

void loop() {<br />

for (int i=0; i7) { frame =0; } // certifica-se de retornar ao frame 0, depois de passar do 7<br />

delay(100);<br />

// espera um pouco entre cada frame<br />

}

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

Saved successfully!

Ooh no, something went wrong!