《Arduino程序设计基础》目录

0
846

 

第1章              初识Arduino. 1

1.1             什么是Arduino?… 1

1.2             Arduino的由来… 3

1.3             为什么使用Arduino做开发平台… 4

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

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

1.4.2         众多的Arduino外围模块… 10

1.4.3         从Arduino UNO开始… 12

1.5             Arduino软件… 15

1.5.1         下载配置Arduino开发环境… 15

1.5.2         认识Arduino IDE. 15

1.5.3         安装Arduino驱动程序… 18

1.6             Blink——Arduino的Hello world!… 21

第2章              基础篇… 26

2.1             Arduino语言… 26

2.1.1         Arduino程序结构… 26

2.2             C\C++语言基础… 27

2.2.1         数据类型… 27

2.2.2         运算符与表达式… 29

2.2.3         表达式… 29

2.2.4         数组… 29

2.2.5         字符串… 30

2.2.6         注释… 30

2.2.7         用流程图来表示你的程序… 31

2.2.8         顺序结构… 31

2.2.9         选择结构… 31

2.2.10       循环结构… 34

2.3             电子元件和Arduino扩展模块… 37

2.4             传感器扩展板的使用… 40

2.5             Arduino I/O的简单控制… 41

2.5.1         数字I/O的使用… 41

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

2.5.3         模拟I/O的使用… 57

2.5.4         项目:电子温度计… 66

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

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

2.6.1         串口输出… 72

2.6.2         串口输入… 73

2.6.3         实验:串口控制开关灯… 76

2.7             时间控制函数… 77

2.7.1         运行时间函数… 77

2.7.2         延时函数… 78

第3章              I/O口高级应用… 79

3.1             调声函数… 79

3.1.1         蜂鸣器发声… 80

3.2             项目:简易电子琴… 83

3.3             脉冲宽度测量函数… 85

3.3.1         超声波测距… 85

3.4             设置ADC参考电压… 89

3.5             外部中断… 90

3.5.1         外部中断的使用… 90

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

第4章              使用和编写类库… 94

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

4.2             使用Arduino类库… 96

4.3             编写Arduino类库… 100

4.3.1         编写头文件… 100

4.3.2         预处理命令… 101

4.3.3         宏定义… 102

4.3.4         文件包含… 102

4.3.5         条件编译… 102

4.3.6         版本兼容… 102

4.3.7         编写.cpp文件… 103

4.3.8         关键字高亮显示… 104

4.3.9         建立示例程序… 105

4.4             类库优化与发布… 106

第5章              通信篇… 107

5.1             硬件串口通信——HardwareSerial的使用… 107

5.1.1         HardwareSerial类成员函数… 110

5.1.2         print和write输出方式的差异… 114

5.1.3         read和peek输入方式的差异… 116

5.1.4         串口读取字符串… 118

5.1.5         串口事件… 120

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

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

5.2             软件模拟串口通信——SoftwareSerial库的使用… 126

5.2.1         SoftwareSerial库的局限性… 126

5.2.2         SoftwareSerial类成员函数… 126

5.2.3         建立一个软串口通信… 127

5.2.4         实验:Arduino间的串口通信… 128

5.2.5         同时使用多个软串口… 132

5.3             IIC总线的使用——Wire库的使用… 133

5.3.1         IIC主机、从机与引脚… 133

5.3.2         Wire类库成员函数… 134

5.3.3         IIC连接方法… 137

5.3.4         主机写数据,从机接收数据… 138

5.3.5         从机发送数据,主机读取数据… 140

SPI库的使用… 144

5.3.6         SPI引脚… 144

5.3.7         SPI总线上的从设备选择… 145

5.3.8         SPI类库的成员函数… 145

5.3.9         SPI总线上的数据发送与接收… 147

5.3.10       实验:使用数字电位器AD5206. 147

5.3.11       软件模拟SPI通信… 151

5.3.12       实验:使用74HC595扩展I/O口… 152

第6章              存储篇… 157

6.1             断电也能保存数据——EEPROM库的使用… 157

6.1.1         EEPROM类的成员函数… 157

6.1.2         写入操作… 158

6.1.3         读取操作… 159

6.1.4         清除操作… 160

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

SD卡库的使用… 164

6.1.6         格式化SD卡… 164

6.1.7         SD库的成员函数… 165

6.1.8         使用SD卡读写模块… 171

6.1.9         创建文件… 172

6.1.10       删除文件… 174

6.1.11       写文件… 176

6.1.12       读文件… 178

6.2             项目:SD卡环境数据记录器… 181

6.2.1         DHT11温湿度检测模块的使用… 181

6.2.2         硬件连接方法… 182

6.2.3         温湿度记录器… 184

6.2.4         在Excel中分析数据… 187

第7章              无线通信篇… 191

7.1             红外遥控… 191

7.1.1         IRremote库成员函数… 192

7.1.2         红外接收… 195

7.1.3         红外发射… 198

7.1.4         实验:遥控家电设备… 199

第8章              LCD显示篇… 204

8.1             1602 LCD的使用(LiquidCrystal类库的使用)… 204

8.1.1         将1602 LCD连接到Arduino. 204

8.1.2         4位数据线接法… 205

8.1.3         1602 LCD相关参数… 207

8.1.4         LiquidCrystal类的成员函数… 207

8.1.5         实验:HelloWorld. 212

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

8.1.7         实验:显示滚动效果… 215

8.1.8         实验:显示自定义字符… 217

8.2             项目:制作电子时钟… 221

8.2.1         DS1307时钟模块的使用… 221

8.2.2         电子时钟… 227

8.3             图形显示器的使用——u8glib的使用… 230

8.3.1         选择LCD并连接到Arduino. 230

8.3.2         连接到Arduino并建立u8g对象… 231

8.3.3         u8glib程序结构… 232

8.3.4         纯文本显示… 232

8.3.5         数据显示… 234

8.3.6         实验:绘制图形… 235

8.3.7         实验:显示图片… 238

第9章              USB库的使用… 241

9.1             USB设备模拟相关函数… 241

9.1.1         USB鼠标类的成员函数… 241

9.1.2         USB键盘类的成员函数… 243

9.2             模拟键盘输入信息… 246

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

9.2.2         模拟键盘组合按键… 248

9.2.3         实验:使用摇杆模块控制计算机鼠标… 250

9.2.4         项目:PPT播放遥控器… 254

第10章            Ethernet库的使用… 257

10.1          Ethernet相关硬件介绍… 257

10.2          Ethernet库… 260

10.2.1       Ethernet 类… 260

10.2.2       IPAddress 类… 261

10.2.3       EthernetServer类… 262

10.2.4       EthernetClient类… 263

10.3          Ethernet的初始化… 266

10.3.1       自定义IP地址… 266

10.3.2       DHCP获取IP地址… 267

10.4          通过Telnet建立简易聊天室… 268

10.4.1       建立Arduino Telnet聊天服务器… 268

10.4.2       Windows Telnet客户端的使用… 270

10.5          Ethernet与Web应用… 272

10.5.1       HTTP协议简介… 272

10.5.2       HTTP响应… 274

10.5.3       网页客户端… 275

10.5.4       网页服务器… 277

10.6          UDP通信… 280

10.6.1       EthernetUDP类… 280

10.6.2       使用UDP收发数据… 282

10.7          项目:网页控制Arduino. 284

第11章            附录… 291

11.1          使用专业IDE编写Arduino项目… 291

11.2          常见问题及解决方法… 294

11.2.1       驱动无法正常安装… 294

11.2.2       下载程序时提示avrdude: stk500_getsync(): not in sync: resp=0x00. 297

11.2.3       使用第三方类库时编译出错,提示WProgram.h: No such file or directory:… 297

11.2.4       能否使用AVRGCC的方法在Arduino IDE中开发Arduino?… 298

11.2.5       Arduino是否支持其他型号的芯片?… 298

11.2.6       Arduino开源使用的协议是什么?… 298

11.2.7       能否使用AVR-Libc、汇编等开发Arduino?… 298

11.3          Arduino Leonardo手册… 299

11.4          Arduino DUE手册… 303

l  11.5 ASCII码对照表… 308

11.6          串口通信可用config配置… 312

11.7          USB键盘库支持的键盘功能按键列表… 313

参考文献… 315

 

留下一个答复

Please enter your comment!
Please enter your name here