1 简介篇 1
1.1 什么是Arduino 1
1.2 Arduino的特色 1
1.3 Arduino历史 2
1.4 Arduino相关网站 4
2 Arduino硬件介绍 5
2.1 Arduino硬件介绍 5
2.2 Arduino硬件外观 8
2.2.1 Arduino硬件 8
2.2.2 Arduino外接板 12
2.3 自制Arduino板子 14
2.4 Arduino MCU IC介绍 18
2.4.1 ATMega8 18
2.4.2 ATMega168 19
2.5 相关网站介绍 20
2.5.1 画硬件电路图Fritzing 20
2.5.2 本书博客与讨论区 20
3 Arduino开发环境介绍 21
3.1 Arduino软件 21
3.1.1 安装Arduino 22
3.1.2 安装Arduino的Windows驱动程序 23
3.2 用Eclipse写Arduino 27
3.3 Arduino 汉化设置 27
4 我的第一个Arduino 29
4.1 面包板怎么接 29
4.2 Arduino上的第一个程序:LED闪烁 30
4.3 确认你的程序是否编译成功 34
4.4 烧录I/O Board 34
4.5 了解我的第一个Arduino程序 35
5 Digital数字输入与输出 42
5.1 Digital Output设置Pin的输出――霹雳灯示例 42
5.2 Digital Input――读取按钮信号数值code 45
6 Analog模拟 48
6.1 Ana logInput――读取可变电阻的数据 48
6.2 Analog Output的输出,示例LED的明暗控制 51
7 UART、Serial RX/TX――TTL、RS232传输数据 54
7.1 UART的数据传递 55
7.1.1 通过UART显示数据到Serial Monitor――除错功能 55
7.1.2 通过UART在两个Arduino之间相互传递数据 57
8 PWM脉冲宽度调制 61
8.1 PWM Output 62
8.2 PWM通过DigitalWrite达成效果 63
9 Pulse脉冲 65
9.1 pulseIn(pin,state,timeout) 65
9.2 pulseIn示例――查用户多久没有按下按钮 65
10 SPI 68
10.1 SPI介绍 68
10.1.1 SPI接口数据传输 68
10.1.2 SPI类及其成员函数 69
10.2 SPI示例程序――主从端Master 70
10.3 SPI示例程序――被控制端Master 75
11 Arduino函数 81
11.1 输入/输出函数 81
11.1.1 pinMode(pin,mode) 81
11.1.2 digitalWrite(pin,value) 81
11.1.3 digitalRead(pin) 82
11.1.4 analogRead(pin) 82
11.1.5 analogWrite(pin,value) 82
11.1.6 analogReference(mode)模拟参考 83
11.1.7 shiftOut(dataPin,clockPin,bitOrder,val) 84
11.2 数据类型datatype 86
11.2.1 int整数 86
11.2.2 float浮点数 87
11.2.3 char字符 89
11.2.4 String字符串 91
11.2.5 byte字符组 93
11.2.6 long长字符 95
11.2.7 word 96
11.2.8 boolean布尔代数 98
11.2.9 short 100
11.2.10 unsigned char、unsigned int、unsigned long 101
11.3 时间 103
11.3.1 millis() 103
11.3.2 delay(ms) 104
11.3.3 delayMicroseconds(us) 105
11.4 数学 107
11.4.1 min(x,y) 107
11.4.2 max(x,y) 108
11.4.3 abs(x) 109
11.4.4 constrain(amt,low,high) 110
11.4.5 map(x,in_min,in_max,out_min,out_max) 111
11.5 逻辑流程控制 112
11.5.1 if...else条件判断语句 112
11.5.2 switch...case条件判断语句 115
11.5.3 for循环语法 116
11.5.4 while循环语法 118
11.5.5 do....while循环语法 119
11.5.6 Array,实验:霹雳灯 120
11.6 中断函数 123
11.6.1 attachInterrupt(interrupt,function,mode),实验:按键计数器 123
11.6.2 interrupts()使用中断函数和noInterrupts()停止中断函数 126
11.7 字符串处理函数String 128
11.7.1 String对象 128
11.7.2 charAt() 130
11.7.3 compareTo() 132
11.7.4 concat() 136
11.7.5 endsWith() 137
11.7.6 equals(),equalsIgnoreCase() 139
11.7.7 getBytes() 141
11.7.8 indexOf() 142
11.7.9 lastIndexOf() 144
11.7.10 length() 146
11.7.11 replace() 147
11.7.12 setCharAt() 149
11.7.13 startsWith() 150
11.7.14 substring() 152
11.7.15 toCharArray() 153
11.7.16 toInt() 155
11.7.17 toLowerCase() 157
11.7.18 toUpperCase() 158
11.7.19 trim() 160
11.8 串行端口通信 161
11.8.1 Serial.begin(baud) 162
11.8.2 Serial.print()和Serial.println() 163
11.8.3 Serial.available()和Serial.read() 165
11.9 特殊函数库 168
11.10 开发自己专属的函数库和设计自己的函数 172
11.10.1 设计函数 172
11.10.2 设计函数库 175
11.10.3 使用函数库 177
12 Arduino与其他的传感器 180
12.1 水银开关读取 180
12.2 光敏电阻――实验小夜灯 182
12.3 晶体管 185
12.3.1 NPN晶体管――NPN与DC直流马达 185
12.3.2 PNP晶体管―― PNP与DC直流马达 187
12.4 湿度传感器 190
12.5 温度传感器 194
12.5.1 实验:温度计 196
12.5.2 实验:冰热温度显示杯 198
12.6 Servo步进马达 201
12.7 游戏杆 206
12.8 一氧化碳传感器 208
12.9 超声波距离传感器 213
12.9.1 实验1 尺寸测量器(3个引脚的超声波距离传感器) 213
12.9.2 实验2 倒车警告器(4个引脚的超声波距离传感器) 217
12.10 火焰传感器 220
12.11 一氧化碳/瓦斯传感器/烟雾传感器 226
12.12 红外线运动传感器 231
12.13 继电器 235
12.14 七段式数字号码LED 239
12.15 土壤湿度传感器 243
12.16 数字键盘 246
12.17 声音监测器 250
12.18 温度计和湿度计二合一的传感器DHT11 254
12.19 酒精测试器 258
12.20 DC 马达 261
12.21 8×8 LED 263
12.22 颜色测试器 278
12.23 FM收音机 283
12.24 蓝色背光液晶模块LCD 2×16面板 286
12.25 RFID卡片阅读器 289
12.26 SD读卡器 294
12.26.1 实验:显示SD卡片文件名、容量 295
12.26.2 实验:使用SD卡片储存和读取数据 300
12.27 ADXL345 三轴重力加速度/倾斜角度模块 304
12.28 三轴磁场传感器――指南针 309
13 通 信 315
13.1 遥控器 315
13.1.1 读取遥控器送来的数据 316
13.1.2 把Arduino 当遥控器 319
13.2 与个人计算机传递数据 324
13.2.1 PC与Arduino 互传数据――USB线 325
13.2.2 PC与Arduino互传数据――RS232 329
13.2.3 与其他程序语言交互――Arduino与Processing沟通 337
13.2.4 与其他程序语言交互――Arduino与Unity沟通 342
13.2.5 与其他程序语言交互――Arduino与Java互传数据 345
13.2.6 与其他程序语言交互――Scratch 352
13.2.7 与其他程序语言交互――ardublock 354
13.2.8 与其他程序语言交互――Flash连接 355
13.3 MIDI 364
13.4 网络Ethernet 368
13.4.1 实验:读取网页数据 369
13.4.2 抓取Yahoo的天气数据 372
13.4.3 Web Server――成为网页服务器 377
13.5 ZigBee/XBee 382
13.6 蓝牙 386
13.6.1 蓝牙JY-MCU 389
13.6.2 设定修改蓝牙速度 392
13.6.3 修改蓝牙设备名称 396
13.6.4 修改配对密码; 397
13.7 RF 433MHz 398
14 Arduino与IC实验 404
14.1 74HC 595――延伸出多个引脚 404
14.2 LM 393――比较A引脚和B引脚哪个大 406
15 Arduino 综合实验 409
15.1 音乐播放 409
15.1.1 实验:利用Tone和Pitch播放音乐 409
15.1.2 实验:加上功率放大器播放音乐 411
15.1.3 实验:mp3播放器 413
15.2 计算按钮按下的时间 418
16 Android手机与Arduino 连接――移动物联网 419
16.1 Arduino USB Host 419
16.2 使用蓝牙将Arduino和Android连接 432
16.3 Android与Arduino连接――通过Android IOIO 445
16.3.1 Android IOIO介绍 445
16.3.2 Android IOIO初次安装设定 447
16.3.3 Android IOIO实验 449
16.4 Android与Arduino连接――直接连接 453
16.5 iOS与Arduino连接――通过蓝牙4.0BLE 463
——李寅 北京青橙创客教育CEO
作为一个STEM和创客领域在K12阶段的践行者,我们发现Arduino无疑是K12阶段非常好的一款产品,《Arduino完全实战》就是我们一直在寻找的那本配套教材。全书用具体的案例带着大家由浅入深地了解Arduino,通过实际的案例,图文并茂地进行讲解,让不懂技术的初学者也能够轻松掌握。
——刘斌立 北京寓乐湾创始人兼CEO
Arduino如今已成为了学习微控制器的*选,结合它的各种开源模块,让创客们大到80岁小到6岁都能坐在电脑前实现各种“智能”的创意产品。本书的*大价值是完整和实用性,通过Arduino硬件、开发环境、软件函数、系统应用等多层面让读者能够迅速掌握实现过程,通过数模IO接口、传感器、通信、物联网等多层次应用让读者能够灵活应用Arduino小巧却强大的控制特性。本书帮助读者快速从入门到精通,实为不可或缺的好书。
——韩泽耀 博士 上海慕客信首席技术官