这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » 【换取手持数字示波器】Arduino系列教程基于ArduinounoR4wifi

共1条 1/1 1 跳转至

【换取手持数字示波器】Arduino系列教程基于ArduinounoR4wifi版本【02-GPIO】

菜鸟
2024-09-13 19:10:26     打赏

前言

在上一个章节中, 我们学习到了如何在本地搭建Arduino的开发环境,同时使其IDE可以正确的识别到Arduino uno r4 wifi的开发板, 那么本章节我们将学习一下如何使用GPIO功能 (General Purpose Input Output) 那么在本章节我将带领你阅读Arduino 的官方API英文手册(https://www.arduino.cc/reference/en/)。希望你能有一个满满的收获



正文

在我们开始学习之前,我们先看一下Arduino uno R4 wifi 开发板的PIN-OUT(接口定义)

1726222523268.jpg

我已经在上述的接口定义的的图片上标注了每一个模块的功能介绍。其中如果有多个颜色框图的则代表当前的IO功能可以被复用成其他的被支持的功能。 我们我们需要主要的是, 左边的A0-A5 可以被用于AD(模拟信号到数字信号)或者DA(数字信号到模拟信号)的转换。 而右边的PIN则可以用来初始化PWM等。 如果我们想要使用WIFI和蓝牙功能的话。我们则可以初始化ESP32-S3 mini来开启对应的功能。 同时Arduino uno r4 wifi的这个开发板为了方便大家使用IIC设备。它还引出了一个QWiic的连接线。适合多个IIC设备进行连接(就像串一个糖葫芦那样,每一个IIC设备时一个山楂)。


那么本章节我们主要是学习的是GPIO功能,那么接下来我将带着大家读一下Arduino API中对GPIO功能的介绍。 https://www.arduino.cc/reference/en/


image.png

API介绍

那么在GPIO这里,一共有三个主要的方法。分别是

1-digitalRead()
2-digitalWrite()
3-pinMode()

这三个方法分别用于读取某一个IO的电平状态,向某一个IO设置电平状态,以及设置IO口的模式

其中 digitalRead() 和 digitalWrite() 必须要在设置pinMode() (也就是设置当前的IO为输入状态或者输出状态)之后才可以被调用。


image.png

根据上述的 digitalRead() 的文档我们得知, 当前的方法接收一个参数即Arduino uno r4 wifi 的某一个PIN, 那么它会读取这个PIN的状态并且返回Low 或者 High。


那我们再看一下第二个方法的介绍。

image.png


上面的内容是我人工翻译的,可能会有些不准确。我这里摘取出来一点重要的消息。 即当前的功能接收两个参数, 第一个参数是PIN, 第二个参数是 value(0或者1)当当前的系统供电时5v的话,那么写1的话,对应的PIN为5v, 如果供电为3v的话,那么写1 则输出3.3v。 写0都为0v(GND)


接下来我们来看第三个函数 pinMode()。 

image.png 

pinMode() 这个函数主要用于设置PIN的工作模式为输入或者是输出。




Demo示例


那么在我们介绍完上述的API后,我详细你已经有能力自己动手来点亮一个板载的LED灯了。我们可以根据原理图来确定LED灯的PIn,然后设置PIn的模式。并且向指定的PIN写入数据,那么即可完成LED灯状态的切换。


image.png


代码如下所示:

/**
* 初始化操作, 仅仅执行一次
*/
void setup() {
  pinMode(13, OUTPUT);  //设置PIN12为输出模式
}

/**
*  loop 循环操作
*/
void loop() {
  digitalWrite(13, HIGH); // 设置高电平 输出5v
  delay(500);  // 延迟500 ms
  digitalWrite(13, LOW); // 设置低电平 输出0v
  delay(500);  // 延迟500 ms
}


实验现象

视频.zip


总结

在本章节中,我们通过阅读Arduino的官方文档,深刻的学习到了如何使用Arduino的API来操作GPIO,那么在上述的代码和视频中我们学习到了如何IO输出,那么相信通过你自己的学习,你可以独自完成IO输入的环节。 





关键词: Arduino     系列     教程     gpio    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]