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 7 ■ Displays de LED<br />

175<br />

}<br />

}<br />

}<br />

chrPointer++;<br />

}<br />

counter = millis();<br />

void screenUpdate() {<br />

for (byte row = 0; row < 8; row++) {<br />

writeData(row+1, buffer[row]);<br />

}<br />

}<br />

void setup() {<br />

initMAX7219();<br />

Timer1.initialize(10000); // inicializa timer1 e define o período de interrupção<br />

Timer1.attachInterrupt(screenUpdate);<br />

}<br />

void loop() {<br />

clearDisplay();<br />

scroll(" BEGINNING ARDUINO ", 45);<br />

scroll(" Chapter 7 - LED Displays ", 45);<br />

scroll(" HELLO WORLD!!! :) ", 45);<br />

}<br />

Quando você fizer o upload do código, verá uma mensagem de rolagem horizontal<br />

no display.<br />

Projeto 21 – Display LED de matriz de pontos – Mensagem com rolagem horizontal – Análise<br />

do hardware<br />

Para facilitar a compreensão do código, você primeiro deve saber como funciona o<br />

chip MAX7219, por isso, analisaremos o hardware antes do código.<br />

O MAX7219 opera de modo muito semelhante ao dos registradores de deslocamento<br />

que vimos antes, no sentido de que você faz a entrada de dados de modo serial, bit<br />

a bit. Um total de 16 bits deve ser carregado no dispositivo de cada vez. O chip é de<br />

fácil utilização, e usa apenas três pinos do Arduino. O pino digital 2 vai para o pino<br />

1 do MAX, que é o pino de entrada de dados (Data In, ou DIN). O pino digital 3 vai<br />

para o pino 12 do MAX, o LOAD, e o pino digital 4 vai para o pino 13 do MAX, o<br />

clock (CLK). Consulte a figura 7.5 para a pinagem do MAX7219.<br />

O pino LOAD é colocado no estado baixo, e o primeiro bit de dados é definido como<br />

HIGH ou LOW no pino DIN. O pino CLK é definido para oscilar entre LOW e HIGH.

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

Saved successfully!

Ooh no, something went wrong!