第1章 起步 1
1.1可能性是无限的 2
1.2数字的力量 5
1.3元件和附件 6
1.4所需的软件 7
1.4.1 Mac OS X 7
1.4.2 Windows XP及后续版本 11
1.4.3 Ubuntu Linux 9.04及后续版本 14
1.5安全 17
1.6展望 17
第2章 探索Arduino板和I DE 18
2.1 Arduino板 18
2.2看一下Arduino IDE 23
2.2.1命令区 23
2.2.2文字区 24
2.2.3消息窗口区 25
2.3在IDE里创建第一个程序 25
2.3.1注释 25
2.3.2 setup函数 26
2.3.3控制硬件 26
2.3.4 loop函数 27
2.3.5检查程序 28
2.3.6上传和运行程序 29
2.3.7修改程序 29
2.4展望 30
第3章 第一步 31
3.1规划作品 32
3.2关于电 32
3.2.1电流 33
3.2.2电压 33
3.2.3功率 33
3.3电子元件 33
3.3.1电阻 33
3.3.2发光二极管 36
3.3.3面包板 38
3.4作品1:做出闪烁的LED波 39
3.4.1算法 40
3.4.2元件 40
3.4.3程序 40
3.4.4电路 41
3.4.5运行程序 42
3.5使用变量 42
3.6作品2:用for循环做重复动作 43
3.7用脉冲宽度调制变化LED的亮度 44
3.8作品3:演示PWM 45
3.9更多的电子元件 46
3.9.1晶体管 46
3.9.2整流二极管 47
3.9.3继电器 47
3.10高压电路 48
3.11展望 49
第4章 构建模块 50
4.1使用电路图 51
4.1.1识别元件 51
4.1.2电路图中的线 54
4.1.3剖析电路图 55
4.2电容 56
4.2.1测量电容的容量 56
4.2.2读电容值 56
4.2.3电容的分类 57
4.2.4数字输入 58
4.3作品4:演示数字输入 59
4.3.1算法 59
4.3.2元件 60
4.3.3电路图 60
4.3.4程序 64
4.3.5修改程序 65
4.3.6理解程序 65
4.3.7用#define定义常数 65
4.3.8读数字输入引脚 65
4.3.9用if做决策 65
4.3.10用if-then-else做更多的决策 66
4.4布尔变量 67
4.4.1逻辑运算符 67
4.4.2做两个或更多的比较 68
4.5作品5:控制交通 68
4.5.1目标 69
4.5.2算法 69
4.5.3元件 69
4.5.4电路图 70
4.5.5程序 71
4.5.6运行程序 73
4.6模拟与数字信号的对比 73
4.7作品6:做一个单节电池测试仪 75
4.7.1目标 75
4.7.2算法 75
4.7.3元件 76
4.7.4电路图 76
4.7.5程序 77
4.8用Arduino做算术 78
4.8.1浮点变量 78
4.8.2数值的比较运算符 79
4.9用参考电压改进模拟测量精度 79
4.9.1用外部参考电压 79
4.9.2使用内部参考电压 80
4.10可变电阻 81
4.11压电蜂鸣器 82
4.12作品7:试试压电蜂鸣器 83
4.13作品8:做一个易读的温度计 84
4.13.1目标 85
4.13.2元件 85
4.13.3电路图 85
4.13.4程序 86
4.13.5程序创新 87
4.14展望 88
第5章 使用函数 89
5.1作品9:创建一个函数来反复执行 90
5.2作品10:创建一个能设置闪烁次数的函数 91
5.3创建一个返回值的函数 92
5.4作品11:做一个闪烁表示温度的快读温度计 92
5.4.1元件 93
5.4.2电路图 93
5.4.3程序 93
5.5在串口监视器中显示Arduino传来的数据 95
5.6作品12:在串口监视器显示温度 97
5.7用while语句做循环 98
5.8从串口监视器发送数据到Arduino 99
5.9作品13:把一个数乘以2 99
5.10 long变量 101
5.11作品14:使用long变量 101
5.12展望 102
第6章 数字、变量和算术 103
6.1产生随机数 104
6.2作品15:做一个电子骰子 105
6.2.1元件 106
6.2.2电路图 106
6.2.3程序 107
6.2.4修改程序 108
6.3二进制快速入门 108
6.4用移位寄存器扩展数字输出 110
6.5作品16:做一个LED二进制显示器 111
6.5.1元件 111
6.5.2连接74HC595 111
6.5.3程序 112
6.6作品17:做一个二进制测验游戏 113
6.6.1算法 114
6.6.2程序 114
6.7数组 116
6.7.1定义数组 116
6.7.2访问数组单元 117
6.7.3读写数组 117
6.8 7段数码管 118
6.9作品18:做单个数字的显示 120
6.9.1元件 120
6.9.2电路 120
6.9.3程序 121
6.9.4显示两位数字 122
6.10作品19:控制两个7段数码管 122
6.10.1元件 123
6.10.2电路图 123
6.10.3取模 124
6.11作品20:做一个数字温度计 125
6.11.1硬件 125
6.11.2程序 125
6.12 LED矩阵显示模块 126
6.12.1 LED矩阵电路图 127
6.12.2连线 128
6.13位运算 130
6.13.1按位与运算 130
6.13.2按位或运算 130
6.13.3按位异或运算 131
6.13.4按位取反(非)运算 131
6.13.5按位左移和右移 131
6.14作品21:做一个LED矩阵 132
6.15作品22:在LED矩阵上创建图像 133
6.16作品23:在LED矩阵上显示图像 135
6.17作品24:在LED矩阵上显示动画 136
6.18展望 137
第7章 液晶显示器 138
7.1字符LCD模块 139
7.1.1在程序中使用字符LCD 140
7.1.2显示文字 141
7.1.3显示数字变量的值 141
7.2作品25:定义定制字符 142
7.3图形LCD模块 144
7.3.1连接图形LCD 145
7.3.2使用LCD 145
7.3.3控制显示器 146
7.4作品26:文本显示的效果 146
7.4.1作出更复杂的显示效果 147
7.5作品27:做一个温度历史监视器 148
7.5.1算法 148
7.5.2硬件 148
7.5.3程序 149
7.5.4结果 150
7.5.5修改程序 151
7.6展望 151
第8章 扩展Arduino 152
8.1盾板 153
8.2原型盾板 154
8.3作品28:做一块8个LED的定制盾板 155
8.3.1元件 155
8.3.2电路图 155
8.3.3原型盾板的布局 156
8.3.4设计 157
8.3.5焊元件 158
8.3.6修改定制盾板 159
8.4用库扩展程序 159
8.5 microSD内存卡 164
8.6作品29:向内存卡写数据 165
8.7作品30:做一个温度记录仪 167
8.7.1硬件 167
8.7.2程序 168
8.8用millis()和micros()做定时 170
8.9作品31:做一个秒表 171
8.9.1元件 171
8.9.2电路图 172
8.9.3程序 172
8.10中断 174
8.10.1中断模式 175
8.10.2配置中断 175
8.10.3启用或禁止中断 175
8.11作品32:使用中断 175
8.12展望 177
第9章 数字键盘 178
9.1使用数字键盘 178
9.1.1小键盘接线 179
9.1.2给小键盘编程 179
9.1.3测试程序 180
9.2用switch-case做决策 181
9.3作品33:做一个小键盘控制的锁 181
9.3.1程序 182
9.3.2工作原理 183
9.3.3测试程序 184
9.4展望 184
第10章 用触摸屏获得用户输入 185
10.1触摸屏 185
10.2作品34:触摸屏上的定位 186
10.2.1硬件 187
10.2.2程序 187
10.2.3测试程序 188
10.2.4触摸屏上的坐标 189
10.3作品35:做一个两区域触摸开关 189
10.3.1程序 190
10.3.2工作原理 191
10.3.3测试程序 191
10.4作品36:做一个三区域触摸开关 192
10.4.1触摸屏坐标系 192
10.4.2程序 192
10.4.3工作原理 194
10.5展望 194
第11章 认识Arduino系列 195
11.1作品37:在面包板上做自己的Arduino 196
11.1.1元件 196
11.1.2电路图 199
11.1.3运行测试程序 201
11.2众多的Arduino板 204
11.2.1 Arduino Uno 205
11.2.2 Freetronics Eleven 205
11.2.3 Freeduino 206
11.2.4 Boarduino 207
11.2.5 Arduino Nano 207
11.2.6 Arduino LilyPad 208
11.2.7 Arduino Mega 2560 208
11.2.8 Freetronics的EtherMega 209
11.2.9 Arduino Due 209
11.3展望 211
第12章 电机和运动 212
12.1用伺服电机做轻量动作 212
12.1.1选择伺服电机 213
12.1.2连接伺服电机 214
12.1.3使伺服电机工作 214
12.2作品38:做一个指针式的温度计 215
12.2.1元件 215
12.2.2电路图 215
12.2.3程序 216
12.3使用电动机 218
12.4作品39:控制电机 219
12.4.1元件 219
12.4.2电路图 220
12.4.3程序 221
12.5作品40:搭建并控制一个坦克机器人 222
12.5.1元件 222
12.5.2电路图 224
12.5.3程序 227
12.6碰撞检测 229
12.7作品41:用微动开关检测坦克底盘的碰撞 229
12.7.1电路图 230
12.7.2程序 230
12.8红外距离传感器 232
12.8.1连线 233
12.8.2测试红外距离传感器 233
12.9作品42:用红外距离传感器检测坦克底盘的碰撞 235
12.10超声波距离传感器 237
12.10.1连接超声波传感器 237
12.10.2使用超声波传感器 238
12.10.3测试超声波距离传感器 238
12.11作品43:用超声波距离传感器检测坦克底盘的碰撞 240
12.12展望 242
第13章 用Arduino接GPS 243
13.1什么是GPS 244
13.2测试GPS盾板 245
13.3作品44:做一个简易GPS接收机 247
13.3.1元件 247
13.3.2程序 247
13.3.3在LCD上显示位置 248
13.4作品45:做一个精确的基于GPS的钟 249
13.4.1元件 249
13.4.2程序 249
13.5作品46:随时间变化记录物体移动的位置 251
13.5.1元件 251
13.5.2程序 251
13.5.3在地图上显示位置 253
13.6展望 255
第14章 无线数据通信 256
14.1使用低成本无线模块 256
14.2作品47:做一个无线遥控器 258
14.2.1发射机电路的元件 258
14.2.2发射机电路图 258
14.2.3接收机电路的元件 259
14.2.4接收机的电路图 260
14.2.5发射机程序 261
14.2.6接收机程序 262
14.3用XBee无线数据模块来实现更大的范围和更快的速度 263
14.4作品48:用XBee发送数据 264
14.4.1程序 265
14.4.2设置计算机来接收数据 265
14.5作品49:做一个遥测温度计 266
14.5.1元件 267
14.5.2布局 267
14.5.3程序 268
14.5.4运作 269
14.6展望 270
第15章 红外遥控 271
15.1什么是红外 271
15.2准备红外器件 272
15.2.1红外接收器 272
15.2.2遥控器 273
15.2.3测试程序 273
15.2.4测量连接 274
15.3作品50:做一个红外遥控的Arduino 275
15.3.1元件 275
15.3.2程序 275
15.3.3扩展程序 276
15.4作品51:做一辆红外遥控的坦克 277
15.4.1元件 277
15.4.2程序 277
15.5展望 279
第16章 读RFID标签 280
16.1在RFID卡内部 281
16.2测试硬件 282
16.2.1电路图 282
16.2.2测试电路图 282
16.3作品52:做一个简易RFID控制系统 284
16.3.1程序 284
16.3.2工作原理 285
16.4在Arduino内置的EEPROM里保存数据 286
16.5作品53:做一个能记住上次动作的RFID控制器 288
16.5.1程序 288
16.5.2工作原理 290
16.6展望 291
第17章 数据总线 292
17.1 I2C总线 293
17.2作品54:使用外部的EEPROM 294
17.2.1元件 294
17.2.2电路图 295
17.2.3程序 296
17.2.4结果 297
17.3作品55:使用端口扩展集成电路 298
17.3.1元件 298
17.3.2电路图 298
17.3.3程序 300
17.4 SPI总线 301
17.4.1引脚连接 301
17.4.2实现SPI 302
17.4.3向SPI器件发送数据 302
17.5作品56:使用数字变阻器 303
17.5.1元件 303
17.5.2电路图 304
17.5.3程序 305
17.6展望 306
第18章 真实时钟 307
18.1连接RTC模块 308
18.2作品57:用RTC来得到和显示时间 308
18.2.1元件 308
18.2.2程序 309
18.2.3工作原理 311
18.3作品58:做一个简易数字钟 312
18.3.1元件 312
18.3.2程序 313
18.3.3工作原理和结果 316
18.4作品59:做一个RFID打卡机 316
18.4.1元件 316
18.4.2程序 317
18.4.3工作原理 321
18.5展望 322
第19章 互联网 323
19.1需要什么 323
19.2作品60:做一个远程监控站 325
19.2.1元件 325
19.2.2程序 325
19.2.3查找错误 328
19.2.4工作原理 328
19.3作品61:做一个Arduino推特机 329
19.3.1元件 329
19.3.2程序 329
19.4从Web控制Arduino 331
19.5作品62:建立对Arduino的遥控 331
19.5.1元件 332
19.5.2程序 333
19.5.3远程控制你的Arduino 333
19.6展望 335
第20章 手机通信 336
20.1硬件 337
20.1.1准备电源盾板 338
20.1.2硬件配置和测试 339
20.1.3改变工作频率 340
20.2作品63:做一个Arduino拨号器 342
20.2.1元件 342
20.2.2电路图 343
20.2.3程序 343
20.2.4工作原理 344
20.3作品64:做一个Arduino短信机 345
20.3.1程序 345
20.3.2工作原理 346
20.4作品65:建立一个短信遥控装置 346
20.4.1元件 347
20.4.2电路图 347
20.4.3程序 348
20.4.4工作原理 349
20.5展望 350