EasyManua.ls 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 doesn’t 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
breadboard’s 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 program’s 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 don’t 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

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

Summary

Arduino Uno and the Arduino Platform

The Parts You Need

Chapter 1: Welcome to the Arduino

Installing the Arduino IDE

Provides step-by-step instructions for installing the Arduino Integrated Development Environment.

Hello, World!

Introduces the first project: making an LED blink using the Arduino.

Compiling and Uploading Programs

Explains how to compile and upload sketches to the Arduino board.

Chapter 2: Creating Bigger Projects with the Arduino

Changing Preferences

Explains how to customize Arduino IDE settings for better workflow.

Using Serial Ports

Explains serial communication for data exchange between Arduino and computer.

Chapter 3: Building Binary Dice

Working with Breadboards

Explains how breadboards work and how to connect components.

First Version of a Binary Die

Implements the first version of a binary die using three LEDs.

Working with Buttons

Details how pushbuttons work and how to connect them to the Arduino.

Building a Dice Game

Completes the dice project by adding a guess button and game logic.

Chapter 4: Building a Morse Code Generator Library

Building a Morse Code Generator

Starts the implementation of the Telegraph C++ class.

Fleshing Out the Morse Code Generator’s Interface

Defines the Telegraph class interface and Morse code data arrays.

Installing and Using the Telegraph Class

Guides on integrating the custom Telegraph library into Arduino IDE.

Chapter 5: Sensing the World Around Us

Measuring Distances with an Ultrasonic Sensor

Introduces ultrasonic sensors and builds a distance measuring device.

Increasing Precision Using a Temperature Sensor

Integrates a temperature sensor to refine distance measurements.

Chapter 6: Building a Motion-Sensing Game Controller

Wiring Up the Accelerometer

Details connecting the ADXL335 accelerometer to the Arduino.

Bringing Your Accelerometer to Life

Reads and outputs raw accelerometer data for three axes.

Building Your Own Game Controller

Integrates a pushbutton and refined accelerometer data for a game controller.

Chapter 7: Writing a Game for the Motion-Sensing Game Controller

Writing a GameController Class

Creates a JavaScript class for convenient access to Arduino motion data.

Creating the Game

Implements a Breakout clone using JavaScript and the motion controller.

Chapter 8: Generating Video Signals with an Arduino

Building a Digital-to-Analog Converter (DAC)

Details building a binary-weighted DAC for video signal generation.

Connecting the Arduino to Your TV Set

Describes modifying an RCA cable to connect to the Arduino.

Using the TVout Library

Introduces the TVout library for generating video signals on a TV.

Building a TV Thermometer

Creates a graphical thermometer display on a TV screen using sensors.

Chapter 9: Tinkering with the Wii Nunchuk

Wiring a Wii Nunchuk

Details wiring the Nunchuk controller to Arduino analog pins.

Building a Nunchuk Class

Creates a C++ class for interfacing with the Nunchuk controller.

Using Our Nunchuk Class

Demonstrates reading Nunchuk data (joystick, accelerometer, buttons).

Chapter 10: Networking with Arduino

Chapter 11: Creating a Burglar Alarm with Email Notification

Chapter 12: Creating Your Own Universal Remote Control

Chapter 13: Controlling Motors with Arduino

What You Need

Lists components for motor control: servo motor, wires, Arduino.

What If It Doesn’t Work?

Troubleshooting motor control: power consumption, weight, adjustments.

APPENDIX 1: Electronics and Soldering Basics

APPENDIX 2: Advanced Arduino Programming

APPENDIX 3: Advanced Serial Programming

APPENDIX 4: Controlling the Arduino with a Browser

Related product manuals