Arduino开发框架和常用函数学习

本文介绍了Arduino的基本概念、其作为电子原型平台的优势,以及程序结构中的setup和loop函数。详述了常用函数如pinMode、digitalWrite、digitalRead、analogWrite、analogRead、delay和delayMicroseconds的功能和使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是Arduino

Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(ArduinoIDE)。由一个欧洲开发团队于2005年冬季开发。Arduino可以用于构建各种交互式项目和原型,无论是艺术品还是科学实验。

Arduino开发板通常由一个单片机(如AVR系列的ATmega328P,或者乐鑫的ESP32等),引脚(用于连接其他电子模块和传感器),电源接口和与计算机通信的串口或USB接口组成。通过将电子模块、传感器和其他外部设备与Arduino开发板连接,您可以编写和上传程序,控制这些设备的操作和交互。

Arduino平台的优势在于它的易用性灵活性。人们可以通过简单的编程语法和丰富的库函数快速学习和开发项目。Arduino非常受欢迎,它有一个庞大的社区,分享项目、教程和代码。这使得初学者和专业人士都能够以低成本快速构建嵌入式系统和原型。

Arduino是小孩子的玩意儿?

尽管Arduino在教育领域中非常受欢迎,也被许多年轻学习者使用,但Arduino并不仅仅是小孩子的玩具。实际上,Arduino是一个面向各个年龄段的开源硬件和软件平台,适用于学生、爱好者和专业人士。

对于学生和新手来说,Arduino是一个很好的入门工具,因为它提供了一个易于学习和理解的编程环境,并且可以通过简单的代码实现实际项目。它可以用来教授基本的电子和编程原理,并激发创造力和解决问题的能力。

对于爱好者和创客来说,Arduino是一个非常有用的工具。他们可以利用Arduino的灵活性和可扩展性,快速构建原型和设计各种项目。无论是制作智能家居设备、机器人、艺术装置还是其他创意项目,Arduino都提供了丰富的资源和社区支持。

对于专业人士来说,Arduino被广泛应用于各种行业和领域,包括自动化控制、物联网、仪器仪表、机器人、传感器网络等。它的开源性质使得人们可以针对自己的需求自定义和优化硬件和软件,从而实现更高级的应用。

因此,Arduino不仅仅是小孩子的玩具,它是一个功能强大、灵活的工具,适用于各种年龄段和技能水平的人群,帮助他们探索电子技术和创造自己的项目。

Arduino程序结构

一个标准的Arduino程序必须包含setup函数和loop函数

setup函数

void setup()
{
}

setup函数的作用是在单片机上电时,进行一些初始化工作,比如设置引脚的工作模式。setup函数里面的逻辑最先被执行,并且只会执行一次。举个例子,你拿到一个公司的offer,准备入职上班,那你入职的第一天,肯定需要办理入职手续,这个入职手续的办理就可以放在setup函数里面,因为这是你在这家公司上班之前必须要干的事情,并且这个事情只需干一次。

loop函数

void loop()
{
}

loop函数中编写单片机主要逻辑程序,该函数中的逻辑会被无限循环执行,永远不会停,除非单片机断电。再用上面的例子举例,你在公司每天要上班,上班的逻辑就可以写在loop函数中,因为你每天都要上班,除非有一天你离职,否则这个循环就会无限执行下去。

Arduino框架运行逻辑

在这里插入图片描述

常用的Arduino函数

1. pinMode函数

void pinMode(uint8_t pin, uint8_t mode);

该函数的作用是设置某个引脚的工作模式,各个参数的作用如下:

  • pin:需要设置的引脚编号,比如对于ESP32开发板,pin值可以取GPIO后面的编号,例如,11,12,13

  • mode:需要设置引脚为哪一种工作模式,工作模式取值可为:

    • INPUT:输入模式,表示从外围设备向ESP32输入信号,比如从某个传感器的信号引脚读取传感器数据;

    • OUTPUT:输出模式,表示从发ESP32开发板向外围设备输出信号,比如通过ESP32引脚的高低电平控制LED灯的亮灭;

    • INPUT_PULLUP:输入上拉模式,和INPUT的不同之处在于,INPUT模式在引脚未连接外围设备的时候,引脚处于浮空状态,电平信号不确定,可能是高电平,也可能是低电平,但是INPUT_PULLUP模式,在引脚浮空状态下,会启用GPIO内部的上拉电阻,将引脚默认设置为高电平;

    • INPUT_PULLDOWN:输入下拉模式,和INPUT_PULLUP类似,只不过浮空状态会启用GPIO内部下拉电阻,将引脚默认设置为低电平。

      :::tip 温馨提示

      1. 当引脚设置为OUTPUT模式后,依然可以读取该引脚上的电平信号,但是当引脚设置为INPUT模式后,一定不能向该引脚输出高/低电平
      2. 并不是所有引脚都支持上述四种工作模式,比如ESP32上的GPIO34、GPIO35、GPIO36、GPIO39这些引脚就只支持INPUT一种模式。

      :::

2. digitalWrite函数

void digitalWrite(uint8_t pin, uint8_t val);

该函数的作用是往某个数字引脚输出高/低电平,各个参数作用如下:

  • pin:需要输出的引脚的编号,比如11、12、13

  • val:需要设置的电平的值,取值可为两种:

    HIGH:高电平,HIGH为Arduino框架内部的宏定义,实际值为1,对于ESP32来说,高电平的电压接近3.3V

    LOW:低电平,LOW为Arduino框架内部的宏定义,实际值为`10,对于ESP32来说,低电平的电压范围接近0V

该函数输出的是数字信号,非零即一,只能控制开/关,无法控制强度、亮度、转速等

3. digitalRead函数

int digitalRead(uint8_t pin);

该函数的作用是从某个数字引脚读取电平信号,返回值为1(或者HIGH,表示高电平)或者0(或者LOW,表示低电平),参数作用如下:

  • pin:需要读取电平信号的引脚的编号,比如11、12、13

4. analogWrite函数

void analogWrite(uint8_t pin, int value);

该函数的作用是往某个支持PWM的引脚输出PWM信号,PWM信号的作用主要用于电机调速,LED灯亮度控制灯,关于PWM`的用法,后续章节将详细讲解,各个参数的作用如下:

  • pin:支持PWM信号的引脚,ESP32上,所有支持OUTPUT的引脚都支持输出PWM信号;
  • value:PWM的值,取值范围为[0,255],值越大,LED亮度越大,电机转速越快,反之亦然。

5. analogRead函数

uint16_t analogRead(uint8_t pin);

该函数的作用是从某个模拟引脚读取模拟信号的值,返回值与单片机ADC位数有关系,比如10位的ADC,则返回值为[0, 1023], 12位的ADC,则返回值为[0, 4095],这意味着ESP32可以将0-3.3伏特的电压输入信号映射到数值0-4095。参数作用如下:

  • pin:引脚编号,比如11、12、13

    :::tip 注意

    在模拟输入引脚没有任何连接的情况下,用analogRead()指令读取该引脚,这时获得的返回值为不固定的数值。这个数值可能受到多种因素影响,如将手靠近引脚也可能使得该返回值产生变化。

    :::

6. delay函数

void delay(uint32_t ms);

该函数的作用是让程序在调用该函数的地方延迟(等待)一段时间,时间单位是毫秒(ms)

7. delayMicroseconds函数

void delayMicroseconds(uint32_t us);

该函数与delay函数作用一样,只是时间单位换成了微秒(us)

感谢阅读,对物联网或者电子DIY感兴趣的,欢迎关注公众号【微联实验室】获取免费视频/文档资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值