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 MCUIC介绍 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 DigitalOutput设置Pin的输出——霹雳灯示例 42
5.2 DigitalInput——读取按钮信号数值code 45
6 Analog模拟 48
6.1 Analog Input——读取可变电阻的数据 48
6.2 AnalogOutput的输出,示例LED的明暗控制 51
7 UART、Serial RX/TX——TTL、RS232传输数据 54
7.1 UART通信 54
7.2 UART的数据传递 55
7.2.1 通过UART显示数据到SerialMonito——除错功能 55
7.2.2 通过UART在两个Arduino之间传递数据 57
8 PWM脉冲宽度调制 61
8.1 PWM脉冲宽度调制 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 1ong长字符 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() 166
11.9 特殊函数库 168
11.10 开发自己专属的函数库和设计自己的函数 173
11.10.1 设计函数 173
11.10.2 设计函数库 175
11.10.3 使用函数库 178
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
实验:控制Servo步进马达旋转角度 202
12.7 游戏杆 206
实验:游戏杆动作 206
12.8 一氧化碳传感器 208
实验:一氧化碳浓度警报器 210
12.9 超声波距离传感器 213
12.9.1 实验1 尺寸测量器(3个引脚的超声波距离传感器) 213
12.9.2 实验2 倒车警告器(4个引脚的超声波距离传感器) 217
12.10 火焰传感器 220
实验:防火警报器 222
12.11 一氧化碳/瓦斯传感器/烟雾传感器 226
实验:烟雾警报器 227
12.12 红外线运动传感器 231
实验:小偷监测警报系统 232
12.13 继电器 235
实验:继电器110V自动控制家电开关 236
12.14 七段式数字号码LED 239
实验:数字显示定时器 240
12.15 土壤湿度传感器 243
实验:植物也吵着要水喝 244
12.16 数字键盘 246
实验:数字键盘的按键反应 247
12.17 声音监测器 250
实验:拍手开灯 250
12.18 温度计和湿度计二合一的传感器DHT1 1 254
12.19 酒精测试器 258
12.20 DC马达 261
实验:可以控制转速的马达 262
12.21 8×8 LED 263
8×8 LED和IC Max7219 271
12.22 颜色测试器 278
12.23 FM收音机 283
实验:收音机 283
12.24 蓝色背光液晶模块LCD 2×16面板 285
实验:数据显示面板 286
12.25 RFID读卡器 289
实验:显示RFID卡片里的数据 289
12.26 SD读卡器 294
12.2 6.1 实验:显示SD卡片文件名、容量 295
12.2 6.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 与其他程序语言交互——Arduirno与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
实验:两个XBee交换数据 383
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综合实验 408
15.1 音乐播放 408
15.1.1 实验:利用Tone和Pitch播放音乐 408
15.1.2 实验:加上功率放大器播放音乐 410
15.1.3 实验:mp3播放器 412
15.2 计算按钮按下的时间 417
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