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.

282<br />

Arduino Básico<br />

Na sequência, imprimimos a tendência da pressão. O valor da tendência é obtido<br />

chamando a função printTrend() (que será explicada em breve):<br />

GLCD.CursorToXY(84,49);<br />

GLCD.print("TREND:");<br />

GLCD.CursorToXY(84,57);<br />

printTrend();<br />

Você deseja apenas armazenar o valor atual da pressão a cada intervalo específico<br />

(INTERVAL) de segundos. Assim, depois de cada espera de mil milissegundos, você<br />

incrementa counter em 1:<br />

counter++;<br />

E verifica se o valor de counter atingiu o valor de INTERVAL. Se afirmativo, você chama<br />

a função drawPoints():<br />

if (counter==INTERVAL) {drawPoints(dotCursor);}<br />

Na sequência, adicionamos duas novas funções para desenhar o gráfico e imprimir<br />

a tendência atual de pressão. A primeira é a função drawPoints(). Você passa a ela o<br />

valor de dotCursor como parâmetro:<br />

void drawPoints(int position) {<br />

O valor de counter atingiu o de INTERVAL, por isso você o redefine como 0:<br />

counter=0;<br />

A leitura de pressão atual é armazenada no array dots[], na posição atual. Como você<br />

está interessado apenas em um ponto a ser exibido em um display de baixa resolução,<br />

não são necessários números depois da vírgula decimal, por isso converta hPa em um<br />

inteiro. Isso também ajuda a economizar memória, uma vez que um array de inteiros<br />

ocupa menos espaço que um array de floats.<br />

dots[dotCursor] = int(hPa);<br />

Agora você tem de limpar o gráfico, deixando-o pronto para os novos dados. Isso<br />

é feito com um comando FillRect, que cria um retângulo limitado pelas bordas da<br />

caixa do gráfico:<br />

GLCD.FillRect(2, 2, 123, 40, WHITE);<br />

// limpa a área do gráfico<br />

Em seguida, você itera os 124 elementos do array com um loop for:<br />

for (int x=0; x

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

Saved successfully!

Ooh no, something went wrong!