常見關鍵字
宣告變數及介面名稱(int val;int ledPin=13;)
setup()——函式在程式開始時使用,可以初始化變數、介面模式、啟用庫等(例如:pinMode(ledPin,OUTUPT); )
loop()——在setup()函式之後,即初始化之後,loop() 讓你的程式迴圈地被執行。使用它來運轉Arduino
pinMode(介面名稱,OUTPUT或INPUT)將——介面定義為輸入或輸出介面,用在setup()函式裡。
digitalWrite(介面名稱, HIGH或LOW)——將數字介面值至高或低
digitalRead(介面名稱)——讀出數字介面的值。
analogWrite(介面名稱, 數值)——給一個介面寫入模擬值(PWM波)。對於 ATmega168晶片的Arduino(包括Mini或BT),該函式可以工作於 3, 5, 6, 9,10和 11號介面。老的 ATmega8晶片的USB和 serial Arduino僅僅支援 9, 10和11號介面。
analogRead(介面名稱)——從指定的模擬介面讀取值,Arduino對該模擬值進行10-bit的數字轉換,這個方法將輸入的0-5電壓值轉換為 0到1023間的整數 值。
delay()——延時一段時間,delay(1000)為一秒。
Serial.begin(波特率)——設定序列每秒傳輸資料的速率(波特率)。在同計算機通訊時,使用下面這些值:300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600或 115200。你也可以在任何時候使用其它的值,比如,與0號或1號插口通訊就要求特殊的波特率。用在setup()函式裡
Serial.read()——讀取持續輸入的資料
Serial.print(資料,資料的進位制)——從串列埠輸出資料。Serial.print(資料)預設為十進位制等於Serial.print(資料,DEC)
Serial.println(資料,資料的進位制)——從串列埠輸出資料,跟隨一個回車和一個換行符。這個函式所取得的值與 Serial.print()一樣
數字A 與 模擬D
數字
程式裡我們會用到digitalRead()函式,在編寫程式的過程中有兩點值得我們注意的地方,一是在setup()函式中,會用到pinMode(inpin,INPUT)進行設定inPin介面為輸入介面,二是在loop()函式中,會用到digitalRead()來讀取數字介面的值,例如:val=digitalRead(inpin);。
模擬
在模擬介面中用函式analogread()和analogwrite()
串列埠通訊
TX(T:Transmitter 傳送)表示為Arduino傳送指令資訊給計算機,RX(R:Receive 接收)表示為Arduino接收來自計算機的指令資訊,當下載程式或與計算機通訊時,這兩個指示燈就會閃爍。
軟串列埠
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10,11); // RX, TX
void setup()
{
Serial.begin(9600);
mySerial.begin(115200);
}
void loop() // run over and over
{
mySerial.listen();
while (mySerial.available() > 0)
{
char inByte =mySerial.read();
Serial.write(inByte);
}
}
Serial.available() 的意思是:返回串列埠緩衝區中當前剩餘的字元個數。一般用這個函式來判斷串列埠的緩衝區有無資料,當Serial.available()>0時,說明串列埠接收到了資料,可以讀取。
Serial.read()指從串列埠的緩衝區取出並讀取一個Byte的資料,比如有裝置通過串列埠向Arduino傳送資料了,我們就可以用Serial.read()來讀取傳送的資料。
典型的用法如下:
while (Serial.available()>0)
{
data= Serial.read();
delay(2);
}
上面程式碼的意思就是,當串列埠接收到資料時(上面Serial.available()>0這句),反覆讀取串列埠的資料並賦值給data (上面data= Serial.read()這句),直到資料讀完(即Serial.available()=0的時候)。