Home Page Icon
Home Page
Table of Contents for
Cover
Close
Cover
by J. M. Hughes
Arduino: A Technical Reference
Preface
Intended Audience
What This Book Is
What This Book Is Not
About Terminology
What’s in This Book
Endorsements
Conventions Used in This Book
Safari® Books Online
How to Contact Us
Acknowledgments
1. The Arduino Family
A Brief History
Types of Arduino Devices
Arduino Galleries
Arduino-Compatible Devices
Hardware-Compatible Devices
Software-Compatible Devices
The Arduino Naming Convention
What Can You Do with an Arduino?
For More Information
2. The AVR Microcontroller
Background
Internal Architecture
Internal Memory
Peripheral Functions
Control Registers
Digital I/O Ports
8-Bit Timer/Counters
16-Bit Timer/Counters
Timer/Counter Prescaler
Analog Comparator
Analog-to-Digital Converter
Serial I/O
USART
SPI
TWI
Interrupts
Watchdog Timer
Electrical Characteristics
For More Information
3. Arduino-Specific AVR Microcontrollers
ATmega168/328
Memory
Features
Packages
Ports
Pin Functions
Analog Comparator Inputs
Analog Inputs
Serial Interfaces
Timer/Clock I/O
External Interrupts
Arduino Pin Assignments
Basic Electrical Characteristics
ATmega1280/ATmega2560
Memory
Features
Packages
Ports
Pin Functions
Analog Comparator Inputs
Analog Inputs
Serial Interfaces
Timer/Clock I/O
External Interrupts
Arduino Pin Assignments
Electrical Characteristics
ATmega32U4
Memory
Features
Packages
Ports
Pin Functions
Analog Comparator Inputs
Analog Inputs
Serial Interfaces
Timer/Clock I/O
External Interrupts
USB 2.0 Interface
Electrical Characteristics
Arduino Pin Assignments
Fuse Bits
For More Information
4. Arduino Technical Details
Arduino Features and Capabilities
Arduino USB Interfaces
Arduino Physical Dimensions
Full-Size Baseline Arduino PCB Types
Mega Form-Factor Arduino PCB Types
Small Form-Factor Arduino PCB Types
Special-Purpose PCB Types
Arduino Pinout Configurations
The Baseline Arduino Pin Layout
The Extended Baseline Pin Layout
The Mega Pin Layout
Nonstandard Layouts
For More Information
5. Programming the Arduino and AVR Microcontrollers
Cross-Compiling for Microcontrollers
Bootloaders
The Arduino IDE Environment
Installing the Arduino IDE
Configuring the Arduino IDE
Cross-Compiling with the Arduino IDE
The Arduino Executable Image
The Arduino Software Build Process
Sketch Tabs
Arduino Software Architecture
Runtime Support: The main() Function
An Example Sketch
Constants
Global Variables
Libraries
Using Libraries in Sketches
Adding a Library to the Arduino IDE
Creating Custom Libraries
Arduino Source Code
6. Life Without the Arduino IDE
IDE Alternatives
PlatformIO
Ino
The AVR Toolchain
Installing the Toolchain
make
avr-gcc
binutils
avr-libc
Building C or C++ Programs from Scratch
Compiling with avr-gcc or avr-g++
Multiple Source Files and make
AVR Assembly Language
The AVR Programming Model
Creating AVR Assembly Language Programs
AVR Assembly Language Resources
Uploading AVR Executable Code
In-System Programming
Programming with the Bootloader
Uploading Without the Bootloader
JTAG
AVRDUDE
Using an Arduino as an ISP
Bootloader Operation
Replacing the Bootloader
Summary
7. Arduino Libraries
Library Components
Contributed Libraries
8. Shields
Electrical Characteristics of Shields
Physical Characteristics of Shields
Stacking Shields
Common Arduino Shields
Input/Output
I/O Extension Shields
I/O Expansion Shields
Relay Shields
Signal Routing Shields
Memory
Communication
Serial I/O and MIDI
Ethernet
Bluetooth
USB
ZigBee
CAN
Prototyping
Creating a Custom Prototype Shield
Motion Control
DC and Stepper Motor Control
PWM and Servo Control
Displays
Instrumentation Shields
Adapter Shields
Miscellaneous Shields
Uncommon Arduino Shields
Sources
9. Modules and I/O Components
Modules
Physical Form Factors
Interfaces
Module Sources
Module Descriptions
Grove Modules
Sensor and Module Descriptions
Sensors
Temperature, Humidity, and Pressure Sensors
Tilt Sensors
Audio Sensors
Light Sensors
Magnetic Sensors
Vibration and Shock Sensors
Motion Sensors
Contact and Position Sensors
Range Sensors
Communications
APC220 Wireless Modules
315/433 MHz RF Modules
ESP8266 Transceiver
Output Devices and Components
Light Sources
Relays, Motors, and Servos
Analog Signal Outputs
User Input
Keypads
Joysticks
Potentiometers and Rotary Encoders
User Output
Text Displays
Graphical Displays
Support Functions
Clocks
Timers
Connections
Working with Naked Jumper Wires
Module Connection Systems
Building Custom Connectors
Choosing a Connection Method
Sources
Summary
10. Creating Custom Components
Getting Started
Custom Shields
Physical Considerations
Stacking Shields
Electrical Considerations
The GreenShield Custom Shield
Objectives
Definition and Planning
Design
Prototype
Final Software
Fabrication
Final Acceptance Testing
Operation
Next Steps
Custom Arduino-Compatible Designs
Programming a Custom Design
The Switchinator
Definition and Planning
Design
Prototype
Software
Fabrication
Acceptance Testing
Next Steps
Resources
11. Project: A Programmable Signal Generator
Project Objectives
Definition and Planning
Design
Functionality
Enclosure
Schematic
Prototype
Control Inputs and Modes
Display Output
DDS Module
Software
Source Code Organization
Software Description
The DDS Library
Testing
Final Assembly
Pull-up Resistor Array
Input Protection
Chassis Components
DC Power
Final Testing and Closing
Reducing the Cost
Cost Breakdown
Resources
12. Project: Smart Thermostat
Background
HVAC Overview
Temperature Control Basics
Smart Temperature Control
Project Objectives
Definition and Planning
Design
Functionality
Enclosure
Schematic
Software
User Input/Output
Control Output
Prototype
DHT22 Sensor
Rotary Encoder
Real-Time Clock Module
LCD Shield
Software
Source Code Organization
Software Description
Testing
Final Version
Assembly
Testing and Operation
Cost Breakdown
Next Steps
Resources
13. Model Rocket Launcher: A Design Study
Overview
The Design Cycle
Objectives
Selecting and Defining Functional Requirements
Creating the Preliminary Design
Design Feasibility
Preliminary Parts List
Prototype
Final Design
Electrical
Physical
Software
Testing and Operation
Cost Analysis
A. Tools and Accessories
Hand Tools
Screwdrivers
Pliers and Cutters
Wire Strippers
Connector Crimping Tools
Saws
Power Tools
Drills
Miniature Grinder
Miniature Drill Press
Soldering
Soldering Irons
Soldering Accessories
Tool Sources
B. AVR ATmega Control Registers
ATmega168/328
ATmega1280/2560
ATmega32U4
C. Arduino and Compatible Products Vendors
Arduino Products
Hardware-Compatible Boards and Shields
Software-Compatible Boards
Sensors, Add-on Boards, and Modules
Electronics Software
Open Source Schematic Capture Tools
CAE Software Tools
PCB Layout Tools
Hardware, Components, and Tools
Electronic Component Manufacturers
Electronics Distributors (USA)
Discount and Surplus Electronics
Mechanical Parts and Hardware (Screws, Nuts, Bolts)
Electronic Enclosures and Chassis
Tools
Test Equipment
Printed Circuit Board Supplies and Fabricators
Prototype and Fast-Turnaround Fabricators
PCB Kit Sources
Other Sources
D. Recommended Reading
Arduino
AVR
C and C++ Programming
General Electronics
Interfaces
Instrumentation
Printed Circuit Boards
E. Arduino and AVR Software Development Tools
Compilers/Assemblers
Integrated Development Environments (IDEs)
Programming Tools
Simulators
Index
Search in book...
Toggle Font Controls
Playlists
Add To
Create new playlist
Name your new playlist
Playlist description (optional)
Cancel
Create playlist
Sign In
Email address
Password
Forgot Password?
Create account
Login
or
Continue with Facebook
Continue with Google
Sign Up
Full Name
Email address
Confirm Email Address
Password
Login
Create account
or
Continue with Facebook
Continue with Google
Next
Next Chapter
Arduino: A Technical Reference
Add Highlight
No Comment
..................Content has been hidden....................
You can't read the all page of ebook, please click
here
login for view all page.
Day Mode
Cloud Mode
Night Mode
Reset