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.

330<br />

Arduino Básico<br />

displayDigit(cm);<br />

}<br />

}<br />

void displayDigit(float value) {<br />

int number = value*100;<br />

lc.setDigit(0,4,number/10000,false); // dígito das centenas<br />

lc.setDigit(0,3,(number%10000)/1000,false); // dígito das dezenas<br />

lc.setDigit(0,2,(number%1000)/100,true); // primeiro dígito com DP ligado<br />

lc.setDigit(0,1,(number%100)/10,false); // dígito dos décimos<br />

lc.setDigit(0,0,number%10,false);<br />

// dígito dos centésimos<br />

}<br />

Projeto 39 – Display ultrassônico de distância – Análise do código<br />

O projeto inicia incluindo a biblioteca LedControl.h:<br />

#include "LedControl.h"<br />

Depois você define os pinos necessários para o sensor e o chip MAX7219:<br />

#define sensorPin 9<br />

#define switchPin 7<br />

#define DataIn 2<br />

#define CLK 4<br />

#define LOAD 3<br />

#define NumChips 1<br />

As leituras do sensor são reguladas utilizando um algoritmo simples de execução<br />

de médias, por isso você tem de definir quantas amostras devem ser tomadas para<br />

calculá-lo:<br />

#define samples 5.0<br />

Esse número será utilizado futuramente com floats, por isso, para evitar erros, nós o definimos<br />

como 5.0, em vez de 5, garantindo que seja forçado como um float, e não um int.<br />

Na sequência, as variáveis de ponto flutuante são declaradas como no projeto 38, mas<br />

com a adição de averageReading, que será utilizada futuramente no programa:<br />

float pwmRange, averageReading, inch, cm;<br />

Você cria um objeto LedControl e define os pinos utilizados e o número de chips:<br />

LedControl lc=LedControl(DataIn,CLK,LOAD,NumChips);<br />

Assim como no projeto 21, você se assegura de que o display esteja habilitado, define<br />

sua intensidade como média e limpa o display, deixando-o pronto para ser utilizado:<br />

lc.shutdown(0,false);<br />

lc.setIntensity(0,8);<br />

lc.clearDisplay(0);

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

Saved successfully!

Ooh no, something went wrong!