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 #104 background imageLoading...
Page #104 background image
them automatically to two decimal digits. The secret lies in the
print
method
of the
Serial
class. In recent versions of the Arduino platform, it works for all
possible data types, and when it receives a
float
variable, it rounds it to two
decimal digits before it gets output. You can specify the number of decimal
digits. For example,
Serial.println(3.141592, 4);
prints
3.1416
.
Only the output is affected by this; internally it is still a
float
variable. By the
way, on most Arduinos,
float
and
double
values are the same at the moment.
Only on the Arduino Due is
double
more accurate than
float
.
So, what does it actually cost to use
float
variables? Their memory consumption
is 4 bytes—that is, they consume as much memory as
long
variables. On the
other hand, floating-point calculations are fairly expensive and should be
avoided in time-critical parts of your software. The biggest costs are the
additional library functions that have to be linked to your program for
float
support.
Serial.print(3.14)
might look harmless, but it increases your program’s
size tremendously.
Comment line 37 out and recompile the program to see the effect. It will no
longer work properly, but we can see how this statement affects the program
size. With my current setup, it needs 3,002 bytes without
float
support for
Serial.print
and 5,070 bytes otherwise. That’s a difference of 2,068 bytes!
In some cases, you can still get the best of both worlds:
float
support without
paying the memory tax. You can save a lot of space by converting the
float
values to integers before sending them over a serial connection. To transfer
values with a precision of two digits, multiply them by 100, and don’t forget
to divide them by 100 on the receiving side. We’ll use this trick (including
rounding) later.
Increasing Precision Using a Temperature Sensor
Support for floating-point numbers is an improvement, but it mainly
increases the precision of our program’s output. We could’ve achieved a
similar effect using some integer math tricks. But now we’ll add an even better
improvement that cannot be imitated using software: a temperature sensor.
When I told you that sound travels through air at 343 m/s, I wasn’t totally
accurate, because the speed of sound isn’t constant—among other things, it
depends on the air’s temperature. If you don’t take temperature into account,
the error can grow up to a quite significant 12 percent. We calculate the
actual speed of sound C with a simple formula:
C = 331.5 + (0.6 * t)
Chapter 5. Sensing the World Around Us • 86
report erratum • discuss
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