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.

324<br />

Arduino Básico<br />

Na rotina de inicialização, você simplesmente inicia as comunicações seriais com uma<br />

taxa de transmissão de 115.200 e define o pino do sensor como entrada:<br />

Serial.begin(115200);<br />

pinMode(sensorPin, INPUT);<br />

No loop principal, você inicia lendo o pulso do pino do sensor, armazenando-o em<br />

pwmRange:<br />

pwmRange = pulseIn(sensorPin, HIGH);<br />

Para isso, você utiliza um novo comando, pulseIn, perfeito para esse caso, uma vez que<br />

é projetado para medir em microssegundos o comprimento de um pulso em um pino.<br />

O pino PW do sensor envia um sinal HIGH quando o pulso ultrassônico é enviado a<br />

partir do dispositivo, e um sinal LOW quando esse pulso é recebido de volta. O tempo<br />

de oscilação do pino entre HIGH e LOW fornecerá a distância, depois de convertido. O<br />

comando pulseIn requer dois parâmetros. O primeiro é o pino que você deseja escutar,<br />

e o segundo é um valor HIGH ou LOW, para definir em qual estado o comando pulseIn<br />

iniciará a medição do pulso. Em seu caso, você define esse parâmetro como HIGH, de<br />

modo que tão logo o pino do sensor tenha um sinal HIGH, o comando pulseIn iniciará<br />

a medição; assim que o sinal for LOW, ele interromperá a medição e retornará o tempo<br />

em microssegundos.<br />

De acordo com o datasheet para a série LV-MaxSonar de sensores, o dispositivo detectará<br />

distâncias de 0 a 254 polegadas (6,45 metros), mostrando distâncias menores<br />

que seis polegadas como 6 polegadas. Cada 147 µS (microssegundo) é igual a uma<br />

polegada. Assim, para converter o valor retornado do comando pulseIn para polegadas,<br />

você tem simplesmente de dividi-lo por 147. Depois, esse valor é armazenado em inch.<br />

inch = pwmRange / 147;<br />

Na sequência, esse valor é multiplicado por 2,54 para apresentar a distância em<br />

centímetros:<br />

cm = inch * 2.54;<br />

Por fim, os valores em polegadas e centímetros são impressos no monitor serial:<br />

Serial.print(inch);<br />

Serial.print(" inches ");<br />

Serial.print(cm);<br />

Serial.println(" cm");<br />

Projeto 38 – Telêmetro ultrassônico simples – Análise do hardware<br />

O novo componente apresentado neste projeto é o telêmetro ultrassônico, dispositivo<br />

que utiliza ultrassom (som de frequência muito elevada, acima do limite da audição<br />

humana). No caso do MaxSonar, ele envia um pulso a 42 kHz. O ser humano tem um

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

Saved successfully!

Ooh no, something went wrong!