EasyManuals Logo

Arduino uno User Manual

Arduino uno
311 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #103 background imageLoading...
Page #103 background image
const unsigned long measure_distance() {
-
pinMode(PING_SENSOR_IO_PIN, OUTPUT);
25
digitalWrite(PING_SENSOR_IO_PIN, LOW);
-
delayMicroseconds(2);
-
digitalWrite(PING_SENSOR_IO_PIN, HIGH);
-
delayMicroseconds(5);
-
digitalWrite(PING_SENSOR_IO_PIN, LOW);
30
pinMode(PING_SENSOR_IO_PIN, INPUT);
-
return pulseIn(PING_SENSOR_IO_PIN, HIGH);
-
}
-
-
void output_distance(const unsigned long duration) {
35
Serial.print("Distance to nearest object: ");
-
Serial.print(microseconds_to_cm(duration));
-
Serial.println(" cm");
-
}
-
This program doesnt differ much from our first version. First, we use the
more accurate value 29.155 for the number of microseconds it takes sound
to travel 1 centimeter. In addition, the distance calculation now takes a
potential gap between the sensor and the case into account. If you plug the
sensor into a breadboard, usually a small gap between the sensor and the
breadboards edge exists. This gap is defined in line 5, and it will be used in
the distance calculation later on. The gap is measured in centimeters, and it
gets multiplied by two because the sound travels out and back.
The
loop
method looks much cleaner now, because the programs main func-
tionality has been moved to separate functions. The whole sensor control
logic lives in the
measure_distance
method, and
output_distance
takes care of out-
putting values to the serial port. The big changes happened in the
microsec-
onds_to_cm
function. It returns a float value now, and it subtracts the sensor
gap from the measured duration. To make sure we dont get negative values,
we use the
max
function.
Compile and upload the program, and you should see something like the
following in your serial monitor window:
Distance to nearest object: 17.26 cm
Distance to nearest object: 17.93 cm
Distance to nearest object: 17.79 cm
Distance to nearest object: 18.17 cm
Distance to nearest object: 18.65 cm
Distance to nearest object: 18.85 cm
This not only looks more accurate than our previous version, it actually is
more accurate. If you have worked with floating-point numbers in any pro-
gramming language before, you might ask yourself why the Arduino rounds
report erratum discuss
Increasing Precision Using Floating-Point Numbers 85
www.it-ebooks.info

Table of Contents

Other manuals for Arduino uno

Questions and Answers:

Question and Answer IconNeed help?

Do you have a question about the Arduino uno and is the answer not in the manual?

Arduino uno Specifications

General IconGeneral
Form factorArduino
CertificationRoHS, FC, CE
Processor model-
Processor frequency- MHz
Microcontroller modelATmega328
Microcontroller frequency16 MHz
DC input voltage7-12 V
Operating voltage5 V
DC current per I/O pin40 mA
Flash memory0.032 MB
Maximum internal memory- GB
SRAM (Static Random Access Memory)2 KB
EEPROM (Electrically Erasable Programmable Read-Only Memory)1 KB
Wi-FiNo
Number of analog I/O pins6
Number of digital I/O pins14
Weight and Dimensions IconWeight and Dimensions
Board dimensions53.4 x 68.6 mm

Related product manuals