《Arduino程序设计基础》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:陈吕洲编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2014
  • ISBN:9787512413399
  • 页数:287 页
图书介绍:本书分3个部分。入门篇、实例篇、开发篇,内容见目录。本书由浅入深,详解介绍Arduino的使用与开发,并结合现今流行的Arduino,三大应用方向(机器人、互动媒体、物联网)做实例教学,开发篇为专业开发者提供开发指导。

第1章 初识Arduino 1

1.1什么是Arduino 1

1.2 Arduino的由来 4

1.3为什么使用Arduino作为开发平台 5

1.4 Arduino硬件——选择一款适合自己的Arduino控制器 6

1.4.1认识不同型号的Arduino控制器 6

1.4.2众多的Arduino外围模块 10

1.4.3从Arduino UNO开始 11

1.5 Arduino软件 13

1.5.1下载配置Arduino开发环境 13

1.5.2认识Arduino IDE 14

1.5.3安装Arduino驱动程序 16

1.6 Blink——Arduino的Hello World! 19

第2章 基础篇 24

2.1 Arduino语言及程序结构 24

2.1.1 Arduino语言 24

2.1.2 Arduino程序结构 25

2.2 C/C++语言基础 25

2.2.1数据类型 26

2.2.2运算符 27

2.2.3表达式 28

2.2.4数组 28

2.2.5字符串 29

2.2.6注释 29

2.2.7用流程图表示程序 30

2.2.8顺序结构 30

2.2.9选择结构 30

2.2.10循环结构 33

2.3电子元件和Arduino扩展模块 36

2.4传感器扩展板的使用 38

2.5 Arduino I/O的简单控制 39

2.5.1数字I/O的使用 39

2.5.2项目:人体感应灯(继电器模块与数字传感器) 50

2.5.3模拟I/O的使用 53

2.5.4项目:电子温度计 62

2.5.5数字传感器与模拟传感器的使用 64

2.6与计算机交流——串口的使用 66

2.6.1串口输出 66

2.6.2串口输入 68

2.6.3实验:串口控制开关灯 70

2.7时间控制函数 71

2.7.1运行时间函数 71

2.7.2延时函数 72

第3章I/O口高级应用 73

3.1调声函数 73

3.2项目:简易电子琴 77

3.3脉冲宽度测量函数及超声波测距 79

3.3.1脉冲宽度测量函数 79

3.3.2超声波测距 79

3.4设置ADC参考电压 83

3.5外部中断 83

3.5.1外部中断的使用 84

3.5.2实验:外部中断触发蜂鸣器报警 86

第4章 使用和编写类库 88

4.1编写并使用函数,提高程序的可读性 88

4.2使用Arduino类库 90

4.3编写Arduino类库 94

4.3.1编写头文件 94

4.3.2预处理命令 95

4.3.3宏定义 96

4.3.4文件包含 96

4.3.5条件编译 96

4.3.6版本兼容 97

4.3.7编写.cpp文件 97

4.3.8关键字高亮显示 98

4.3.9建立示例程序 99

4.4类库优化与发布 100

第5章 通信篇 101

5.1硬件串口通信——HardwareSerial类库的使用 101

5.1.1 HardwareSerial类库成员函数 103

5.1.2 print()和write()输出方式的差异 108

5.1.3 read()和peek()输入方式的差异 109

5.1.4串口读取字符串 111

5.1.5串口事件 112

5.1.6实验:串口控制RGB LED调光 114

5.1.7更好的串口监视器——串口调试助手 117

5.2软件模拟串口通信——SoftwareSerial类库的使用 117

5.2.1 SoftwareSerial类库的局限性 118

5.2.2 SoftwareSerial类库成员函数 118

5.2.3建立一个软串口通信 119

5.2.4实验: Arduino间的串口通信 119

5.2.5同时使用多个软串口 123

5.3 IIC总线的使用——Wire类库的使用 124

5.3.1 IIC主机、从机与引脚 124

5.3.2 Wire类库成员函数 125

5.3.3 IIC连接方法 127

5.3.4主机写数据,从机接收数据 128

5.3.5从机发送数据,主机读取数据 131

5.4 SPI总线的使用——SPI类库的使用 133

5.4.1 SPI引脚 134

5.4.2 SPI总线上的从设备选择 135

5.4.3 SPI类库成员函数 135

5.4.4 SPI总线上的数据发送与接收 137

5.4.5实验:使用数字电位器AD5206 137

5.4.6软件模拟SPI通信 141

5.4.7实验:使用74HC595扩展I/O口 142

第6章 存储篇 146

6.1断电也能保存数据——EEPROM类库的使用 146

6.1.1 EEPROM类库成员函数 146

6.1.2写入操作 147

6.1.3读取操作 148

6.1.4清除操作 149

6.1.5使用共用体存储各类型数据到EEPROM 150

6.2保存大量数据——SD卡类库的使用 152

6.2.1格式化SD卡 152

6.2.2 SD卡类库成员函数 152

6.2.3使用SD卡读/写模块 157

6.2.4创建文件 158

6.2.5删除文件 160

6.2.6写文件 162

6.2.7读文件 164

6.3项目:SD卡环境数据记录器 165

6.3.1 DHT11温湿度检测模块的使用 166

6.3.2硬件连接方法 166

6.3.3温湿度记录器 169

6.3.4在Excel中分析数据 171

第7章 无线通信篇——红外遥控 175

7.1 IRremote类库成员函数 176

7.2红外接收 178

7.3红外发射 181

7.4实验:遥控家电设备 182

第8章LCD显示篇 187

8.1 1602 LCD的使用——LiquidCrystal类库的使用 187

8.1.1将1602 LCD与Arduino连接 187

8.1.2 4位数据线接法 188

8.1.3 1602 LCD相关参数 189

8.1.4 LiquidCrystal类库成员函数 189

8.1.5实验:“hello, world!” 194

8.1.6实验:将串口输入数据显示到1602 LCD上 195

8.1.7实验:显示滚动效果 197

8.1.8实验:显示自定义字符 198

8.2项目:制作电子时钟 201

8.2.1 DS1307时钟模块的使用 202

8.2.2电子时钟 207

8.3图形显示器的使用——u8glib类库的使用 209

8.3.1选择LCD并连接到Arduino 209

8.3.2连接到Arduino并建立u8g对象 210

8.3.3 u8glib程序结构 210

8.3.4纯文本显示 211

8.3.5数据显示 212

8.3.6实验:绘制图形 214

8.3.7实验:显示图片——位图取模 215

第9章USB类库的使用 218

9.1 USB设备模拟相关函数 218

9.1.1 USB鼠标类的成员函数 218

9.1.2 USB键盘类的成员函数 220

9.2模拟键盘输入信息 222

9.2.1 Arduino Leonardo在模拟USB设备后,无法正常下载程序 224

9.2.2模拟键盘组合按键 224

9.3实验:使用摇杆模块控制计算机鼠标 227

9.4项目:PPT播放遥控器 230

第10章Ethernet类库的使用 233

10.1 Ethernet相关硬件介绍 233

10.2 Ethernet类库 237

10.2.1 Ethernet类 237

10.2.2 IPAddress类 238

10.2.3 EthernetServer类 238

10.2.4 EthernetClient类 240

10.3 Ethernet的初始化 243

10.3.1自定义IP地址 243

10.3.2 DHCP获取IP地址 243

10.4通过Telnet建立简易聊天室 244

10.4.1建立Arduino Telnet聊天服务器 245

10.4.2 Windows Telnet客户端的使用 246

10.5 Ethernet与Web应用 248

10.5.1 HTTP协议简介 248

10.5.2 HTTP响应 250

10.5.3网页客户端 251

10.5.4网页服务器 253

10.6 UDP通信 256

10.6.1 EthernetUDP类 256

10.6.2使用UDP收/发数据 258

10.7项目:网页控制Arduino 260

附录 266

A.1使用专业IDE编写Arduino项目 266

A.2常见问题及解决方法 268

A.3 Arduino Leonardo手册 272

A.4 Arduino Due手册 276

A.5 ASCII码对照表 281

A.6串口通信可用的config配置 284

A.7 USB键盘库支持的键盘功能按键列表 285

参考文献 287