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.

98<br />

Arduino Básico<br />

}<br />

}<br />

Serial.println(Ans);<br />

Essa função contém três instruções if semelhantes, por isso vamos escolher uma e<br />

analisá-la:<br />

if ((data[0] == 'r') || (data[0] == 'R')) {<br />

int Ans = strtol(data+1, NULL, 10);<br />

Ans = constrain(Ans,0,255);<br />

analogWrite(RedPin, Ans);<br />

Serial.print("Red is set to: ");<br />

Serial.println(Ans);<br />

}<br />

Essa instrução if verifica se o primeiro caractere na string data[0] é a letra r ou R<br />

(caracteres maiúsculos ou minúsculos são totalmente diferentes para a linguagem<br />

C). Você utiliza o comando lógico OU (o símbolo ||) para verificar se a letra é um r<br />

ou um R, uma vez que as duas opções são válidas.<br />

Se ela é um r ou um R, a instrução if sabe que você deseja alterar o brilho do LED<br />

vermelho (red), e seu código é executado. Primeiramente, você declara uma variável<br />

inteira Ans (que tem escopo local, apenas para a função setLED) e utiliza o comando<br />

strtol (string para inteiro longo), para converter os caracteres depois da letra R em um<br />

inteiro. O comando strtol aceita três parâmetros: a string que você está passando, um<br />

ponteiro para o caractere depois do inteiro (que você não utilizará, pois já limpou<br />

a string utilizando o comando strtok e, portanto, passa um caractere NULL), e a base<br />

(nesse caso, base 10, pois você está utilizando números decimais normais, em vez de<br />

números binários, octais ou hexadecimais, que seriam base 2, 8 e 16, respectivamente).<br />

Em resumo, você declara um inteiro e o define como o valor da string de texto depois<br />

da letra R (o trecho com o número).<br />

Depois, você utiliza o comando constrain para garantir que Ans vá apenas de 0 a 255 e<br />

não passe disso. Então, você utiliza um comando analogWrite para o pino vermelho,<br />

enviando a ele o valor de Ans. O código emite "Red is set to: ", seguido pelo valor<br />

de Ans, no Serial Monitor. As outras duas instruções if fazem exatamente o mesmo<br />

procedimento, só que para os LEDs verde e azul.<br />

Você encontrou muitos novos tópicos e conceitos neste projeto. Para garantir que<br />

compreendeu exatamente o que fizemos, coloquei o código do projeto (que está em<br />

C, lembre-se) lado a lado com o pseudocódigo correspondente (essencialmente, a<br />

linguagem do computador descrita com mais detalhes, utilizando palavras e pensamentos).<br />

Consulte a tabela 3.2 para a comparação.

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

Saved successfully!

Ooh no, something went wrong!