|
程序語法
Language
Arduino語言 | Arduino函式庫 | Arduino/Processing語言比較 | Arduino
IDE運作原理 | Arduino IDE啟動錯誤
此語法部分網頁編排內容來自于: Arduino官方網頁
此篇作者: xlinx
Arduino語法
以下分為三個部份來解說: 1. 結構 2. 變數 3. 函式。
本書的印刷體材
在每一個函式都附有一小段的程序代碼詳細解說,符合當次的說明的相關函式,
會在程序代碼中以粗黑體特別標明出來。
例如,在稍后的章節中會先介紹setup()和loop()這兩個函式。
int buttonPin = 3;
void setup()
{
beginSerial(9600);
pinMode(buttonPin, INPUT);
}
void loop()
{
if (digitalRead(buttonPin) == HIGH)
serialWrite(’ H');
else
serialWrite(’ L');
delay(1000);
}
選單項目的表示法格式會如以下所示:
例如:要新增預設內建的LED范例程序代碼,使用「 File」 ->「 File」 ->「 File」
->「 File」選單項目。
準備工作
在這一本說中所使用的所有程序都可以在網絡上免費下載。
下面會列出幾個必須知道的網站:
Arduino官方網站: http://arduino.cc
Arduino語言簡介
1. 結構
Arduino 的語法結構必須包含以下兩個function
void setup()
在setup()函式中是初始化動作的區塊,所有串行端口、腳位輸出入皆在此宣告
void loop()
loop()函式是版子重復執行動作的區塊。
以上的兩個扇區塊就是開始ARDUINO程序的必要結構, 而整體架構如下面這個樣
子。
int ledPin = 13; //定義靜態變量區(如:PIN腳位等)
void setup() //setup()函示區塊(大多都是用于定義腳位是輸出或輸入….等。)
{
….
}
void loop() //loop()函示區塊(Arduino里的ATMEL芯片,會不斷重復執行的
區域。 )
{
….
}
VariableDeclaration變量宣告
變量宣告方面, Arduino跟一般程序大同小異。
變量的宣告一定必須含有初始化的值, 且值可以是由函式所獲取的值。 說明如下:
int inputVariable = 0; //變量宣告必須給予初始值
inputVariable = analogRead(2); //變數的
FunctionDeclaration
函式的宣告在Arduino中支持變量的傳遞。不支持return任何型態的數值。
所以目前為止(version.007),函式的前方都是void型態。例如:
void getPinValue()
{ …. }
程序流程控制::Control Structures
if
if…else
for
switchcase
while
比較操作數::Comparison Operators
==(相等::equalto)
!=(不相等::not equalto)
<(小于::lessthan)
>(大于::greaterthan)
<=(小于且等于::lessthanorequalto)
>=(大于且等于::greaterthanor equalto)
布爾值操作數::Boolean Operations
&&(布爾運算子::And)
||(布爾運算子::Or)
!(布爾運算子::Not)
其它關鍵符號::Further Syntax
;(分號::用于陳述式的結尾 -semicolon)
{}?(區塊符號 -curlybraces)
//(單行批注 -singlelinecomment)
/**/(多行批注 -multi-linecomment)
#define
2. 變量、函式的宣告
變量型態::Variables
在ARDUINO編輯環境里, 如果您以前有豐富的寫程序經驗, 在某些特定變量的關
鍵詞之下定義變量,請將環境設想從PC轉到ARDUINO BORD上。
這個意思的范例如下:
int ledPin = 13;
pinMode(ledPin, OUTPUT); //ledPin指向一個IO輸出埠。
其它一些常見的變量(如:字符、整數、數組),我們可以用來暫存從模擬輸入腳
位中所截取到的數據。
char
byte
int
long
float?
string?
array
固定變量(常數)::Constants
硬件語言常用的腳位高低電位定義, 在此ARDUINO定義了以下幾個常用的電子屬
性(電位高低、輸入輸出埠)和數值轉換的表示法(如:16進制為=0xFF….等)。
HIGH|LOW
在邏輯方面, 固定常數的定義在Arduino語法中, 目的是為了使程序代碼更容易
被閱讀。數字腳位唯一的兩個狀態,分別為高電位(HIGHT)以及低電位(LOW)。 這
通常也可以表式成TRUE或者是整數1。
INPUT|OUTPUT
Integer Constants
整數常數在Arduino語法表示是中<跟一般程序語言一樣,是以十進制的基底為
普通表示方式。除了十進制之外,尚有二進制、八進位,以及十六進制,這些表
式的方式如下:
進位機底 | 范例10 | (decimal) | 1232 | (binary) | B11110118 | (octal) | 017316 | (hexadecimal) | 0×7B |
二進制表示式,范圍最大限制為2的8次方,也就是0到255。 (Binary Range
表示方法如下:B00000000 ~ B11111111)
3. 函式 Function
數字訊號::Digital I/O
pinMode(pin,mode) //在setup()函式區塊中,定義輸出腳位和狀態。
digitalWrite(pin,value)//在loop()函式區塊中,定義數字輸出腳位以及狀態(通常是
常數HIGHT或LOW….等) 。
intdigitalRead(pin)//在loop()函式區塊中,讀取數字腳位狀態。
累斃訊號::Analog I/O
intanalogRead(pin)
analogWrite(pin,value)-PWM
AdvancedI/O
shiftOut(dataPin,clockPin,bitOrder,value)
unsignedlongpulseIn(pin,value)
時間功能::Time
unsignedlongmillis()
delay(ms)
delayMicroseconds(us)
數學運算::Math
min(x,y) //將會回傳較大值
max(x, y) //將會回傳較小值
abs(x)//將會回傳絕對值
constrain(x, a,b) //比較區間范圍,比較過后回傳判定值
隨機數種子::Random Numbers
randomSeed(seed)
long random(max)
long random(min, max)
External Interrupts
這一個函式所提供的方法, 類式MYSQL 5.0版本以上所提供監視數據觸發函式一
樣。觀念類似一支手槍,在扣板機之后,發現目標之后發射的行為。
在ARDUINO中您可以使用這一個函示監視一個輸入, 當數值改變時就會觸發此一
類別的中斷行為。
attachInterrupt(interrupt, function, mode)
detachInterrupt(interrupt)
串行端口::SerialCommunication
串行端口函式用于ARDUINO版子與計算機或其它裝置的串行式溝通。
最常見的就是設定傳輸鮑率,之后溝通透過arduino板子上面數字Pin的第1( 接
收Rx)和第2腳位(傳送Tx)。
由于Serial.begin()函式必須在setup()區宣告, 所以一旦使用此函式之后數字
Pin的第1和第2腳位,將不能夠被其它輸出使用。
Serial.begin(speed)
int Serial.available()
int Serial.read()
Serial.flush()
Serial.print(data)
Serial.println(data)
文檔編輯:圣徒
|
-
-
Arduino程序語法.pdf
2018-5-13 19:18 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
221.53 KB, 下載次數: 18, 下載積分: 黑幣 -5
|