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键盘库支持的键盘功能按键列表
参考文献
人脸识别致以人体动作识别技术及应用 本书特色 本书以模式识别的一些基本理论与方法为基础,重点讨论了模式识别在人脸识别、人脸配准、人脸检测、素描人脸识别、图像超分...
《Servlet与JSP核心编程》(第2版)叙述详尽,条理清晰。对于初学者来说是一本不可多得的入门书籍,经验丰富的Servelet和JSP开发人
计算机网络 内容简介 本书由浅入深地阐述了计算机网络技术的一些基本概念和基本原理,介绍了当前常用的先进的网络技术以及网络的实际应用,反映了计算机网络技术的一些*...
大数据时代计算机数据处理技术探究 内容简介 随着科技的发展,在信息化的今天,大量数据呈爆发式的增长,对这些数据的处理,是一个非常大的挑战,所以必须对数据处理技术...
《特战装备大百科(图鉴版)》内容简介:《现代兵器百科图鉴系列:特战装备大百科(图鉴版)》精选了百余种现代特种部队经典作战装
《财务共享的智能化升级:业财税一体化的深度融合》内容简介:财务共享是数字技术和管理变革的共同产物,是解决企业规模不断扩大的
《程序化广告实战》内容简介:本书由浅至深,专注于剖析“程序化广告实战”业务,讲解了程序化广告的原理,并分析了产业上下游的发
《删除》内容简介:《删除》讲述了遗忘的美德,为读者展现了大数据时代的取舍之道。《删除》从大数据时代信息取舍的目的和方法分别
ThisbookconstitutestherefereedproceedingsoftheSecondInternationalWorkshoponHuman...
《像我这样的一个读者》内容简介:独一无二的经典文学作品阅读指南,世界华文文学奖得主西西的私人书单。打开这本无限之书,你可以
本书注重实践而又深入理论,由浅入深且详细介绍了Spring2.0框架的几乎全部的内容,并重点突出2.0版本的新特性。本书将为读者展示
《“互联网+”语境下中国电视剧产业融合创新研究》内容简介:本书主要研究在“互联网+语境,中国电视剧产业是怎样通过供给侧改革进
《如何做质性研究》共分8大部分(主体是前5部分),次序大体上按照开展一项研究的时间顺序安排,并根据新手们在一个完整的质性研究
《轻松玩转Scratch 3.0编程(第2版)》内容简介:Scratch是可视化的编程语言,利用它可以制作游戏、动画,还可以计算数学题、处理字
以實踐「NoBrand」精神的無印良品,崛起於1980年,一路走來始終貫徹站在使用者立場來製作商品的堅持,深受消費者的支持與肯定,更
Visual C#.NET程序设计教程(第2版) 本书特色 《Visual C#.NET程序设计教程(第2版普通高等学校计算机教育十二五规划教材)》(作者罗福强...
《四象限理财:投资理财极简法则》内容简介:本书立足于四象限资产配置法,为普通投资者提供了一种合理规划资产的新思路。具体而言
断点-互联网进化启示录 本书特色 一部神经学、生物学与互联网技术大融合的互联网进化史诗巨著。我们正置身网络革命中。互联网的每一丝变化都与你我息息相关。当科技变得...
《抗战时期中共对根据地社会生态改造研究》内容简介:本书主要通过以下三个问题来深入分析抗战时期中共陕甘宁和晋西北根据地复杂而
新编中文Flash 8实用教程-(第2版) 本书特色 《新编中文Flash8实用教程(第2版21世纪高等院校计算机基础教育规划教材)》由王环、李安宗编著,主要面...