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键盘库支持的键盘功能按键列表
参考文献
《cdma2000 1x EV-DO系统、接口与无线网络优化》内容简介:《cdma2000 1x EV-DO系统、接口与无线网络优化》从EV-DO的各种技术版本...
《国事橡胶》内容简介:20世纪60年代,中国还是一个依赖橡胶进口的国家,要用20吨大米才能从国外换回1吨橡胶。橡胶是国家不可缺少的
《插画设计高级教程Illustration》以国际的视角检验了现代插画艺术中插画题材的运用尺度,并提供了制作一件插画作品所需的理论及
《机甲素描技法》内容简介:本书内容详尽,包括机械零件的构造和特征、绘制零件的要点及阴影表现手法、零件组合的技巧、机甲的身体
《2020年法律硕士联考重要法条释解》内容简介:本书主要内容为法律硕士联考法条类图书,针对法条涵盖的考点,分析和讲解,包含5科,
《SRE:Google运维解密》内容简介:大型软件系统生命周期的绝大部分都处于“使用”阶段,而非“设计”或“实现”阶段。那么为什么我
《中国前沿:不如问问科学家吧》内容简介:本书精选了人类对未来生活无限畅想的“人机共生”、“太空探索”、“生物治疗”“粪菌移
《自私的基因》内容简介:《自私的基因》于1976年首次出版之后便畅销全球,是20世纪百大经典名著之一,是一部不仅在基因领域更在社
《文化与政治》内容简介:西方马克思主义与马克思主义都诞生于西方,但是它们之间确有许多不同。西方马克思主义出现在马克思主义之
Photoshop CS5中文版基础实用教程 本书特色 《数字图像艺术设计系列教材:PhotoshopCS5中文版基础实用教程》属于实例教程类图书,《数字图像艺...
《唐诗三百首》内容简介:唐代是我国古代文学发展的重要阶段,尤其是古代诗歌发展的全盛时期,同时也是一个诗人辈出的时代,因此后
郑泽宇,现为才云科技(Caicloud.io)联合创始人、首席大数据科学家。针对分布式TensorFlow上手难、管理难、监控难、上线难等问题
创意城市:如何打造都市创意生活圈,ISBN:9787302210047,作者:(英)兰德利著,杨幼兰译目录 中文版序《创意城市》的缘起与未
HCNP路由交换实验指南 修订版 本书特色 本书基于eNSP搭建企业网络真实场景,给出大量的配置实例,将真实场景与配置实例紧密结合,使读者能够快捷、直观、深刻地...
《官绅的荷包》内容简介:人类的财富载体经历了漫长的演变,从原始社会几乎没有载体,到后来发展出房屋、土地、农具、牲畜、衣物、
Withmorethan200practicalrecipes,thisbookhelpsyouperformdataanalysiswithRquicklya...
你是否也曾想过自己创建网页,但却苦于没有经验?那么从现在开始学习吧!本书由浅入深地讲解了Web设计的一些重要概念、基本原理,
《中国布衣(精编本)》内容简介:中国民间社会,有一种布衣精神。它指的是那些特立独行于帝阙与儒林之外者,无名有品,无位有尊。
《西南联大国学课》内容简介:西南联大的通识教育深刻地影响了中国的一代学者,为他们所创造的成就奠定了深厚的基础。本套图书力图
《跟实战专家学做流程管理》内容简介:企业的使命是为顾客创造价值,为顾客创造价值的是流程,而不是哪个部门。本书作者在15年的管