Arduino不仅仅是全球最流行的开源硬件,也是一个优秀的硬件开发平台,更是硬件开发的趋势。Arduino简单的开发方式使得开发者更关注创意与实现,更快的完成自己的项目开发,大大节约了学习的成本,缩短了开发的周期。
因为Arduino的种种优势,越来越多的专业硬件开发者已经或开始使用Arduino来开发他们的项目、产品;越来越多的软件开发者使用Arduino进入硬件、物联网等开发领域;大学里,自动化、软件,甚至艺术专业,也纷纷开展了Arduino相关课程。
笔者2008年开始接触Arduino,被Arduino的简单易用所吸引,后创建ArduinoCN中文社区,致力于Arduino教学与推广。现从事硬件开发工作,在工作中也经常使用Arduino做开发,积累了一定经验。
本书即是笔者将过去撰写的Arduino相关教程与自身开发经验整理而成,主要针对大学Arduino教学实验编写,亦可用于相关开发人员及爱好者入门学习。
本书体系结构清晰,内容丰富,涵盖Arduino基础知识及高级应用,中途穿插简单项目制作,用于巩固知识与扩展提高,同时提供了常用API参考,方便读者实践时查阅。
第1章 初识Arduino
1.1 什么是Arduino
1.2 Arduino的由来
1.3 为什么使用Arduino作为开发平台
1.4 Arduino硬件——选择一款适合自己的Arduino控制器
1.4.1 认识不同型号的Arduino控制器
1.4.2 众多的Arduino外围模块
1.4.3 从ArduinoUNO开始
1.5 Arduino软件
1.5.1 下载配置Arduino开发环境
1.5.2 认识ArduinoIDE
1.5.3 安装Arduino驱动程序
1.6 Blink——Arduino的HellloWorld!
第2章 基础篇
2.1 Arduino语言及程序结构
2.1.1 Arduino语言
2.1.2 Arduino程序结构
2.2 C/C++语言基础
2.2.1 数据类型
2.2.2 运算符
2.2.3 表达式
2.2.4 数组
2.2.5 字符串
2.2.6 注释
2.2.7 用流程图表示程序
2.2.8 顺序结构
2.2.9 选择结构
2.2.10 循环结构
2.3 电子元件和Arduino扩展模块
2.4 传感器扩展板的使用
2.5 ArduinoI/O的简单控制
2.5.1 数字I/O的使用
2.5.2 项目:人体感应灯(继电器模块与数字传感器)
2.5.3 模拟I/O的使用
2.5.4 项目:电子温度计
2.5.5 数字传感器与模拟传感器的使用
2.6 与计算机交流——串口的使用
2.6.1 串口输出
2.6.2 串口输入
2.6.3 实验:串口控制开关灯
2.7 时间控制函数
2.7.1 运行时间函数
2.7.2 延时函数
第3章 I/O口高级应用
3.1 调声函数
3.2 项目
3.3 脉冲宽度测量函数及超声波测距
3.3.1 脉冲宽度测量函数
3.3.2 超声波测距
3.4 设置ADC参考电压
3.5 外部中断
3.5.1 外部中断的使用
3.5.2 实验:外部中断触发蜂鸣器报警
第4章 使用和编写类库
4.1 编写并使用函数,提高程序的可读性
4.2 使用Arduino类库
4.3 编写Arduino类库
4.3.1 编写头文件
4.3.2 预处理命令
4.3.3 宏定义
4.3.4 文件包含
4.3.5 条件编译
4.3.6 版本兼容
4.3.7 编写.cpp文件
4.3.8 关键字高亮显示
4.3.9 建立示例程序
4.4 类库优化与发布
第5章 通信篇
5.1 硬件串口通信——HardwareSerial类库的使用
5.1.1 HardwareSerial类库成员函数
5.1.2 print()和 write()输出方式的差异
5.1.3 read()和peeek()输入方式的差异
5.1.4 串口读取字符串
5.1.5 串口事件
5.1.6 实验:串口控制RGBLED调光
5.1.7 更好的串口监视器——串口调试助手
5.2 软件模拟串口通信——SoftwareSerial类库的使用
5.2.1 SoftwareSerial类库的局限性
5.2.2 SoftwareSerial类库成员函数
5.2.3 建立一个软串口通信
5.2.4 实验:Arduino间的串口通信
5.2.5 同时使用多个软串口
5.3 IIC总线的使用——Wire类库的使用
5.3.1 IIC主机、从机与引脚
5.3.2 Wire类库成员函数
5.3.3 IIC连接方法
5.3.4 主机写数据,从机接收数据
5.3.5 从机发送数据,主机读取数据
5.4 SPI总线的使用——SPI类库的使用
5.4.1 SPI引脚
5.4.2 SPI总线上的从设备选择
5.4.3 SPI类库成员函数
5.4.4 SPI总线上的数据发送与接收
5.4.5 实验:使用数字电位器AD5206
5.4.6 软件模拟SPI通信
5.4.7 实验:使用74HC595扩展I/O口
第6章 存储篇
6.1 断电也能保存数据——EEPROM类库的使用
6.1.1 EEPROM类库成员函数
6.1.2 写入操作
6.1.3 读取操作
6.1.4 清除操作
6.1.5 使用共用体存储各类型数据到EEPROM
6.2 保存大量数据——SD卡类库的使用
6.2.1 格式化SD卡
6.2.2 SD卡类库成员函数
6.2.3 使用 SD卡读/写模块
6.2.4 创建文件
6.2.5 删除文件
6.2.6 写文件
6.2.7 读文件
6.3 项目:SD卡环境数据记录器
6.3.1 DHT11温湿度检测模块的使用
6.3.2 硬件连接方法
6.3.3 温湿度记录器
6.3.4 在Excel中分析数据
第7章 无线通信篇——红外遥控
7.1 IRremote类库成员函数
7.2 红外接收
7.3 红外发射
7.4 实验:遥控家电设备
第8章 LCD显示篇
8.1 1602LCD的使用——LiquidCrystal类库的使用
8.1.1 将1602LCD与Arduino连接
8.1.2 4位数据线接法
8.1.3 1602LCD相关参数
8.1.4 LiquidCrystal类库成员函数
8.1.5 实验:“helllo,world!”
8.1.6 实验:将串口输入数据显示到1602LCD上
8.1.7 实验:显示滚动效果
8.1.8 实验:显示自定义字符
8.2 项目:制作电子时钟
8.2.1 DS1307时钟模块的使用
8.2.2 电子时钟
8.3 图形显示器的使用——u8glib类库的使用
8.3.1 选择LCD并连接到Arduino
8.3.2 连接到Arduino并建立u8g对象
8.3.3 u8glib程序结构
8.3.4 纯文本显示
8.3.5 数据显示
8.3.6 实验:绘制图形
8.3.7 实验:显示图片——位图取模
第9章 USB类库的使用
9.1 USB设备模拟相关函数
9.1.1 USB鼠标类的成员函数
9.1.2 USB键盘类的成员函数
9.2 模拟键盘输入信息
9.2.1 Arduino Leonardo在模拟USB设备后,无法正常下载程序
9.2.2 模拟键盘组合按键
9.3 实验:使用摇杆模块控制计算机鼠标
9.4 项目:PPT播放遥控器
第10章 Ethernet类库的使用
10.1 Ethernet相关硬件介绍
10.2 Ethernet类库
10.2.1 Ethernet类
10.2.2 IPAddress类
10.2.3 EthernetServer类
10.2.4 EthernetClient类
10.3 Ethernet的初始化
10.3.1 自定义IP地址
10.3.2 DHCP获取IP地址
10.4 通过Telnet建立简易聊天室
10.4.1 建立Arduino Telnet聊天服务器
10.4.2 Windows Telnet客户端的使用
10.5 Ethernet与Web应用
10.5.1 HTTP协议简介
10.5.2 HTTP响应
10.5.3 网页客户端
10.5.4 网页服务器
10.6 UDP通信
10.6.1 EthernetUDP类
10.6.2 使用UDP收/发数据
10.7 项目:网页控制Arduino
附录
A.1 使用专业IDE编写 Arduino项目
A.2 常见问题及解决方法
A.3 ArduinoLeonardo手册
A.4 ArduinoDue手册
A.5 ASCII码对照表
A.6 串口通信可用的config配置
A.7 USB键盘库支持的键盘功能按键列表
参考文献
多媒体应用技术 内容简介 本书从多媒体的构成要素入手,全面系统地介绍了各种素材的采集、编辑和应用,主要介绍了当前比较流行的多媒体应用软件,如C00L 3D、 P...
《作文周计划:五年级创意写作训练(全2册)》内容简介:本书从叙事、描写、议论、应用、想象五个方面选取适合小学五年级学生的创意
《思维导图:文言文满分学习法》内容简介:本书运用思维导图这种可视化的思维技术,运用图文并茂的形式和严谨的逻辑结构将中学阶段
C++ STL 标准程序库开发指南 本书特色 在开发语言中,c++的应用越来越广泛。而c++stl是标准的c++模板库,是算法和其他一些标准组件的集合,可...
《英语专业四级考试培训教程(写作)》内容简介:本书是一本操练手册(workbook),是一本从始至终需要诸位拿着一支笔去练习的书。
《劳动价值新论:理论和数理的研究》内容简介:本书是国内学者近年来研究劳动价值论问题的力作。劳动价值论是马克思主义经济学的核
《用地图看懂世界格局》内容简介:美国大选、英国脱欧、俄罗斯出兵叙利亚、在韩国建立萨德反导……所有这些问题,如果只通过新闻报
《运动是最好的心药:心血管疾病运动治疗策略》内容简介:运动有益健康的理念深入人心,对于健康人群,多数的运动项目是安全有益的
内容简介Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚
本书从基本的Actionscript语言概念开始介绍,配以实际的程序实例并穿插生动的图示说明,深入浅出地讲解FlashActionScript程序的运
《我的小阳台四季有花》内容简介:◆一本针对新手的园艺书,当你对植物无从下手时,不妨翻开看看大家怎么种植。◆书中拜访13位国内
《王安石诗歌研究史稿(两宋时期)》内容简介:本书从研究史的角度,对王安石诗歌在宋代的流传形式及诗文集的编刻整理、王诗注本的
《更好更年期》内容简介:为什么出版这本书:1.更年期不仅是医学议题,也折射出女性的社会地位,女性的自我定位和价值体现以及新时
《视界·无界2.0:写给UI设计师的设计书(全彩)》内容简介:作为一名从事设计职业的设计师,或者正在通往成为设计师道路的朋友,都
《PHP编程(第4版)》内容简介:PHP是一种被广泛使用的Web编程语言,它简单易用,而且与时俱进,不断进化,提升性能。本书基于PHP
《且介亭杂文二集》内容简介:本书是鲁迅1935年所作杂文四十八篇,1935年末经作者亲自编定,1937年7月由上海三闲书屋初版。包括《叶
《卓有成效的程序员》就是讲述如何在开发软件的过程中变得更加高效。同时,《卓有成效的程序员》的讲述将会跨语言和操作系统:很
《经典诵读》内容简介:本书是基于高职学生学情,编撰的适用于晨读或课外阅读的文学读本。目的在于引导学生通过阅读传统经典,初步
《中老年人玩转网络新生活捷径》内容简介:《中老年人玩转网络新生活捷径(图解大字版)》是中老年读者学习互联网操作知识的入门引
日本首屈一指歐文活版印刷工坊--嘉瑞工房350件世上罕見的歐文字體活版印刷樣本X專業職人萬字詳解理解TYPOGRAPHY精髓及活用訣竅