前言
在上一个章节中, 我们学习到了如何在本地搭建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(接口定义)
我已经在上述的接口定义的的图片上标注了每一个模块的功能介绍。其中如果有多个颜色框图的则代表当前的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/
API介绍
那么在GPIO这里,一共有三个主要的方法。分别是
1-digitalRead()
2-digitalWrite()
3-pinMode()
这三个方法分别用于读取某一个IO的电平状态,向某一个IO设置电平状态,以及设置IO口的模式
其中 digitalRead() 和 digitalWrite() 必须要在设置pinMode() (也就是设置当前的IO为输入状态或者输出状态)之后才可以被调用。
根据上述的 digitalRead() 的文档我们得知, 当前的方法接收一个参数即Arduino uno r4 wifi 的某一个PIN, 那么它会读取这个PIN的状态并且返回Low 或者 High。
那我们再看一下第二个方法的介绍。
上面的内容是我人工翻译的,可能会有些不准确。我这里摘取出来一点重要的消息。 即当前的功能接收两个参数, 第一个参数是PIN, 第二个参数是 value(0或者1)当当前的系统供电时5v的话,那么写1的话,对应的PIN为5v, 如果供电为3v的话,那么写1 则输出3.3v。 写0都为0v(GND)
接下来我们来看第三个函数 pinMode()。
pinMode() 这个函数主要用于设置PIN的工作模式为输入或者是输出。
Demo示例
那么在我们介绍完上述的API后,我详细你已经有能力自己动手来点亮一个板载的LED灯了。我们可以根据原理图来确定LED灯的PIn,然后设置PIn的模式。并且向指定的PIN写入数据,那么即可完成LED灯状态的切换。
代码如下所示:
/** * 初始化操作, 仅仅执行一次 */ 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 }
实验现象
总结
在本章节中,我们通过阅读Arduino的官方文档,深刻的学习到了如何使用Arduino的API来操作GPIO,那么在上述的代码和视频中我们学习到了如何IO输出,那么相信通过你自己的学习,你可以独自完成IO输入的环节。