零基础入门学用Arduino 第一部分(一)

重要的内容写在前面:

  1. 该系列是以up主太极创客的零基础入门学用Arduino教程为基础制作的学习笔记。
  2. 个人把这个教程学完之后,整体感觉是很好的,如果有条件的可以先学习一些相关课程,学起来会更加轻松,相关课程有数字电路(强烈推荐先学数电,不然可能会有一些地方理解起来很困难)、模拟电路等,然后就是C++(注意C++是必学的)
  3. 文章中的代码都是跟着老师边学边敲的,不过比起老师的版本我还把注释写得详细了些,并且个人认为重要的地方都有详细的分析。
  4. 一些函数的介绍有参考太极创客官网给出的中文翻译,为了便于现查现用,把个人认为重要的部分粘贴了过来并做了一些修改。
  5. 如有错漏欢迎指正。

视频链接:1-0 教程介绍_哔哩哔哩_bilibili

太极创客官网:太极创客 – Arduino, ESP8266物联网的应用、开发和学习资料

一、Arduino IDE界面和设置

1、选择开发板型号和端口

(1)首先将开发板通过USB线连接到电脑上。需要注意的是,USB线需要插牢,有时候USB线未插牢,开发板上的灯也会亮。

(2)选择开发板型号

①可以通过上方的“工具”→“开发板”中选择相应的开发板型号。

②可以在下图所示的红框内选择相应的开发板型号。

(3)选择端口

①可以通过上方的“工具”→“端口”中选择相应的端口。

②可以在下图所示的红框内选择相应的端口。

2、保存程序

3、了解软件界面

(1)快捷键区:除界面上提供的快捷按钮外,还有一些结合Ctrl键的快捷键。

①验证:检查代码区中所写的程序有没有错误(逻辑错误不会被检测出,比如死循环),并将程序翻译成计算机能够读懂的格式(即编译)。

②上传:程序编译后要上传(或者说下载、烧录)到开发板上运行。

③Ctrl+S:保存当前的项目进度。

④Ctrl+N:新建项目。

(2)代码区:编辑代码文件的区域。

(3)输出区:显示一些工作信息,比如编译程序时,可通过输出区的内容判断编译是否成功。

二、Arduino开发板基本介绍

(1)Arduino Uno R3官方板上的微控制器如下图红框所示,其上下(前后)有两排金属片引脚。

(2)将外接元器件通过导线插入板子上下两排端口,上下两排端口和微控制器的引脚是相连的,上图所示的端口分为三组,分别为数字输入/输出端口、模拟输入端口和电源端口(输入和输出是相对开发板而言的)。

(3)在数字输入/输出端口中有两个较为特殊的端口,这两个端口用于Arduino与电脑之间的数据传输,到目前为止,只要还有其它数字端口空闲,都不应该使用这两个端口。

(4)开发板通电后,标有“5V”的端口会提供5V的电压(当然这需要配合GND端口),标有“3.3V”的端口会提供3.3V的电压(当然这也需要配合GND端口)。

三、Arduino程序概述

1、初步认识Arduino程序

(1)Arduino程序使用C++进行编写,在学习Arduino之前建议先学习C++(最好是体系地学习),下面虽然会包含关于C++的一些知识,但不会介绍得很详细。

(2)程序注释:

①“//”后面跟着的是单行注释,单行注释可以跟在一行代码之后,也可以另起一行在开头进行注释;用“/* */”括起来的是多行注释。

②所有注释在编译时都会被去掉,不会影响程序本身的功能。

(3)在新建项目时,第一个代码文件总是会提供两个函数,其函数名分别为setup和loop,它们作为函数,其代码的特点是函数名右侧总有两个小括号,且后面会跟着一对大括号(或者说花括号),大括号内部则是一些函数代码(其它函数的定义代码亦是如此)。

2、变量

(1)一个变量分为变量名和变量值两部分,变量名用于访问变量,它对一个变量来说是不可变的,而一个变量的变量值在一般情况下都是可变的(但比如常变量,其变量值不可变)。

(2)每个变量都会占用计算机的一部分内存,具体占用多少空间取决于变量的类型,常用的变量类型有整型、浮点型、字符型、布尔类型等。需要注意的是,Arduino开发板中的内存空间并不是很大,在定义变量时需要合理利用内存空间,尽可能地减少内存浪费。

(3)变量的命名规则:

①只能由字母(区分大小写)、数字和下划线组成。

②开头可以是字母或下划线,不可以是数字或者其它字符。

③不能与关键字同名。(值得一提的是,在Arduino IDE中,HIGH代表1、LOW代表0,即代表高电平与低电平,它们也算是关键字,给变量命名时不能命名为HIGH和LOW)

(4)为了增加程序的可读性,变量的命名最好有实际意义,比如一个变量用来记录当前温度,则可将其命名为“current_Temperature”。

(5)在定义变量时可同时对其进行初始化,格式如下:

<变量类型> <变量名> = <变量值>;   //无需初始化则省略“ = <变量值>”即可

3、程序结构

(1)根据“文件”→“示例”→“01.Basics”→“Blink”打开示例程序,该程序的功能是让开发板上的一个LED灯闪烁,闪烁周期为两秒。

//给开发板通电后或者按下复位按钮后,setup函数马上运行且仅运行一次,适合做一些初始化操作
void setup() 
{
  //初始化LED_BUILTIN数字引脚为输出模式
  pinMode(LED_BUILTIN, OUTPUT);
}
 
//在开发板通电后,loop函数会反复地运行,适合做一些带有循环性质或监测性质的操作
void loop() 
{
  digitalWrite(LED_BUILTIN, HIGH);  // 点亮LED(将引脚设置为高电平-HIGH)
  delay(1000);                       // 等待1秒
  digitalWrite(LED_BUILTIN, LOW);   // 熄灭LED(将引脚设置为低电平-LOW)
  delay(1000);                       // 等待1秒
}

(2)setup函数会在给开发板通电后或者按下复位按钮后立刻执行一次,且仅执行一次,适合做一些初始化操作,比如对引脚进行控制或读取其电平前都需要对引脚进行初始化,这个操作就可以在setup函数内进行;loop函数会在给开发板通电后反复执行,适合做一些带有循环性质或监测性质的操作,比如控制电机旋转或者测量当前温度等。

4、变量操作

(1)修改上面打开的Blink程序,将其下载到板子上后,板子上的LED灯会进行闪烁,但每闪烁一次,闪烁周期就会增加(不考虑delayTime超出整型变量取值范围的情况)。

int delayTime;   //创建一个全局变量(默认初始化为0)

void setup() 
{
  // 初始化LED_BUILTIN数字引脚为输出模式
  int delayTime = 10000;   //创建一个局部变量
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() 
{
  //这里的delayTime与steup函数中的delayTime无关,它访问的是全局变量
  delayTime = delayTime + 1000;     //赋值表达式,将delayTime + 1000的计算结果赋给delayTime
  digitalWrite(LED_BUILTIN, HIGH);  //点亮LED(将引脚设置为高电平)
  delay(delayTime);                 //等待delayTime毫秒
  digitalWrite(LED_BUILTIN, LOW);   //熄灭LED(将引脚设置为低电平)
  delay(delayTime);                 //等待delayTime毫秒
}

(2)对于每个变量都有其对应的作用域:

①不在函数内定义的变量是全局变量,其作用域是整个程序,在任何地方都能访问该全局变量。

②在函数内(或者说代码块,也就是一对花括号内的代码)定义的变量是局部变量,其作用域由离它最近的外层花括号指示,比如在loop函数内定义的变量,它最多只能在loop函数内使用。

③作用域没有交集的两个变量可以同名,当然,作用域有交集的两个变量也可以同名,但这种情况有点复杂,应尽量避免这种代码的产出。

5、程序函数

(1)Arduino IDE已经写好了一些函数供程序员调用,这些函数可以在Arduino的官网上查看使用说明

(2)上面的示例程序中用到的函数:

①pinMode():通过pinMode()函数可以将Arduino的引脚配置为三种模式,分别是输出(OUTPUT)模式、输入(INPUT)模式和输入上拉(INPUT_PULLUP)模式,值得一提的是,对引脚进行控制或读取其电平前都需要对引脚的模式进行配置

[1]程序中的“LED_BUILTIN”是指开发板上LED灯的引脚,不同开发板的LED灯对应的引脚号可能不同,程序编译时会根据开发板的型号判断“LED_BUILTIN”应为多少。

[2]pinMode有两个参数,第一个是引脚号,第二个引脚的模式,其中输入/输出是相对微处理机而言的,上面的示例中将引脚配置为输出模式,即微处理机可以控制引脚的电平

[3]若配置引脚为输入上拉模式,在引脚没有任何输入时,认为引脚输入高电平若配置引脚为输入模式(浮空输入模式),在引脚没有任何输入时,引脚为高阻态

②delay():有且仅有一个参数,用于暂停程序运行,暂停时间可以由delay函数的参数进行控制,单位是毫秒。

③digitalWrite():有两个参数,第一个参数用于指示数字引脚,第二个参数用于指示高电平/低电平,其作用是将数字引脚写HIGH(高电平)或LOW(低电平),前提是该引脚需要通过pinMode()设置为输出模式(OUTPUT)。

  • 30
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zevalin爱灰灰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值