Please note that index links to approximate location of each term.
Symbols
;
(semicolon), 18
//
(comment), 17
||
(or) operator, 63
/* */
(comment), 17
==
(equal) operator, 61
>
(greater than) operator, 73
>=
(greater than or equal to) operator, 73
<
(less than) operator, 73
<=
(less than or equal to) operator, 73
=
(make equal to) operator, 61
!=
(not equal) operator, 61
!
(not) operator, 62
µF (microfarads), 51
A
A (amperes), 25
AC (alternating current), 25
Adafruit Industries
Pro Trinket, 236
Adafruit Motor Shield library
installing, 259
in sketches, 259–261, 264–266, 270–271, 273–275
Adding and Displaying Time and Date with an RTC (project), 352–356
Addressing Areas on the Touchscreen (project), 213–215
algorithms, 24
alternating current (AC), 25
amperes or amps (A), 25
Analog Devices, TMP36 temperature sensor, 79
analog thermometer building project, 244–246
analogReference()
function, 75
analogWrite()
function, 38
anodes, 29
Arduino
Arduino boards and alternatives. See also Arduino Uno; Creating Your Own Breadboard Arduino (project), 233–239
Arduino IDE (integrated development environment). See also Serial Monitor window
board type selection, 233
error messages, 20
installation and configuration, 5–7
libraries, 133, 134–135, 193–194
Arduino Store USA, 5
Arduino Uno
analog inputs, 70
connecting to, 17
I2C bus pins, 338
pulse-width modulation (~) pins, 38
serial buffer, 94
SPI pins, 346
AREF (analog reference) pin, 74–75
arithmetic operations, 73
array elements, 113
ASCII chart, 165
Atmel ATmega328 microcontroller IC
uploading sketches to, 231–232
attachInterrupt()
function, 150
audio amplifier circuits, 75–76
Autoscroll box, 90
B
backing sheets, 246
battery testing project, 70–72
baud, 90
BCD (binary coded decimal) conversion, 355
binary numbers
for pixel presentation, 172
bits, 104
blinkLED()
custom function, 84, 85–86, 88–89
Board menu item, 233
boards. See also Arduino Uno; breadboards; ProtoShields
Arduino Uno alternatives, 234–239
IDE type selection, 233
boolean
variable, 62
bootloaders, 227
bounce phenomenon, 54
breadboards. See also ProtoShields, 31–32
breakout boards, 212
Building an Analog Thermometer (project), 244–246
Building an Arduino Dialer (project), 385–388
Building an Arduino Texter (project), 388–389
Building a Remote Monitoring Station (project), 369–373
Building and Controlling a Robot Vehicle (project), 254–261
buttons. See push buttons
bytes, 104
C
capacitors
ceramic, 51
electrolytic, 52
card readers. See memory card modules; RFID readers
cathodes, 29
cellular communications
projects, 385–388, 388–389, 390–393
ceramic capacitors, 51
CHANGE
interrupt mode, 150
char
statement, 175
character displays
with LED Matrix modules, 160–166
with LedControl library, 157
character LCD modules
defining customer characters, 172–173
chassis models, 255
CheapStepper library
download, 252
chip resistors, 27
circuit diagrams. See schematic diagrams
circuits
building with schematics, 56–59
classes in sketches, 188
clock pin, 108
clock projects. See also real-time clock projects
CNC plotter project (Michalis Vasilakis), 3–4
code systems
capacitor values, 51
Sony infrared signals, 316, 318
Teleduino status, 377
coil schematic symbol, 48
collision sensing techniques, 262–266
colour tables, 175
COM (common) schematic symbol, 48
comments in sketches, 17
common-cathode modules, 115
comparison operators, 61, 62–63, 73
conditions in loops, 37
Controlling the Motor (project), 248–250
Controlling Traffic (project), 64–68
Controlling Two Seven-Segment LED Display Modules (project), 119–122
.cpp (source) files, 187, 188–189
Creating an Accurate GPS-Based Clock (project), 281–284, 284–286
Creating an Arduino Tweeter (project), 373–375
Creating a Blinking LED Wave (project), 33–35
Creating a Custom Shield (project), 129–133
Creating a Digital Thermometer (project), 122–123
Creating an Electronic Die (project), 101–104
Creating a Function to Repeat an Action (project), 84
Creating a Function to Set the Number of Blinks (project), 85–86
Creating an IR Remote Control Arduino (project), 318–321
Creating an IR Remote Control Robot Vehicle (project), 321–324
Creating a Keypad-Controlled Lock (project), 207–209
Creating an LED Binary Number Display (project), 107–109
Creating a Quick-Read Thermometer (project), 79–82
Creating a Quick-Read Thermometer That Blinks the Temperature (project), 86–89
Creating an RFID Control with “Last Action” Memory (project), 333–336
Creating an RFID Time-Clock System (project), 360–365
Creating a Simple Digital Clock (project), 356–359
Creating a Simple RFID Control System (project), 328–331
Creating a Single-Cell Battery Tester (project), 70–72
Creating a Single-Digit Display (project), 117–119
Creating a Stopwatch (project), 146–149
Creating a Temperature History Monitor (project), 181–184
Creating a Temperature-Logging Device (project), 142–144
Creating a Three-Zone Touch Switch (project), 218–221
Creating a Two-Zone On/Off Touch Switch (project), 215–218
Creating a Wireless Remote Control (project), 293–298
Creating Your Own Breadboard Arduino (project), 224–233
crystal oscillators (“crystals”), 225–226
CS (chip select) pin, 346
current
Arduino board limits, 39
with electric motors, 247, 250
in Ohm’s law (I), 30
D
Darlington transistors. See also TIP120 Darlington transistor, 247
data
logging and log files, 143–144, 365
writing to memory cards, 140–142
data buses. See also I2C (Inter-Integrated Circuit) bus; SPI (Serial Peripheral Interface) bus, 337
data display projects. See also numeric data displays
data out pin, 108
DC (direct current), 25
DC electric motors. See electric motors
DC socket terminal blocks, 252
debounce circuits, 55
debugging, 92
DEC
(decimal) parameter, 141
default:
section, 207
#define
statement, 187
Defining Custom Characters (project), 172–173
Demonstrating a Digital Input (project), 55–61
Demonstrating PWM (project), 38–39
detachInterrupt()
function, 150
Detecting Robot Vehicle Collisions (projects)
with infrared distance sensor, 269–271
with ultrasonic distance sensor, 273–275
dialer-building project, 385–388
Digi-Key
digital rheostats, 348
EEPROM, 339
port expanders, 343
digital input/output pins
port expanders, 343
digital inputs
about, 53
digital rheostats
using, 348
digital signals, 69
Digital Stopwatch (project), 158–160
digital storage oscilloscopes, 54
digitalRead()
function, 60, 69
digitalWrite()
function, 19, 69
direct current (DC), 25
Displaying the Temperature in the Serial Monitor (project), 91–92
do-while
statements, 93
Dyn (redirection service), 369, 373
E
Edit menu, 15
EEPROM (electrically erasable read-only memory)
in comparison chart, 234
EEPROM library sketches, 331, 333–336
electric motors. See also stepper motors
electrical isolation, 41
electricity
Arduino board limits, 39
wall-power, 43
electrolytic capacitors, 52
electronic components. See also specific components
about, 25
else
. See if-else
statements
equal (==
) operator, 61
error messages, 20
Ethernet library sketches, 370, 373–374
Ethernet shields
in projects, 238, 367–368, 371
F
FALLING
interrupt mode, 150
farads, 51
FastLED library installation, 135–135
feature creep, 24
files
Arduino library requisites, 187–190
writing to memory cards, 141–142
fixed values, 60
flash memory, 234
Freetronics
433 MHz receiver shield, 295
Eleven board, 235
EtherMega board, 238
LCD & Keypad Shield, 281
pin labels, 229
frequency bands, 299
Fritzing application, 50
function creation
example sketch, 84
overview, 83
returning values, 86
function libraries. See libraries
G
GND (ground)
and current, 25
in schematic diagrams, 49
GPS (Global Positioning System), 278, 283–284
GPS data
sentence conversion, 281
GPS receiver modules, 278
GPS receivers
GPS sentences, 281
GPS shields
connecting, 278
GPS Visualizer, 290
graph paper printing program, 130
graphic LCD modules
greater than (>
) operator, 73
greater than or equal to (>=
) operator, 73
ground. See GND (ground)
H
HC-SR04 ultrasonic distance sensor, 271–272
heat sinks, 225
Help menu, 15
hexadecimal numbers, 321
I
I (current), 30
I2C (Inter-Integrated Circuit) bus, 337, 338–339, 352
IC (Integrated Circuit) extractors, 230–231
IDE. See Arduino IDE (integrated development environment)
if-else
statements, 61
#ifndef
statement, 187
interrupt handlers, 149
interrupts
demonstration project, 151–152
modes and functions, 150
in robot vehicle projects, 264
interrupts()
function, 150
IR (infrared) distance sensors
in robot vehicle collision detection project, 269–271
uses, 266
IR (infrared) remote controls
Sony TV remotes, 316–317, 318, 321
IR receiver modules, 316
IR receivers, 316
IRremote library
download, 316
in sketches, 317, 320–321, 321–324
ISPs (internet service providers) and IP addressing, 369
J
junction dots, 49
justradios.com, 51
K
kΩ (kiloohms), 26
Kennedy, Nathan, 375
Keypad library
download, 204
keys, array conversion, 375
KEYWORDS.TXT definition files, 187, 189–190
kiloohms (kΩ), 26
KIM-1 emulator (Oscar Vermeulen), 3
L
L LED, 12
L293D Motor Drive Shield, 257–258
lc.clearDisplay
function, 157
lc.setChar()
function, 157
lc.setDigit()
function, 157
lc.setIntensity()
function, 157
lc.shutdown()
function, 157
LCDs (liquid crystal displays). See also character LCD modules; graphic LCD modules; LiquidCrystal library
about, 167
number display, 171
lcd.begin()
function, 170
lcd.clear()
function, 170
lcd.createChar()
function, 172
lcd.print()
function, 171
lcd.setCursor()
function, 170
lcd.write()
function, 172
least significant bit (LSB), 104
LEDs (light-emitting diodes). See also LED projects; MAX2179 LED Driver IC; seven-segment LED display modules
brightness control effects, 37–38
and resistors, 25
in schematic diagrams, 48
LED matrix modules
LED projects
with Arduino built-in LED, 84, 85–86
binary number display, 107–109
Blinking LED Wave, 33–35, 36–37, 38–39, 49–50
circuit building demonstration, 55–61
electronic die-throwing, 101–104
LedControl()
function, 157
LedControl library
download, 155
LEDMatrixDriver library
download, 161
less than (<
) operator, 73
less than or equal to (<=
) operator, 73
libraries. See also specific libraries
custom demonstrations, 195–197, 197–201
downloading and installing, 134–136
using, 133
Lilypad, 237
linear variable resistors, 75–76
linear voltage regulators, 224–225
Linux, Arduino IDE installation, 7
liquid crystal displays. See LCDs (liquid crystal displays)
LiquidCrystal library sketches, 169–170, 282–283, 284–285, 357–359, 361–364
lmd.setEnabled()
function, 164
lmd.setIntensity()
function, 164
logarithmic variable resistors, 75–76
logging and log files, 143–144, 286–289
long
variables
defined, 95
loop()
function, 18
LoRa library
download, 299
in sketches, 302–304, 306–309, 310–313
LoRa shields
LOW
interrupt mode, 150
LSB (least significant bit), 104
M
MAC addresses, 372
macOS
Arduino IDE installation, 6
Making a Binary Quiz Game (project), 110–112
main-secondary devices
I2C addressing, 338
SPI device connections, 346
MAX7219 LED driver IC. See also LedControl library
in Digital Stopwatch project, 158–160
and LED numeric display modules, 154–155, 160
Maxim DS3231 RTC module, 351–352
Mega 2560 (Arduino) board, 237–238
memory. See also EEPROM
memory card modules. See also SD card library
memory cards
formatting, 137
in GPS coordinates project, 286–288
writing data to (projects), 140–142, 142–144, 286–290, 360–365
message window area, 16
Microchip Technology
MCP4162 digital rheostat, 348–350
MCP23017 port expanders, 343–345
microcontrollers
Arduino, 11
ATmega328p-PU, 226–227, 229–230
comparison chart, 234
removing and inserting, 230–231
microfarads (µF), 51
micros()
function, 145
microSD card shields, 126, 127
microSD cards. See memory cards
milliamps (mA), 25
millis()
function, 145
Mini CNC Plotter (Michalis Vasilakis), 3–4
MISO (main in, secondary out) pin, 346
modulo functions, 120
MOSI (main out, secondary in) pin, 346
most significant bit (MSB), 104
MSB (most significant bit), 104
MSBFIRST
parameter, 109
multimeters, 28
Multiplying a Number by Two (project), 94–95
N
NC (normally closed) schematic symbol, 48
network cables, 369
New icon, 16
No-IP (redirection service), 369, 373
No Line Ending menu item, 94
NO (normally open) schematic symbol, 48
noInterrupts()
function, 150
not (!
) operator, 62
not equal (!=
) operator, 61
NPN-type transistors, 48
numeric data display. See also MAX7219 LED driver IC; seven-segment LED display modules
on LCD screens, 171
LED binary number project, 107–109
numeric keypads
in keypad-controlled lock project, 207–209
numeric keypads. See keypads
O
Ohm’s law, 30
Open icon, 16
open source hardware, 239
or (||
) operator, 63
oscilloscopes, 54
output enable pin, 108
P
picofarads (pF), 51
piezoelectric (piezo) elements
pinout, 40
pins
Arduino Uno, 12
ATmega328P-PU microcontroller IC, 229
graphic LCD modules, 174
I2C bus connectors, 338
keypads, 205
LED numeric displays, 155
memory card modules, 139
seven-segment display modules, 115–116
touchscreens, 212
pixels, 172
PMD Way
card readers, 327
EEPROM, 339
Ethernet shields, 367
IR modules, 316
LoRa shields, 299
port expanders, 343
RF Link modules, 291
RTC ICs, 351
PNP-type transistors, 48
polarization, 29
port forwarding, 373
port type, 17
power
defined, 25
resistor ratings, 28
power connector, 11
power sockets, 12
private:
section, 196
projects
parts list download, 5
planning, 24
Proto-ScrewShields, 356–357, 360
ProtoShields
about, 125
testing, 133
public:
section, 188
pull-down resistors, 55
pulse-width modulation. See PWM (pulse-width modulation)
push buttons
in controlling traffic project, 64–68
in wireless remote control project, 293–297
PWM (pulse-width modulation), 37–39, 250
Q
Q (transistor) schematic symbol, 48
R
R (resistance), 30
radio frequency (RF) modules. See RF Link modules
random()
function, 100
random numbers
real-time clock projects, 352–356, 356–359, 360–365
Recording the Position of a Moving Object over Time (project), 286–290
rectifier diodes
in schematic diagrams, 47
relays
about, 41
in schematic diagrams, 48
Remote Control projects
over LoRa wireless, 299–304, 304–309
with radio frequency transmitters, 293–298
remote monitoring projects, 369–373
Repeating with for
Loops (project), 36–37
RESET button, 13
reset power sockets, 12
resistance
in Ohm’s law (R), 30
resistors
pull-down, 55
in schematic diagrams, 47
RF Link modules
in wireless remote control projects, 293–298
RFID (radio-frequency identification)
operations, 325
RFID readers
connecting, 327
in projects, 328–330, 333–336, 360–365
RGB color tables, 175
rheostats. See digital rheostats
RISING
interrupt mode, 150
robot vehicle projects
building and controlling, 254–261, 321–324
detecting collisions, 262–266, 266–269, 269–271, 271–273, 273–275
rotational range, 242
RTC (real-time clock) IC modules. See also real-time clock projects
connecting, 352
using, 351
RX LED, 12
S
Save as menu item, 17
Save icon, 16
schematic diagrams
drawing application, 50
and ProtoShields, 128
SCK (serial clock) pin, 346
SCL (clock line), 338
SD card library sketches, 140–142, 142–144, 286–288, 361–364
SD card modules. See also memory card modules, 138
SD memory cards. See memory cards
SDA (data line), 338
seeds, 100
Seeing the Graphic Functions in Action (project), 179–181
Seeing the Text Functions in Action (project), 176–177
semicolon (;
), 18
Sending Remote Sensor Data Using LoRa Wireless (project), 309–314
Serial Monitor icon, 16
Serial Monitor window
debugging with, 92
serial ports
Arduino Uno pins, 12
software, 279
Serial.available()
function, 94, 150
Serial.begin()
function, 90
Serial.flush()
function, 95
Serial.print()
function, 90
Serial.println()
function, 90
SerialGSM library
download, 388
Servo library sketches, 243–244
servos
in analog thermometer project, 244–246
connecting, 243
Setting Up a Remote Control for Your Arduino (project), 375–379
Setting Up an SMS Remote Control (project), 390–393
setup()
function, 18
seven-segment LED display modules
in projects, 117–119, 119–122, 122–123
74HC595 shift register IC, 106–109
7805 linear voltage regulator, 224–225
Sharp infrared analog sensor, 266
shields. See also specific shields
custom building project, 129–133
shift registers
in LED binary display sketch, 109
pins, 108
schematic, 107
with seven-segment LED display modules, 115–116, 116–119, 119–122
signals, digital vs. analog, 69
SIM5320 shield, 382
Sketch menu item, 15
sketches. See also functions; libraries
comments in, 17
debugging, 92
modifying, 21
uploading and running, 20, 230–233
verifying, 20
SMS (short message service) text messaging, 382
software. See Arduino IDE (integrated development environment); libraries; sketches
software serial ports, 279
SoftwareSerial library
using, 279
in sketches, 282–283, 284–285, 286–288, 327–328, 329–330, 384–385, 387–388, 391–393
solderless breadboards. See breadboards
Sony TV remotes, 316–317, 318, 321
source (.cpp) files, 187, 188–189
SparkFun Electronics
RF Link modules, 291
SPI (Serial Peripheral Interface) bus, 337, 346–347
SPI data bus library sketches, 302, 304, 346–347, 349–350
SPI.begin()
, 347
SPI.setBitOrder()
, 347
SPI.transfer()
, 347
spreadsheets, 144
SRAM, 234
SS (secondary select) pin, 346
ST7735 TFT LCD module, 173–174, 181
stacking shields, 126, 127, 128
stall current, 247
stepper motor controller boards
stepper motors, 251
Stern, Becky, Wi-Fi Weather Display, 2–3
stopwatch projects, 146–149, 151–152, 158–160
String()
function, 176
strlen()
function, 297
surface-mount resistors, 27
switch case
statement, 206–207
T
Teleduino library download, 377
Teleduino service
using, 375
temperature-sensing and display projects
in custom library demonstration, 197–201
quick-read thermometer, 79–82, 86–89
temperature sensors. See TMP36 temperature sensor
terminal blocks, 252
terminal shields, 262
text displays, 170–171, 174–177
text messaging
using SMS, 382
TFT graphics LCD library sketches, 174–176, 176–178, 179–180
TFTscreen.background()
function, 174
TFTscreen.begin()
function, 174
TFTscreen.circle()
function, 178
TFTscreen.fill()
function, 178
TFTscreen.line()
function, 178
TFTscreen.nofill()
function, 178
TFTscreen.point()
function, 178
TFTscreen.rect()
function, 178
TFTscreen.setTextSize()
function, 175
TFTscreen.stroke()
function, 175
TFTscreen.text()
function, 175, 176
thermometer projects. See temperature-sensing and display projects
3G GSM shields
using, 382
time data. See also real-time clock projects; stopwatch projects
creating a GPS-based clock, 284–286
elapsed time recording, 144–146
TinyGPS library
download, 281
in sketches, 282–283, 284–285, 286–288
TinySine 3G GSM shields, 382
TIP120 Darlington transistor
TMP36 temperature sensor. See also temperature-sensing and display projects, 79–81, 82
toCharArray()
function, 176
tokens (Twitter), 373
torque, 242
touchscreens
addressing and mapping, 213–215, 218
connecting, 212
in touch switch projects, 215–218, 218–221
using, 211
transceivers, 298
transistors
Darlington, 247
in schematic diagrams, 48
transmitters and receivers (TX/RX)
in Freetronics Eleven board, 235
trimpots (aka trimmers), 76–77
true/false. See Boolean variables
Trying Out a Piezo Buzzer (project), 78–79
Twitter Arduino library
download, 373
Two-Wire Interface (TWI) bus. See I2C bus
TX LED, 12
U
ultrasonic distance sensors
in collision detection project, 273–275
connecting, 272
units of measure conversion charts, 51
Uno. See Arduino Uno
unsigned long
variable, 145
USB programming cables. See FTDI cables
USB (Universal Serial Bus) connector, 11, 12
USB (Universal Serial Bus) interface
uploading sketches with, 231–232
Using a Digital Rheostat (project), 348–350
Using an External EEPROM (project), 339–342
Using Interrupts (project), 151–152
Using LED Matrix Modules (project), 160–166
Using long
Variables (project), 95–97
Using a Port Expander IC (project), 343–345
V
variables
displaying contents of, 91
private, 196
public, 188
Vasilakis, Michalis, Mini CNC Plotter, 3–4
Verify
in IDE toolbar, 16
using, 20
Vermeulen, Oscar, KIM-1 emulator, 3
VirtualWire library
download, 293
Vishay TSOP4138 IR receiver, 316
void
function type, 86
voltage
and capacitors, 51
measurement, 25
in Ohm’s law (V), 30
W
W5100 controller chip, 367
web browsers, controlling Arduino from, 375–379
web pages
viewing, 373
while
statements, 93
Wi-Fi Weather Display (Becky Stern), 2–3
Windows
Arduino IDE installation, 7
Wire library sketches, 338–339, 341–342, 345, 353–355, 357–359, 361–364
Wire.begin()
function, 338
Wire.beginTransmission()
function, 339
Wire.endTransmission()
function, 339
Wire.read()
function, 339
Wire.requestFrom()
function, 339
Wire.write()
function, 339
wireless modules. See LoRa shields; RF Link modules
wires
Writing Data to the Memory Card (project), 140–142
Z
ZIP file creation
3.234.177.119