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键盘库支持的键盘功能按键列表
参考文献
虚拟现实技术 本书特色 陈怀友、张天驰、张菁编著的《虚拟现实技术(中文版计算机科学与技术学科研究生系列教材)》对虚拟现实技术及应用进行详细的探讨,运用多个典型的...
《游戏设计:深层设计思想与技巧》内容简介:本书是游戏设计行业的专业书籍,讲述游戏设计的方方面面,从基础的玩法和难度设计(包
《美国留学移民全攻略》内容简介:《海外留学指南系列:美国留学移民全攻略》的主要目标读者定位于留学方面,以国内接受过中等教育、
《中国特色消费经济理论与实证研究》内容简介:消费问题是个热门话题,不仅得到广大群众的关注,而且受到党和政府的高度重视。本书
這是一趟有錢也買不到的日本設計之旅!本書直擊博報堂、SAMURAI等目前日本超夯的廣告設計公司,深入設計師們的工作現場,訪問當今
Whetheryourepromotingyourbusinessorwritingaboutyourtraveladventures,"HeadFirstWo...
RubyonRailsisthesuper-productivenewwaytodevelopfull-featuredwebapplications.With...
《请孔子当CEO》内容简介:孔子儒家思想的核心是一个“仁”字。在这样一个疯狂追求增长的时代,学习儒家思想使我们得以反思商业的本
本书为专业和非专业用户、程序员、数据处理方面的专业人士和希望理解sQL在今天计算机产业中的影响的经理们提供了关于SQL语言的全
《R语言数据分析与挖掘实战》内容简介:本书共16章,分三个部分:基础篇、实战篇、提高篇。基础篇介绍了数据挖掘的基本原理,实战篇
本书是C++程序员进阶修炼的必读之作,包含的全部都是C++编码的最佳实践,从语法、编码规范和编程习惯、程序架构和设计思想等三大
AdvancedLinuxProgrammingisdividedintotwoparts.ThefirstcoversgenericUNIXsystemser...
ThisthoroughlyupdatededitionofTheSchemeProgrammingLanguageprovidesanintroduction...
作者简介:TrevorvanGorp作为加拿大首屈一指的用户体验公司nForm的创始人和董事长,Trevor是一位值得信任的情感设计用户体验顾问
《VMware Virtual SAN权威指南(原书第2版)》内容简介:本书共分10章。第1章概要介绍了软件定义的存储和VSAN,第2章从物理和虚拟的
音频编辑案例教学经典教程(微课版) 本书特色 本书教学资源丰富,提供各章范例与模拟案例源文件、素材、视频讲解、练习题、PPT和补充知识点学习等资源;为翻转课堂和...
《认知心理学》内容简介:中国心理学家对认知心理学的兴趣,主要表现在两个方面。在理论方面,认知心理学有助于揭示人的认识过程
《游戏经济:以社交媒体游戏促进业务增长》内容简介:社交媒体游戏以其富有曲折的故事情节、情感体验和互动性,令用户着迷,如果能
Flash二维动画制作基础教程 本书特色 本书是中等职业教育电子信息类专业“双证课程”培养方案配套教材,同时也是“CEAC国家信息化计算机教育认证”的指定教材,...
《灾害康复医学》内容简介:全书内容包括绪论、灾害伤员早期医学救援、灾害伤员康复治疗(物理治疗、作业治疗、假肢矫形)、灾害伤