Arduino成长日记2 - Arduino编程基础

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_36955622/article/details/88710132

上一篇讲述了什么是Arduino以及各类Arduino开发板的参数,本篇开始介绍开发环境搭建以及一些编程基础。


Arduino开发环境

开发环境即Arduino项目的编程环境 – Arduino IDE,Arduino集成开发环境(IDE)是一个在计算机上运行的软件,可供开发者编写、编译以及上传程序至Arduino开发板。其界面友好,语法简单,可以很方便的上传程序,使得Arduino项目开发变得非常便捷。
Arduino IDE在网上有很多资源提供下载,觉得不放心也可以自行从GitHub或者Arduino官网下载,这里提供从官网下载的两种方式:

  • 下载Arduino IDE免安装版

进入Arduino官网 软件下载页面,对于英文网页看不懂的可以在上面切换中文显示
在这里插入图片描述
切到中文界面,我们的目的性就很明确了,页面大标题显示Arduino IDE当前的最新版本,点击右侧的链接能直接下载最新版IDE的免安装版压缩包及安装包,如果想用以前的旧版本,可以直接点击下面的安装软件旧版本,你想要的版本基本都有
在这里插入图片描述
下载的免安装压缩包,解压后可以直接看到整个IDE的目录,点击Arduino.exe可以直接打开IDE编辑器
在这里插入图片描述

  • 下载Arduino IDE安装包

同样是在官网软件下载页面(链接同上一种),点击Windows安装包下载IDE的安装包,运行安装, i agree
在这里插入图片描述
默认安装配置,Next
在这里插入图片描述
选择软件安装路径(可自定义路径),Install
在这里插入图片描述
等待进度安装,完成后关闭安装向导,close
在这里插入图片描述
安装包安装的Arduino IDE目录比免安装的目录多了一个软件删除程序(uninstall),其他的没什么两样
在这里插入图片描述
运行Arduino IDE,非常干净简介的编程界面
在这里插入图片描述

  • Arduino软件(IDE)

Arduino集成开发环境(或是Arduino IDE)包含了一个用于写代码的文本编辑器、一个消息区、一个文本控制台以及一个带有常见功能按钮和文本菜单的工具栏。软件连接Arduino板和Genuino板之后,能给所连接的控制板上传程序,还能与控制板相互通信。

  • 写项目

使用Arduino软件(IDE)编写的代码被称为项目(sketches),这些项目写在文本编辑器中,以 .ino的文件形式保存,软件中的文本编辑器有剪切/粘贴和搜索/替换功能。当保存、输出以及出现错误时消息区会显示反馈信息。控制台会文字形式显示Arduino软件(IDE)的输出信息,包括完整的错误信息以及其他消息。整个窗口的右下角会显示当前选定的控制板和串口信息。工具栏按钮包含验证、下载程序、新建、打开、保存以及串口监视器的功能。

注意,Arduino软件(IDE)1.0之前的版本中项目的保存格式为.pde,你能够用1.0版本的软件打开这些文件,软件会提示你将这些项目保存为.ino的形式。

在这里插入图片描述
验证 – 检查代码编译时的错误
在这里插入图片描述
上传 – 编译你的代码并且上传到选定的控制板中。
在这里插入图片描述
新建 – 创建一个新的项目
在这里插入图片描述

打开 – 弹出一个包含你文件夹中所有项目的菜单,选择其中一个会打开相应的代码,新的项目会覆盖当前的的项目。
在这里插入图片描述
保存 – 保存你的项目

其他命令我们能够在文本菜单中找到,文本菜单包含五个部分文件、编辑、项目、工具、帮助。这些菜单是与你执行的操作与内容有关的,所以只有那些与当前操作有关的菜单才能使用。

  • 文件

新建
创建一个新的项目,项目中已经自动完成了一段Arduino程序的最小结构。

打开
允许通过计算机的文件管理器打开一个指定的项目。

Open Recent
提供一个最近打开过的项目的列表,可以通过选择打开啊其中一个。

项目文件夹
显示目前项目文件夹中的项目,选择其中一个会在新的窗口打开相应的代码。

示例
显示Arduino软件(IDE)或是库文件提供的每一个例子,所有这些例子通过树形结构显示,这样就能通过主题或库的名字轻易的找到对应的示例程序。

关闭
关闭当前选中的程序。

保存
用当前的名字保存项目,如果文件还没有命名,则会弹出“另存为”窗口要求输入一个名字。

另存为
允许用另一个名字保存当前的项目。

页面设置
显示用于打印的页面设置窗口。

打印
按照页面设置中的设定发送当前的项目给打印机。

首选项
打开首选项窗口能够自己设定IDE的参数,比如IDE的语言环境。

退出
关闭所有的IDE窗口,当下次打开IDE的时候会自动打开同样的项目。

  • 编辑

撤销
撤销你在编辑区的一步或多步操作。

重做
当你撤销之后,可以通过重做再执行一编相应的操作。

剪切
删除选择的文本放置再剪切板中。

复制
复制选中的文本放置在剪切板中。

复制到论坛
复制项目中的代码放置在剪切板中,复制的内容包括完整的语法颜色提示,适合粘贴到论坛中。

复制为HTML格式
以HTML形式复制项目中的代码放置在剪切板中,适合将代码嵌入到网页中。

粘贴
将剪切板中的内容放在编辑区的光标处。

全选
选中编辑区的所有内容。

注释/取消注释
在选中行的开头增加或移除注释标记符//。

增加缩进
在选中行的开头增加一段缩进的位置,文本内容会相应的向右移动。

减少缩进
在选中行的开头减少一段缩进的位置,文本内容会相应的向左移动。

查找
会打开查找和替换窗口,在这个小窗口内你可以根据几个选项在当前的项目中查找特定的文字。

查找下一个
高亮显示下一个在查找窗口中指定的文字(如果有的话),同时将光标移动到对应的位置。

查找上一个
高亮显示上一个在查找窗口中指定的文字(如果有的话),同时将光标移动到对应的位置。

  • 项目

验证/编译
检查你代码中编译的错误,代码和变量使用存储区的情况会显示在控制台。

上传
编译并通过设定的串口上传二进制到选定的控制板当中。

使用编程器上传
这将覆盖控制板中的引导程序;你需要使用 工具>上传引导程序 来恢复控制板,这样下次才能再通过USB串口上传程序。不过这种形式允许你的项目使用芯片的全部存储区。

Export Compiled Binary(导出编译的二进制代码)
保存一个.hex文件作为存档或是用其他工具给控制板上传程序。

显示项目文件夹
打开当前项目所在文件夹。

Include Library(导入库)
在代码开头通过 #include 的形式添加一个库文件到你的项目当中,另外通过这个菜单项你能够访问库管理器,并且能够从.zip文件中导入新库。

添加文件
添加源文件到项目中(会从当前位置复制过来)。新的文件会出现在项目窗口中的新选项卡中。可以通过小三角形图标的选项卡菜单命令来删除文件,选项卡菜单位于串口监视器按钮的下方。

  • 工具

自动格式化
格式化之后代码看起来会更美观,比如,大括号内的代码要增加一段缩进,而大括号内的语句缩进更多。

项目存档
将当前的项目以.zip形式存档,存档文件放在项目所在的目录下。

编码修正及重载
修正了编辑字符与其他系统字符间可能存在的差异。

串口监视器
打开串口监视器口,通过当前选定的串口查看与控制板之间交互的数据。通常这个操作会重启控制器,如果当前控制板支持打开串口复位的话。


选择你使用的控制板。

端口
这个菜单包含了你电脑上所有的串口设备(真的串口设备或虚拟的串口设备),每次打开工具菜单时,这个列表都会自动刷新。

编程器
当我们不是通过USB转串口的连接方式给控制板或芯片上传程序的时候就需要通过这个菜单选择硬件的编程器。一半你不需要使用这个功能,除非你要为一个新的控制器上传引导程序。

上传引导程序
这个菜单项允许你给Arduino上的微控制器上传引导程序,如果你是正常使用Arduino或是Genuino控制板这个菜单项不是必须的,不过如果你购买了一个新的ATmega微控制器的话(通常都不包含引导程序),那么这个菜单项非常有用。在为目标板上传引导程序时要确保你从”控制板“菜单中选择了正确的控制板。

  • 帮助

这里你能够轻易的找到和Arduino软件(IDE)相关的各种文档。在未联网的情况下能够找到入门、参考资料、IDE使用指南以及其他的本地文档,这些文档时我们网站资源的拷贝,通过它们能够链接到我们的网站。


Arduino语言概述

1、标识符

标识符是用来标识源程序中某个对象的名字。这些对象可以是语句、数字类型、函数、变量、常量和数量等。
C语言规定,一个标识符由字母、数字和下划线组成,第一个字符必须是字母或者是下划线。通常以下划线开头的标识符都是编译系统专用的,所以编写C语言程序时,尽量少使用以下划线开头的标识符,但是下划线可以用在第一个字母以后的任何位置。
C语言程序中的标识符命名应该做到简洁明了、含义清晰,这便于程序的阅读和维护。例如,比较最大值最好用max来定义标识符。

2、关键字

在C语言编程中,为了定义变量表达语句功能和对一些文件进行预处理,还必须用到一些具体有特殊意义的字符,就是关键字。
C语言的关键字共有32个,根据关键字的作用,可将其分为数据类型关键字、控制语句关键字、储存类型关键字和其他关键字4类。

(1)数据类型关键字12个
char:声明字符型变量或函数。
double:声明双精度变量或函数。
enum:声明枚举类型。
float:声明浮点型变量或函数。
int:声明整型变量或函数。
long:声明长整型变量或函数。
short:声明短整型变量或函数。
signed:声明有符号类型变量或函数。
struct:声明结构体变量或函数。
union:声明共用体(联合)数据类型。
unsigned:声明无符号类型变量或函数。
void:声明函数无返回值或无参数,声明无类型指针。

(2)控制语句关键字12个
循环语句(5个):for,通过条件欧安段循环次数的语句;do…while,先执行一遍循环体再判断循环条件;while:判断条件再执行循环体;break:跳出当前循环;continue:结束当前循环,并开始下一个循环。
条件语句(3个):if,条件语句;else:条件语句否定分支(与if连用);goto:无条件跳转语句。
开关语句(3个):switch,用于开关语句;case,开关语句分支;default:开关语句中的“其他”分支。
返回语句(1个):return,子程序返回语句(可以带参数,也可以不带参数)。

(3)储存类型关键字4个
auto:声明自动变量,一般不使用。
extern:声明变量是在其他文件中声明(也可以看作是引用变量)。
register:声明寄存器变量。
static:声明静态变量。

(4)其他关键字4个
const:声明只读变量。
sizeof:计算机数据类型长度。
typedef:用以给数据类型取别名。
volatile:说明变量在程序执行中可被隐含地改变。

3、运算符

(1)赋值运算符
赋值语句的作用是把某个常量、变量或表达式的赋值给另一个变量。C语言中,符号为 “ = ” 这里并不是等于的意思,只是赋值,等于用 " == " 表示。

注意:赋值语句左边的变量在程序的其他地方必须声明。

被赋值的变量称为左值,因为它们出现在赋值语句的左边;产生值的表达式称为右值,因为它们出现在赋值语句的右边。常数只能作为右值。

(2)算术运算符
在C语言中,有两个单目和五个双目运算符,分别为:+正(单目)、-负(单目)、*乘法(双目)、/除法(双目)、%取模(双目)、+加法(双目)、-减法(双目)。
运算符有运算顺序问题:先算乘除法再算加减法,单目正和单目负最先运算。

(3)逻辑运算符
逻辑运算符是根据表达式的值来返回真值或是假值。其实,在C语言中没有所谓的真值和假值,只是认为非0为真值,0为假值。
符号功能: &&(逻辑与) ||(逻辑或) !(逻辑非)。

(4)关系运算符
关系运算符是对两个表达式进行比较,各关系返回一个真/假值。各关系运算符及功能如下表。

符号 功能 符号 功能
> 大于 <= 小于等于
< 小于 == 等于
>= 大于等于 != 不等于

(5)自增自减运算符
自增自减运算符是一类特殊的运算符,其中,自增运算符(++)和自减运算符(–)对变量的操作结果是增加1和减少1。

(6)复合赋值运算符
在赋值运算符当中,还有一类C/C++独有的复合赋值运算符。它们实际上是一种缩写形式,使得对变量的改变更为简洁,如 Total = Total + 3,也可以写成 Total += 3,复合赋值运算符及其功能如下表所示。

符号 功能 符号 功能
+= 加法赋值 <<= 左移赋值
-= 减法赋值 >>= 右移赋值
*= 乘法赋值 &= 位逻辑与赋值
/= 除法赋值 |= 位逻辑或赋值
%= 模运算赋值 ^= 位逻辑异或赋值

(7)条件运算符
条件运算符(:)是C语言中唯一的一个三目运算符。它是对第一个表达式作真/假检测,然后根据结果返回另外两个表达式中的一个,语法格式如下:
<表达式1> ? <表达式2> : <表达式3>

(8)逗号运算符
在C语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值,相关实例如下。

 b = 2, c = 7, d = 5, a1 = (++b, c--, d+3);
 a2 = ++b, c--, d+3;

对于第一行代码,有3个表达式,用逗号分开,所以最终的值应该是最后一个表达式的值,也就是 d+3 为8,所以 a=8。对于第二行代码,也有3个表达式,这时的3个表达式为 a2=++b,c–, d+3。因为赋值运算符比逗号运算符优先级高,所以最终表达式的值虽然也为8,但a2=3。


Arduino基本函数

  • I/O操作函数
PinMode(pin,mode)

描述:将指定的针脚配置成输出或输入。
语法:PinMode(pin,mode)。
参数:pin,要设置模式的针脚;mode,INPUT或OUTPUT。

digitalWrite(pin,value)

描述:给一个数字针脚写入HIGH或者LOW。如果一个针脚已经使用pinMode()配置为OUTPUT模式,则其电压将被设置相应的值,HIGH为5V(3.3V控制板上为3.3V),LOW为0V。如果针脚配置为INPUT模式,使用digitalWrite()写入HIGH值,则将使内部20kΩ上拉电阻接入,而写入LOW将会禁用上拉,。上拉电阻可以点亮一个LED,让其微微亮。如果出现LED工作,但是亮度很低,则可使用pinMode()函数设置输出针脚来补救。
语法:digitalWrite(pin,value)。
参数:pin,针脚编号(如1,5,10,A0,A3);value:HIGH或LOW。

int digitalRead(pin)

描述:读取指定针脚的值,HIGH或LOW。
语法:digitalRead(pin)。
参数:pin,要读取的针脚号(int)。
返回:HIGH或LOW。

  • 模拟I/O操作函数
analogWrite()

描述:从一个针脚输出模拟值(脉冲宽度调制,Pluse Width Modulation,PWM),让LED以不同的亮度点亮或驱动电机以不同速度旋转。analogWrite()输出结束后,该针脚将产生一个稳定的特定占空比的PWM。PWM输出持续到下次调用analogWrite(),或在同一针脚调用digitalRead()或digitalWrite()。
PWM信号的频率大约是490Hz,大多数Arduino板(ATmega168或ATmega328)只有针脚3、5、6、9、10和11可以实现该功能。在Arduino Mega上,针脚2 ~ 13可以实现该功能。旧版本的Arduino板(ATmega8)只有9、10、11可以使用analogWrite()。在使用analogWrite()之前,不需要调用pinMode()来设置针脚为输出模式。
语法:analogWrite(pin,value)。
参数:pin,用于输入的针脚;value,占空比,取值范围为0(完全关闭)~ 255(完全打开)。

analogRead()

描述:从指定的模拟引脚读取数值。Arduino板包含一个6通道(Mini和Nano有8通道,Mega有16通道)、10位模拟/数字转换器。这表示它将0 ~ 5V的输出电压映像到0 ~ 1023的整数值,即每个读数对应电压值5V/1024,每单位0.0049V(4.6mV)。输入范围和精度可以通过analogReferrnce函数改变,其大约现需要100μs(0.0001s)来读取模拟输入,所以最大的阅读速度是每秒1000次。
语法:analogRead(pin)。
参数:模拟引脚或带PWM功能的数字引脚。
返回:从0 ~ 1023的整数值。

  • 时间函数
delay()

描述:是程序设定的暂停时间(单位毫秒)
语法:delay(ms)
参数:ms,暂停的毫秒数(unsigned long)

delayMicroseconds()

描述:使程序暂停指定的一段时间(单位 ms)。目前,能够产生的最大延时准确值是16383。这可能会在未来的Arduino版本中有所改变。对于超过几千μs的延时,应该使用delay()代替。
语法:delayMicroseconds(us)。
参数:μs,暂停的时间,单位微妙(unsigned int)


掌握Arduino编程基础,对往后的编程项目学习会更加顺手。

猜你喜欢

转载自blog.csdn.net/qq_36955622/article/details/88710132
今日推荐