Arduino开发_数字IO操作
Posted 晚安2021
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino开发_数字IO操作相关的知识,希望对你有一定的参考价值。
Arduino开发_数字IO操作
数字IO操作
在Arduino中,我们只需要选择相应的开发板以及MCU就可以非常方便的去使用以及控制开发板的片上以及片内外设,因为Arduino在各开发板对应的库中,将所需要用到的外设,做好了封装,开发者只需要调用API接口就OK。
对于IO口 会用到的函数,一般主要是负责以下几个功能:模式配置,引脚控制。
1、引脚模式配置
pinMode()
函数是Arduino提供的用来配置引脚模式的接口函数,对于Arduino Nano 来说,引脚模式有三类,INPUT(输入模式)、OUTPUT(输出模式)、INPUT_PULLUO(上拉输入)。
//pinMode()函数的使用格式
pinMode(pin,mode);
//pinMode()使用示例
pinMode(13,OUTPUT); //配置数字引脚 13脚为输出模式
pinMode(A0,INPUT); //配置模拟引脚A0为输入模式
2、Nano 引脚介绍
可能有些人没有接触过Arduino,我们来看一下Arduino的引脚划分。
- 1、紫色表示数字引脚
- 2、绿色表示模拟引脚
- 3、关于几个模拟引脚的注意点
- A6、A7 仅可以作为模拟引脚使用
- A4、A5 除模拟功能外,可以作为IIC总线使用
- 4、关于其他的复用功能引脚,在上面也都有显示,比如TXD、RXD等
3、引脚操作
看完引脚的划分,我们回到引脚的使用上,在对模式配置完成之后,我们可以来对引脚进行读或者写操作。读是获取外界传回的电平信息,写是通过IO输出高、低电平。主要使用 digitalWrite()
函数
digitalWrite(pin,value); //函数使用示
digitalWrite(13,HIGH); //配置 13脚输出 高电平
digitalWrite(13,LOW); //配置 13脚输出 低电平
4、控制引脚点亮 LED
#include <Arduino.h>
#define LED 13
//setup 函数,当板子通电或执行复位时运行一次
void setup()
// put your setup code here, to run once:
//初始化数字引脚LED为输出
pinMode(LED,OUTPUT);
//loop 函数,继setup函数之后循环运行的函数
void loop()
// put your main code here, to run repeatedly:
digitalWrite(LED,HIGH);
delay(1000); //延时函数,Arduino库中已经提供,直接调用即可
digitalWrite(LED,LOW);
delay(1000);
5、多引脚的使用
这里我们来举例一个流水灯,来看一下多个引脚的使用
#include<Arduino.h>
void setup()
//通过for循环初始化 LED 引脚2 到 引脚7 为输出模式
for(int i = 2;i < 8; ++i)
pinMode(i,OUTPUT);
void loop()
//从引脚2 到 引脚6 ,点亮LED,等待500ms再熄灭LED
for(int i = 2;i < 7;++i)
digitalWrite(i,HIGH);
delay(500);
digitalWrite(i,LOW);
本质上就是通过一个for
循环对引脚进行一个轮询,进而实现对引脚的逐个操作,当然这种操作弊端也有,比如引脚不连续时,就存在一定不合理性,具体的等聊到类似案例再细说。
6、IO输入
关于IO的输入,最入门的莫过于按键了,我们就从一个按键点灯的示例来看一下检测IO输入的一个具体操作。
#include<Arduino.h>
//设置常量
const int buttonPin = 2; //需要检测的按键引脚
const int ledPin = 13; //LED 引脚
//设置变量
int buttonState = 0; //存储按键状态的变量
void setup()
//初始化 LED 引脚 为输出模式
pinMode(ledPin,OUTPUT);
//初始化按键为输入模式
pinMode(buttonPin,INPUT);
void loop()
//读取按键引脚状态赋值给 buttonState
buttonState = digitalRead(buttonPin);
//检测按键是否按下,当按键按下时将返回高电平
if(buttonState == HIGH)
digitalWrite(ledPin,HIGH);
else
digitalWrite(ledPin,LOW);
这里我们主要有两个操作,一个是定义了一个变量,用来存储从IO读到的电平信息,一个是调用了 digitalRead()
函数来读取IO的电平信息。
然后通过digitalRead()
函数获取IO电平信息后,存储进变量,然后对变量进行判断,选择是否点亮LED。
以上是关于Arduino开发_数字IO操作的主要内容,如果未能解决你的问题,请参考以下文章