Arduino開發_數字IO操作
- 數字IO操作
- 1、引腳模式配置
- 2、Nano 引腳介紹
- 3、引腳操作
- 4、控制引腳點亮 LED
- 5、多引腳的使用
- 6、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,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/413603.html
標籤:其他
下一篇:【樹莓派筆記】USB口供電能力
