第1章 相关基础知识概述 1
1.1 嵌入式系统概述 1
1.2 Arduino概述 3
1.2.1 Arduino是什么 3
1.2.2 Arduino开发板分类 4
1.3 电子设计基础 5
1.3.1 电源和USB数据线 5
1.3.2 电路中信号的分类 6
1.3.3 常用元件简介 6
1.3.4 万用表 9
1.3.5 杜邦线 9
1.3.6 面包板 10
1.3.7 Arduino扩展板 10
1.3.8 模块 11
1.4 本章小结 12
第2章 Arduino软硬件开发基础 13
2.1 Arduino开发板 13
2.1.1 Arduino UNO 13
2.1.2 Arduino Mega 2560 17
2.2 Arduino软件开发环境IDE 20
2.2.1 IDE搭建 20
2.2.2 IDE详述 24
2.2.3 IDE的文件目录结构 29
2.3 Arduino软件开发流程 30
2.4 本章小结 32
第3章 Arduino编程 33
3.1 函数 33
3.1.1 时间函数 33
3.1.2 数学函数 35
3.1.3 字符函数 38
3.1.4 随机函数 40
3.1.5 位和字节函数 41
3.1.6 stream 42
3.2 常量和数据类型 42
3.2.1 常量 42
3.2.2 数据类型转换函数 44
3.2.3 变量数据类型 45
3.3 程序结构 52
3.4 控制语句 53
3.4.1 break语句 53
3.4.2 continue语句 53
3.4.3 do...while语句 54
3.4.4 while语句 54
3.4.5 if语句 54
3.4.6 if...else语句 55
3.4.7 for语句 56
3.4.8 goto语句 57
3.4.9 return语句 58
3.4.10 switch...case语句 58
3.4.11 其他语句和符号 59
3.5 运算符 61
3.5.1 算术运算符 61
3.5.2 关系运算符 64
3.5.3 逻辑运算符 66
3.5.4 位运算符 67
3.5.5 复合运算符 70
3.5.6 指针操作符 74
3.6 类库 74
3.7 自定义类库 76
3.8 本章小结 81
第4章 Arduino板的接口及其应用 82
4.1 数字接口及其应用 82
4.1.1 数字接口概述 82
4.1.2 数字I/O接口的封装函数 83
4.1.3 数字I/O接口的应用 86
4.2 模拟接口及其应用 87
4.2.1 模拟接口概述 87
4.2.2 模拟I/O接口的封装函数 88
4.2.3 模拟I/O接口的应用 90
4.3 串行通信接口及其应用 90
4.3.1 串行通信接口概述 91
4.3.2 串行通信接口的类库函数 91
4.3.3 串行通信接口的应用 98
4.4 I2C总线接口及应用 100
4.4.1 I2C总线概述 100
4.4.2 I2C总线的类库函数 100
4.4.3 I2C总线接口的应用 103
4.5 SPI接口及应用 110
4.5.1 SPI概述 110
4.5.2 SPI的类库函数 112
4.5.3 SPI接口的应用 114
4.6 外部中断接口及应用 116
4.6.1 外部中断概述 116
4.6.2 外部中断的函数 118
4.6.3 外部中断的应用 119
4.7 定时中断接口及其应用 120
4.7.1 定时中断概述 120
4.7.2 定时中断的类库函数 120
4.7.3 定时中断的应用 121
4.8 软件串口及其应用 121
4.8.1 软件串口概述 121
4.8.2 软件串口的类库函数 122
4.8.3 软件串口的应用 125
4.9 EEPROM及其应用 128
4.9.1 EEPROM概述 128
4.9.2 EEPROM的类库函数 128
4.9.3 EEPROM的应用 132
4.10 本章小结 133
第5章 Arduino人机界面及接口技术 134
5.1 Arduino与按键的接口技术 134
5.1.1 独立按键接口 134
5.1.2 矩阵按键接口 137
5.1.3 模拟量按键接口 140
5.2 Arduino与红外遥控器的接口技术 142
5.2.1 红外遥控器的工作原理 143
5.2.2 红外遥控器的类库函数 144
5.2.3 红外遥控器的应用实例 145
5.3 Arduino与数码管显示器的接口技术 147
5.3.1 数码管显示原理 147
5.3.2 数码管静态显示控制技术 149
5.3.3 数码管动态显示控制技术 150
5.3.4 数码管串行控制技术 151
5.4 Arduino与LED灯点阵模块的接口技术 154
5.4.1 LED灯点阵模块原理 154
5.4.2 LED灯点阵模块串行控制技术 155
5.4.3 LED灯点阵模块的应用实例 157
5.5 Arduino与LCD的接口技术 158
5.5.1 LCD的分类及特点 158
5.5.2 LCD1602模块概述 158
5.5.3 LCD1602的类库函数 162
5.5.4 LCD1602模块的应用实例 166
5.5.5 LCD串行控制接口技术 167
5.6 Arduino与语音模块的接口技术 168
5.6.1 语音识别模块概述 168
5.6.2 语音识别模块的类库函数 169
5.6.3 语音识别模块的应用实例 171
5.6.4 语音合成模块概述 172
5.6.5 语音合成模块的类库函数 173
5.6.6 语音合成模块的应用实例 177
5.7 本章小结 178
第6章 Arduino开发板常用模块及其应用 179
6.1 超声波测距 179
6.1.1 HC-SR04概述 179
6.1.2 HC-SR04的类库函数 180
6.1.3 HC-SR04的应用实例 181
6.2 蜂鸣器 182
6.2.1 蜂鸣器概述 183
6.2.2 蜂鸣器的应用实例 183
6.3 温湿度传感器 187
6.3.1 DHT11概述 187
6.3.2 DHT11的类库函数 189
6.3.3 DHT11的应用实例 189
6.4 直流电机 192
6.4.1 直流电机的调速原理 192
6.4.2 电位器和霍尔开关元件简介 192
6.4.3 直流电机转速控制及测量实例 194
6.5 步进电机 196
6.5.1 步进电机概述 197
6.5.2 步进电机的类库函数 200
6.5.3 步进电机的应用实例 201
6.6 舵机 204
6.6.1 舵机概述 205
6.6.2 舵机的类库函数 205
6.6.3 舵机的应用实例 207
6.7 SD卡读写模块 209
6.7.1 SD卡读写模块概述 210
6.7.2 SD卡的类库函数 211
6.7.3 SD卡读写模块的应用实例 217
6.8 RFID模块 221
6.8.1 RFID模块概述 221
6.8.2 RFID的类库函数 222
6.8.3 RFID模块的应用实例 223
6.9 日历时钟 226
6.9.1 日历时钟芯片PCF8563概述 226
6.9.2 PCF8563的应用实例 227
6.10 三色LED灯 232
6.10.1 三色LED灯概述 232
6.10.2 三色LED灯的应用实例 232
6.11 灰尘传感器 235
6.11.1 灰尘传感器GP2Y10概述 235
6.11.2 灰尘传感器的应用实例 236
6.12 颜色传感器 237
6.12.1 颜色传感器概述 237
6.12.2 颜色传感器的应用实例 239
6.13 水位传感器 245
6.13.1 水位传感器概述 245
6.13.2 水位传感器的应用实例 245
6.14 气体传感器 246
6.14.1 气体传感器模块概述 246
6.14.2 MQ-2烟雾传感器的测试实例 247
6.15 火焰传感器 249
6.15.1 火焰传感器模块概述 249
6.15.2 火焰传感器的测试实例 249
6.16 红外光电开关传感器 251
6.16.1 红外光电开关模块概述 251
6.16.2 红外光电开关模块的测试实例 252
6.17 红外人体感应传感器 252
6.17.1 红外人体感应模块概述 252
6.17.2 红外人体感应模块的测试实例 254
6.18 温度传感器DS18B20 255
6.18.1 单总线协议概述 255
6.18.2 OneWare的类库函数 257
6.18.3 DS18B20的应用实例 259
6.19 心率传感器 262
6.19.1 心率采集模块概述 263
6.19.2 心率采集模块的应用实例 265
6.20 空间运动传感器 268
6.20.1 陀螺仪和加速度传感器概述 268
6.20.2 MPU-6050的类库函数 270
6.20.3 卡尔曼滤波 275
6.21 继电器 277
6.21.1 继电器概述 277
6.21.2 继电器的应用实例 278
6.22 本章小结 280
第7章 Arduino常用通信模块及其应用 281
7.1 蓝牙通信模块 281
7.1.1 蓝牙串口模块概述 281
7.1.2 蓝牙串口模块HC-05 282
7.1.3 蓝牙模块的应用实例 288
7.2 ZigBee通信模块 291
7.2.1 XBee模块概述 291
7.2.2 XBee模块的通信模式 293
7.2.3 ZigBee网络设备类型 293
7.2.4 XBee模块的参数配置 294
7.2.5 API的帧格式测试 296
7.2.6 Arduino与XBee模块的接口及其应用 298
7.3 Wi-Fi通信模块 304
7.3.1 Wi-Fi通信模块概述 304
7.3.2 ESP-01S模块的参数配置 304
7.3.3 Onenet云平台简介 310
7.3.4 Wi-Fi模块的类库函数 311
7.3.5 Arduino与Wi-Fi模块的接口及应用 312
7.4 GSM/GPRS通信模块 317
7.4.1 GSM/GPRS模块概述 317
7.4.2 GSM/GPRS模块的调试及参数设置 318
7.4.3 Arduino与GSM/GPRS模块的接口及其应用 321
7.5 GPS定位模块 325
7.5.1 GPS定位模块概述 325
7.5.2 Arduino与GPS定位模块的接口及其应用 326
7.6 nRF24L01通信模块 331
7.6.1 nRF24L01通信模块概述 332
7.6.2 nRF24L01通信模块的类库函数 333
7.6.3 Arduino与nRF24L01模块的接口及应用 336
7.7 本章小结 338
第8章 Arduino嵌入式系统综合应用 339
8.1 倒车雷达 339
8.1.1 系统总体设计 339
8.1.2 系统硬件设计 339
8.1.3 系统软件设计 340
8.2 门禁系统 342
8.2.1 系统总体设计 342
8.2.2 系统硬件设计 342
8.2.3 系统软件设计 343
8.3 遥控小车 346
8.3.1 系统总体设计 346
8.3.2 系统硬件设计 347
8.3.3 系统软件设计 348
8.4 智能家居系统 351
8.4.1 系统总体设计 351
8.4.2 系统硬件设计 353
8.4.3 系统软件设计 353
8.5 MP3播放器 363
8.5.1 MP3音乐播放原理 364
8.5.2 MP3播放的类库函数 365
8.5.3 MP3播放器的设计 366
8.6 万年历 373
8.6.1 系统总体设计 373
8.6.2 系统硬件设计 373
8.6.3 PCF8563的类库函数 374
8.6.4 系统软件设计 375
8.7 本章小结 380