Arduino的數字信號、模擬信號以及串口整理

Arduino Uno開發板上由13個數字輸入輸出管腳(其中有6個模擬輸出管腳:3、5、6、9、10、11)和6個模擬輸入管腳(A0~A5).
我們通過設置管腳模式來設置該管腳爲輸入還是輸出
pinMode(ledPin, OUTPUT);//將管腳ledPin設置爲OUTPUT輸出模式,比如控制小燈的狀態
pinMode(buttonPin, INPUT);//將管腳buttonPin設置爲INPUT輸入模式,比如讀取開關按鈕的狀態

數字輸入輸出

Arduino的數字IO口上能讀出兩個狀態值,一個是高電平(5V),另一個是低電平(0V)
數字輸出
digitalWrite(ledPin,LOW/HIGH);//比如小燈的開與關
數字輸入
digitalRead(buttonPin, LOW/HIGH);//比如讀取開關按鈕的開和關

模擬輸入輸出

Arduino的模擬輸入量是0-1023,而模擬輸出卻是0-255。1ATMEA328ADC是一個10位的寄存器,2的10次方=1024,所以當Arduino讀入值爲默認的電壓最大值5V時,analogRead讀到的值就是1024,這裏應該是1023。Arduino的微控制器只能產生高電平(5V)或者低電平(0V),而不能產生變化的電壓,因此必須採用脈寬度調製技術(PWM,Pulse Width Modulation)來模擬電壓變化。用於產生模擬信號的脈衝寬度,取值範圍是0到255。脈衝寬度的值取0可以產生0V的模擬電壓,取255則可以產生5V的模擬電壓。

模擬輸出
analogWrite(ledPin,0~255); //比如小燈的亮度變化
模擬輸入
analogRead(buttonPin,0~1023); //比如要讀入溫度傳感器的溫度變化

串口通信

Arduino Uno開發板只有一個硬件串口,位於RX(0)和TX(1)管腳。Arduino的USB口通過轉換芯片與這兩個引腳連接。該轉換芯片會通過USB接口在PC機上虛擬出一個用於Arduino通信的串口,我們燒錄程序也是通過串口進行的。
硬件串口默認爲Serial
相關的函數有:
Serial.begin();//開啓串口
Serial.available();//判斷串口緩衝區是否有數據,返回串口緩衝區中當前剩餘的字符個數
Serial.read();//讀取串口數據,一次讀一個字符,讀完後刪除已讀數據
Serial.write();//寫入數據到串口
Serial.print();//串口輸出數據
Serial.println();//串口輸出數據並換行
Serial.end();//禁止串口

有時候我們想用多個串口來連接多個外接設備,這時就可以利用Arduino提供的SoftwareSerial類庫來設置多個軟串口。使用前需要先聲明包含SoftwareSerial.h頭文件。
#include<SoftwareSerial.h>
以下將管腳2,3設置爲軟串口管腳
SoftwareSerial mySerial(rxPin,txPin);
rxPin=2;
txPin=3;

開啓多個軟串口後,但是Arduino Uno在同一時間僅能監聽一個軟串口,當你需要監聽某一軟串口時,需要該對象調用這個函數開啓監聽功能。
mySerial.listen();//開啓軟串口監聽狀態
mySerial.isListening();//監測軟串口是否正在監聽狀態,返回值(Boolean型)True:正在監聽,False:沒有監聽
mySerial.end();//停止監聽軟串口,返回值(Boolean型)True:關閉監聽成功,False:關閉監聽失敗
mySerial.overflow();//檢測緩衝區是否溢出,返回值(Boolean型)True:溢出,False:沒有溢出

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章