内置例程(sketches)
独立的脚本和程序被称为 “sketches”,已经在Arduino IDE内置。
位于:文件 > 示例。
这些简单的程序示范了所有基本Arduino的命令。他们横跨所有的领域,从一个Sketch的绝对最小值到数字和模拟IO,再到传感器和显示器的使用。
1.基本原理
- 模拟读取串口:读取一个电位计,打印它的状态到Arduino串口监视器。
- 最简框架:开始一段新程序的最简框架
- 闪烁:不停打开关闭一个LED灯。
- 数字读取串口:读取一个开关,打印它的状态到Arduino串口监视器。
- 渐变:使用模拟输出口来使一个LED灯的亮度变淡。
- 读取模拟电压:读取一个模拟输入,然后打印其电压值到串口监视器。
2.数字
- 不用delay的闪烁:不用delay()函数来闪烁一个LED灯
- 按键:使用一个按键来控制一个LED灯
- 防抖:读取一个按键,然后滤掉噪音
- 数字输入上拉:用pinMode()来声明输出上拉
- 侦察状态改变:计算按键按下的次数
- 音调键盘:一个使用压力传感器和压电扬声器的三键音乐键盘
- 音调旋律:用压力扬声器弹奏一个旋律
- 多重音调:利用tone()命令使多个扬声器发出声音
- 高音追随:根据一个模拟输入来决定压力扬声器的音调
3.模拟
- 模拟输入输出串口:读取一个模拟输入引脚,返回结果,然后用这个数据使LED灯变暗或者变亮
- 模拟输入:使用一个电压计来控制LED灯的闪烁
- 模拟写入Mega:使用Arduino Mega 开发板使12个LED灯一个接一个,逐渐变亮然后变暗
- 校准:对于超出模拟传感器范围的数值,定义一个最大值和最小值
- 渐变:用一个模拟输出引脚(PWM引脚)来使一个LED灯褪色。
- 使光滑:使多个模拟引脚的读取值变得顺滑
4.通讯
- ASCIITable(ASCII表格):使用Arduino的高等的串口输出函数。
- 调光器:移动鼠标来改变LED灯的亮度
- 图表:发送数据到电脑,然后在Processing里画出它的图表。
- Midi(乐器数字接口):连续发送MIDI音符信息
- 多串口Mega:使能Arduino Mega上2个串口。
- 物理像素:通过从Processing或者Max/MSP发送数据到Arduino上,使LED开关。
- 读取ASCII字符串:分析整数里一个用逗号分隔的字符串,来使一个LED灯褪色。
- 串口呼叫响应:通过一个呼-应的方法(握手)来发送多个变数
- 串口呼叫响应ASCII:通过一个呼-应的方法(握手)来发送多个变数,并在发送前解码(ASCII)这些数值。
- Serial Event:使用SerialEvent()函数
- 可视颜色混合器:从Arduino发送多个变数到你的电脑,然后在Processing或者Max/MSP上读取这些数据
5.控制结构
- 数组:一个在For循环的变量举例了怎样使用一个数组。
- For循环:通过for循环来控制多个LED灯
- If声明条件:使用一个‘if 声明’,通过改变输入条件来改变输出条件
- Switch Case:怎样在非连续的数值里选择。
- Switch Case 2:第二个switch-case的例子,展示怎样根据在串口收到的字符来采取不同的行为
- While 声明条件:当一个按键被读取,怎样用一个while循环来校准一个传感器。
6.传感器
- ADXL3xx: 读取一个 ADXL3xx 加速计
- Knock: 通过一个压电元件来侦察敲击
- Memsic2125: 2轴加速计
- Ping: 通过一个超声波测距仪来侦察物品
7.显示
- 条形图:制作一个LED条形图
- 行列扫描:控制一个8×8的LED矩阵
8.字符串
- Character Analysis:使用operators来识别对应的特征类型。
- String Addition Operator:用不同方法把字符串加到一起。
- String Append Operator:用+=运算符和concat()方法来添加东西到字符串里。
- String Case Changes:改变字符串的状态。
- String Characters:在字符串里获得或设置一个指定的字符的值
- String Comparison Operators:按字母排列顺序地比较字符串
- String Constructors:初始化字符串对象
- String Index Of:寻找在字符串里字符的第一个或最后一个的状态
- String Length & String Length Trim:获得和修剪字符串的长度
- String Replace:替换字符串里的个别字符
- String Start With Ends With:检查一个给定的字符或子串(substrings)的开始或结尾
- StringSubstring:在给定的字符串里寻找"phrases"
- StringToInt:允许你把字符串转换成整数数字
9.USB
- 键盘注销:利用按键命令注销当前使用者
- 键盘发消息:当一个按键被按下,发送一个文本字符串。
- 键盘再编译:在Arduino IDE上打开一个新窗口,用简单的跑马灯程序重新编译Leonardo
- 键盘串口:从串口里读取一个字节,然后返回一个键值。
- 键盘鼠标控制:在一个程序里示范鼠标和键盘命令
- 鼠标按键控制:通过5个按键控制光标行动
- 鼠标摇杆控制:当按键被按下时,通过一个操纵杆来控制电脑光标的行动
10.初学者工具包
这些工具包例子的教程可在项目书里获得,包括在配套元件里获得。如果你购买一个基础工具包,你将可以进入在Project Ignite上的网上项目。
11.Arduino ISP
Arduino ISP使你的Arduino变成一个内置电路的编译器,来重新编译ArMega芯片。如果你从Arduino转换到一个面包板上的AtMega,或者你正在制作面包板上的兼容Arduino的电路,当你需要重新下载Arduino的引导程序时,这个功能会很有用处。
基本原理——最简框架
让我们从一个最简单的Arduino框架开始,这个例子包含最简单框架的代码,你需要在Arduino IDE软件上用一段程序来编译:setup() 方法和 loop() 方法。只需要连接你的开发板即可,不需要做任何其他事情。
样例代码
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
注意:
1)当程序开始时,调用setup()函数。用它来初始化变量,引脚,开始使用的库等等。每次上电或者复位开发板时,setup()函数只运行一次。有点像我们以前经常写的初始化函数。
2)创建setup()函数之后,loop()函数就像它的名字那样运行,并且不断循环,允许你的程序改变而且在它运行时响应。你的程序在loop()函数里的代码是用来控制开发板。直接让我们的程序循环动起来,这很方便,顺便通过延时控制下循环的间隔。
3)以下代码实际不能做任何东西,但它的构架对于复制和粘贴来开始你自己程序很有用处。同时它示范怎样在你的代码里注释。
4)整体的这个简易框架更有点像我们自己写的主函数。
ps:后续其他内置代码会在其他章节进一步说明。