
资源介绍
本书是一本面向所有人的 Arduino 实用指南,围绕 Arduino 展开,涵盖电子基础、Arduino 介绍、编程知识以及多个相关项目等内容,旨在帮助读者从基础开始逐步掌握 Arduino 的使用与应用。
一、基础电子知识
电子学简介
电子学是研究电子在不同电场条件下行为的学科,其历史可追溯至 1745 年莱顿瓶的发明,历经电子管、晶体管、集成电路等重要发展阶段。
应用广泛,涉及消费电子、医疗电子、工业控制、通信、航空航天等众多领域。
二、Arduino 简介
Arduino 是什么
Arduino 是一个开源的计算机硬件和软件公司、项目及用户社区,设计和制造单板微控制器和微控制器套件。
起源于 2003 年的 “Wiring” 项目,后分叉并更名为 “Arduino”,旨在为非工程师提供简单、低成本的数字项目工具。
由物理可编程电路板(微控制器)和运行在计算机上的 IDE(集成开发环境)组成,可读取输入并产生输出,实现与现实世界的交互。
作为物理计算平台,能处理模拟和数字信号,广泛应用于各种交互式系统。
基于开源理念,硬件和软件有相应的许可证,板子尺寸小,便于携带。
Arduino 的外观
包括物理电路板(含硬件组件)、Arduino IDE 和 Arduino 编程语言。
电路板可通过传感器感知环境,通过控制灯光、电机等影响周围环境。
IDE 是跨平台应用,支持 C 和 C++ 语言,具有代码编辑、编译和上传等功能。
可通过 Arduino Web Editor 在线编写代码和上传草图,只需一个 Arduino 账户。
编程语言基于 C 和 C++,程序称为 “草图”,以.ino 为文件扩展名,最小程序包含 setup () 和 loop () 两个函数。
选择 Arduino 的原因
跨平台,IDE 和驱动可在 Mac、Windows 和 Linux 操作系统上运行,且完全开源。
价格低廉,组装版和预装版都较为便宜。
板子简单,可通过盾牌扩展功能,有大量软件库支持各种操作。
硬件和软件开源且可扩展,便于开发者进行修改和完善。
支持多种传感器数据输入,社区活跃,教程和示例丰富。
Arduino 的使用者
面向艺术家、设计师、爱好者、新手以及任何对创建交互式物体或环境感兴趣的人,适合工程师、学生、爱好者等各类人群,即使编程知识较少也能上手。
Arduino 的功能
可与硬件接口(作为输入和输出)、作为通信设备、作为用户界面设备、与软件接口以及用于数据存储。
使用 Arduino 所需技能
了解基础电子知识和电子元件的使用,掌握焊接、面包板使用等技能。
学习 C/C++ 编程,掌握 Arduino IDE 的使用。
了解 Arduino 模块和盾牌的使用,必要时学习网页技术语言。
学会记录项目相关信息,如物料清单、项目目标、软件代码等。
Arduino 产品
包括 Arduino 板子、模块、盾牌、套件和配件。
板子有入门级、增强功能型、物联网型和教育型等类别,其中 Arduino UNO 是初学者的推荐选择。
模块是小型 PCB 上的电子元件单元,可通过跳线连接到 Arduino 板。
盾牌可插在 Arduino PCB 上扩展功能,与模块功能类似但连接方式不同。
套件包含常用电子元件和项目指南,配件是能为项目增加功能或美观度的额外物品。
三、Arduino UNO 入门
Arduino UNO 规格
微控制器为 ATmega328P,工作电压 5V,推荐输入电压 7-12V,极限输入电压 6-20V。
有 14 个数字 I/O 引脚(其中 6 个提供 PWM 输出)、6 个模拟输入引脚,各引脚有相应的电流限制。
闪存、SRAM、EEPROM 容量分别为 32KB、2KB、1KB,时钟速度 16MHz,内置 LED 连接到引脚 13。
板子有电源 USB、电源桶形插孔、电压调节器、晶体振荡器、复位按钮、各种引脚等组件,各组件有其特定功能。
在 Windows 系统上入门
准备好 Arduino UNO 板和 USB 电缆,下载并安装适合 Windows 系统的 Arduino IDE。
连接 Arduino 板到电脑,启动 IDE,创建或打开项目,选择正确的板子和串行端口,上传程序。
在 Mac 系统上入门
步骤与 Windows 类似,下载适合 Mac 系统的 Arduino IDE 并安装,连接板子,启动 IDE 进行项目操作。
用电池为 Arduino UNO 供电
可使用 9V 电池和电池扣连接器为板子供电,适用于负载较小的项目。
用 AC-DC 电源适配器为 Arduino UNO 供电
AC-DC 适配器将交流电转换为直流电,使用时需注意其输出电压和电流应在推荐范围内,避免损坏板子。
四、Arduino 编程
Arduino 编程简介
项目代码称为 “草图”,编程语言主要由结构、值(变量和常量)和函数三部分组成。
Arduino 结构元素
包括草图、运算符、语法和控制结构等,运算符有算术运算符、比较运算符、布尔运算符等多种类型。
Arduino 值(变量、数据类型和常量)
变量是存储数据和值的地方,有名称、值和类型,使用前需声明或定义。
数据类型包括 void、bool/boolean、char、byte、int 等多种,各有其大小和取值范围。
常量是在程序执行过程中值不变的量,可通过 const 关键字和 #define 预处理指令定义,Arduino 语言还有一些预定义常量。
Arduino 程序结构及其实现
程序结构即草图,包含 setup () 和 loop () 两个主要函数。
setup () 函数在草图启动时调用一次,用于初始化变量、定义引脚模式等。
loop () 函数在 setup () 函数执行后反复执行,是程序的主要执行部分。
决策语句、跳转语句和循环
控制结构包括顺序控制语句、决策语句(如 if 语句、if…else 语句、switch…case 语句等)、循环语句(如 while 循环、do…while 循环、for 循环等)和跳转语句(如 break、continue、goto、return)。
Arduino 中的运算符
有算术运算符、比较运算符、布尔运算符、位运算符和复合运算符等,各有其特定功能和用法。
Arduino 常量和预定义常量
常量定义方式有 const 和 #define,两者有一定区别。
预定义常量包括逻辑电平常量、引脚电平常量、数字引脚模式常量和内置常量等。
Arduino 数据类型
详细介绍了各种数据类型的特点、大小、取值范围和用法。
Arduino 函数
函数是完成特定任务的自包含代码模块,Arduino 有许多内置函数,如数字 I/O 函数、模拟 I/O 函数、数学函数等,也可自定义函数。
Arduino 数据类型转换函数
用于将一个数据类型转换为另一个数据类型,如 (unsigned int)、byte ()、char () 等。
五、各类电子元件及相关项目
发光二极管(LED)
是半导体器件,通过电流时发光,有极性,其工作基于电致发光原理。
介绍了 LED 的内部结构、符号、产生的颜色、制造材料、类型、简单电路以及伏安特性等。
相关项目包括闪烁板载 LED、闪烁外部 LED、LED 渐亮渐暗、交替闪烁两个外部 LED、LED 滚动等。
三色 LED
介绍了颜色基础、加色混合和减色混合、颜色模型(RGB 和 CMYK)以及 RGB 三色 LED 和 KY-016 RGB 全彩 LED 模块。
相关项目为使用 RGB 三色 LED 模块实现多种颜色发光。
按钮
介绍了开关的定义、分类,机械开关与电子开关的区别,机械开关的分类,按钮 / 轻触开关的特点等。
相关项目包括简单按钮与 LED(异常行为)、使用外部下拉电阻的简单按钮与 LED、使用外部上拉电阻的简单按钮与 LED、使用内部上拉电阻的简单按钮与 LED 等,还解释了上拉和下拉电阻的作用。
电位器
是可变电阻器,有旋转式和线性式,介绍了其构造、符号和应用。
相关项目包括使用电位器改变 LED 闪烁频率和使用电位器实现条形图 LED 显示。
光敏电阻
是对光敏感的电阻,电阻值随光强变化,介绍了其构造、符号、工作原理、特性、类型和应用。
相关项目为基于光敏电阻的 LED 亮度控制。
声音(蜂鸣器)
介绍了有源蜂鸣器和无源蜂鸣器的原理、构造、引脚、规格和应用。
相关项目包括有源蜂鸣器发声和无源蜂鸣器产生音调。
液晶显示器(LCD)
介绍了 LCD 的历史、工作原理、构造、优缺点和应用,重点介绍了 LCD 显示模块 1602A 的引脚和 “LiquidCrystal” 库及相关函数。
相关项目为在 LCD 显示模块 1602A 上显示文本消息。
温度传感器
介绍了温度传感器的类型,重点介绍了 LM35 温度传感器和 KY-013 模拟温度传感器模块的特点和应用。
相关项目包括使用 LM35 进行温度监测和使用 KY-013 进行温度监测。
火焰传感器
介绍了火灾探测器的类型、火焰检测以及红外火焰传感器的工作原理和应用。
相关项目为使用火焰传感器和蜂鸣器实现火灾检测 / 报警。
振动传感器
介绍了 SW-5200 倾斜传感器的构造、工作原理和应用。
相关项目为使用 SW-5200D 传感器实现振动检测并通过蜂鸣器指示。
触摸传感器
介绍了电容感应和 TTP223 触摸传感器模块的引脚和工作原理。
相关项目为使用 TTP223 电容触摸传感器实现触摸检测并通过蜂鸣器指示。
红外传感器
介绍了红外通信、红外通信应用以及 VS1838B 红外接收模块的引脚和应用。
相关项目为使用 VS1838B 通过红外遥控器控制 LED 的开关。
超声波传感器
介绍了超声波、超声波传感器 HC-SR04 的引脚和工作原理。
相关项目包括使用 HC-SR04 实现避障和测量物体距离。
移位寄存器
介绍了 8 位移位寄存器(IC 74HC595)的引脚图、引脚描述、工作原理和应用。
相关项目为使用 74HC595 移位寄存器实现 LED 闪烁。
七段显示器
介绍了单 digit 和 4-digit 七段显示器的引脚、类型(共阳极和共阴极)、工作原理和应用。
相关项目包括使用七段显示器显示 0 到 9 的数字和在 4 位七段显示器上显示数字。
点阵显示器