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.

404<br />

Arduino Básico<br />

O tempo, em milissegundos, desde a última conexão, que será comparado ao intervalo<br />

definido e ao valor em millis(), para decidir se você deve ou não fazer outra atualização:<br />

unsigned long last_connect;<br />

O comprimento da string de dados que você terá de enviar ao Pachube:<br />

int content_length;<br />

E, finalmente, as temperaturas em Celsius e Fahrenheit de seus sensores:<br />

int itempC, itempF, etempC, etempF;<br />

Em seguida, temos a primeira de uma série de funções utilizadas por todo o sketch.<br />

A primeira que encontramos é setupEthernet(), a qual reinicializa a conexão Ethernet<br />

e atualiza a definição de intervalo:<br />

void setupEthernet() {<br />

resetEthernetShield();<br />

delay(500);<br />

interval = UPDATE_INTERVAL;<br />

Serial.println("setup complete");<br />

}<br />

Depois, temos a função clean_buffer(), utilizada para limpar o buffer e preenchê-lo<br />

com valor 0:<br />

void clean_buffer() {<br />

Primeiro, o ponteiro (índice do array) é definido como 0:<br />

pointer = 0;<br />

Depois, você utiliza um comando memset para preencher o espaço na memória do<br />

buffer com zeros:<br />

memset(buff,0,sizeof(buff));<br />

O comando memset é algo novo para você. Sua função é definir certo número de bytes<br />

na memória com um valor específico. Ele requer três parâmetros: um ponteiro para<br />

o bloco da memória que deve ser preenchido, o valor a ser usado no preenchimento<br />

e o número de bytes que será utilizado.<br />

Em seu caso, você passa buff como primeiro parâmetro, assim, ele aponta para o<br />

primeiro byte na memória onde buff está armazenado. Depois, ele escreve o valor 0<br />

nesse bloco de memória e em todos os blocos até sizeof(buff). O comando sizeof()<br />

retorna o tamanho do array em bytes.<br />

O propósito de memset foi preencher com 0 a memória ocupada pelo array buff,<br />

limpando-a de todos os dados escritos previamente.

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

Saved successfully!

Ooh no, something went wrong!