Arduino語言

Arduino語言html

 

Arduino語言是創建在C/C++基礎上的,其實也就是基礎的C語言,Arduino語言只不過把AVR單片機(微控制器)相關的一些參數設置都函數化,不用咱們去了解他的底層,讓咱們不瞭解AVR單片機(微控制器)的朋友也能輕鬆上手。git

在與Arduino DIYER接觸的這段時間裏,發現有些朋友對Arduino語言仍是比較難入手,那麼這裏我就簡單的註釋一下Arduino語言(本人也是半罐子水,有錯的地方還請各位指正)。express

基礎C語言數組

關鍵字:架構

if...elseapp

必須緊接着一個問題表示式(expression),若這個表示式爲真,緊連着表示式後的代碼就會被執行。若這個表示式爲假,則執行緊接着else以後的代碼. 只使用 if不搭配else是被容許的。dom

範例:ide

if (val == 1) {函數

digitalWrite(LED,HIGH);oop

}

for

用來明定一段區域代碼重複指行的次數。

範例:

for (int i = 0; i < 10; i++) {

Serial.print("ciao");

}

switch case

if敘述是程序裏的分叉路口,switch case 是更多選項的路口。Swith case 根據變量值讓程序有更多的選擇,比起一串冗長的if敘述,使用swith case可以使程序代碼看起來比較簡潔。

範例 :

switch (sensorValue) {

case 23:

digitalWrite(13,HIGH);

break;

case 46:

digitalWrite(12,HIGH);

break;

default: // 以上條件都不符合時,預設執行的動做

digitalWrite(12,LOW);

digitalWrite(13,LOW);

}

while

當while以後的條件成立時,執行括號內的程序代碼。

範例 :

// 當sensor值小於512,閃爍LED燈

sensorValue = analogRead(1);

while (sensorValue < 512) {

digitalWrite(13,HIGH);

delay(100);

digitalWrite(13,HIGH);

delay(100);

sensorValue = analogRead(1);

}

do... while

和while 類似,不一樣的是while前的那段程序代碼會先被執行一次,無論特定的條件式爲真或爲假。所以如有一段程序代碼至少須要被執行一次,就可使用do…while架構。

範例 :

do {

digitalWrite(13,HIGH);

delay(100);

digitalWrite(13,HIGH);

delay(100);

sensorValue = analogRead(1);

} while (sensorValue < 512);

break

讓程序代碼跳離循環,並繼續執行這個循環以後的程序代碼。此外,在break也用於分隔switch case 不一樣的敘述。

範例 :

//當sensor值小於512,閃爍LED燈

do {

// 按下按鈕離開循環

if (digitalRead(7) == HIGH)

break;

digitalWrite(13,HIGH);

delay(100);

digitalWrite(13,HIGH);

delay(100);

sensorValue = analogRead(1);

} while (sensorValue < 512);

continue

用於循環以內,它能夠強制跳離接下來的程序,並直接執行下一個循環。

範例 :

for (light = 0; light < 255; light++)

{

// 忽略數值介於 140 到 200之間

if ((x > 140) && (x < 200))

continue;

analogWrite(PWMpin, light);

delay(10);

}

return

函數的結尾能夠透過return回傳一個數值。

例如,有一個計算如今溫度的函數叫 computeTemperature(),你想要回傳如今的溫度給temperature變量,你能夠這樣寫:

int temperature = computeTemperature();

int computeTemperature() {

int temperature = 0;

temperature = (analogRead(0) + 45) / 100;

return temperature;

}

goto

語法符號:

;  (分號)

Arduino 語言每一行程序都是以分號爲結尾。這樣的語法讓你能夠自由地安排代碼,你能夠將兩個指令放置在同一行,只要中間用分號隔開。 (但這樣作可能下降程式的可讀性。)
範例:
delay(100);

{} (大括號)

大括號用來將程式代碼分紅一個又一個的區塊,如如下範例所示,在loop()函數的前、後,必須用大括號括起來。

範例:
void loop(){
Serial.pritln("cial");
}
程式的註釋就是對代碼的解釋和說明,編寫註釋有助於程式設計師(或其餘人)瞭解代碼的功能。
Arduino處理器在對程式碼進行編譯時會忽略註釋的部份。
Arduino 語言中的編寫註釋有兩種方式
//單行註釋:這整行的文字會被處理器忽略
/*多行註釋:
在這個範圍內你能夠
寫一整首詩
*/
運算符:

=

+ 相加

- 相減

* 相乘

/ 相除

% 餘數除法

== 等於

!=不等於

< 小於

> 大於

<= 小於等於

>= 大於等於

&& 交集

|| 聯集

! 反相

++ 累加

-- 遞減

+=

-=

*=

/=

數據類型:

boolean 布林

布爾變數的值只能爲真(true)或是假(false)
char 字符

單一字符例如 A,和通常的計算機作法同樣Arduino 將字符儲存成一個數字,即便你看到的明明就是一個文字。

用數字表示一個字符時,它的值有效範圍爲 -128 到127。

注意:有兩種主流的計算機編碼系統ASCII 和UNICODE。ASCII 表示了127個字符, 用來在序列終端機和分時計算器之間傳輸文字。

UNICODE可表示的字符量比較多,在現代計算機操做系統內它能夠用來表示多國語言。

在位數需求較少的信息傳輸時,例如意大利文或英文這類由拉丁文,阿拉伯數字和通常常見符號構成的語言,ASCII還是目前主要用來交換信息的編碼法。
byte 字節類型

儲存的數值範圍爲0到255。如同字符同樣字節型態的變量只須要用一個字節(8位)的內存空間儲存。
int 整數

整數數據型態用到2字節的內存空間,可表示的整數範圍爲 –32,768 到 32,767; 整數變量是Arduino內最經常使用到的數據型態。
unsigned int      無符號整數(絕對值)

無號整數一樣利用2字節的內存空間,無號意謂着它不能儲存負的數值,所以無號整數可表示的整數範圍爲0 到 65,535。
long 長整數

長整數利用到的內存大小是整數的兩倍,所以它可表示的整數範圍從 –2,147,483,648 到 2,147,483,647。
unsigned long        無符號長整數

無號長整數可表示的整數範圍爲0 到 4,294,967,295。
float 浮點數

浮點數就是用來表達有小數點的數值,每一個浮點數會用掉四字節的RAM,注意芯片內存空間的限制,謹慎的使用浮點數
double 雙字節浮點

也叫雙精度浮點數,可表達最大值爲 1.7976931348623157 x 10308。
string 字符串

字符串用來表達文字信息,它是由多個ASCII字符組成(你能夠透過序串端口發送一個文字訊息或者將之顯示在液晶顯示器上)。字符串中的每個字符都用一個組元組空間儲存,而且在字符串的最尾端加上一個空字符以提示Ardunio處理器字符串的結束。下面兩種宣告方式是相同的。

例如:

char string1[] = "Arduino";//7字符+1空字符

char string2[8] = "Arduino"; // 與上行相同
array 數組

一串變量能夠透過索引去直接取得。假如你想要儲存不一樣程度的LED亮度時,你能夠宣告六個變量light01,light02,light03,light04,light05,light06,但其實你有更好的選擇,例如宣告一個整數數組變量以下:

int  light[6] = {0 , 20 , 50 , 75 , 100}

"array" 這個字爲沒有直接用在變量宣告,而是[]和{}宣告數組。
控制指令

數據類型轉換:

char()

byte()

int()

long()

float()

常量:在Arduino語言中事先定義了一些具特殊用途的保留字。

HIGH | LOW

表示數字IO口的電平,HIGH 表示高電平(1),LOW 表示低電平(0)。 HIGH 和LOW 也用來表示你開啓或是關閉了一個Arduino的腳位(pin)

INPUT | OUTPUT

表示數字IO口的方向,INPUT 表示輸入(高阻態),OUTPUT 表示輸出(AVR能提供5V電壓 40mA電流)。

true | false

true 表示真(1),false表示假(0)。

變數:

變量用來指定Arduino 內存中的一個位置,變量能夠用來儲存數據,程序人員能夠透過腳本代碼去不限次數的操做變數的值。

由於Arduino 是一個很是簡易的微處理器,但你要宣告一個變量時必須先定義他的數據型態,好讓微處理器知道準備多大的空間以儲存這個變量值。

以上爲基礎c語言的關鍵字和符號,有c語言基礎的都應該瞭解其含義,這裏也不做過多的解釋。

Arduino 語言

結構

一、聲明變量及接口名稱(int val;int ledPin=13;)。

二、void setup()

在程序開始時使用,在這個函數範圍內放置初始化Arduino 板子的程式,主要程式開始撰寫前, 使Arduino 板子裝置穩當的指令能夠初始化變量、管腳接口模式、啓用庫等(例如:pinMode(ledPin,OUTPUT);)。
三、void loop()

在setup()函數以後,即初始化以後,loop() 讓你的程序循環地被執行。使用它來運轉Arduino。連續執行函數內的語句,這部份的程式會一直重複的被執行,直到Arduino 板子被關閉。

功能

數字 I/O

pinMode(pin, mode)

數字IO口輸入輸出模式定義函數,將接口定義爲輸入或輸出接口,用在setup()函數裏,pin表示爲0~13接口名稱, mode表示爲INPUT或OUTPUT。即「 pinMode(接口名稱,OUTPUT或INPUT)」。

範例 :

pinMode(7,INPUT); // 將腳位 7 設定爲輸入模式

digitalWrite(pin, value)

數字IO口輸出電平定義函數,將數字接口值至高或低、開或關,pin表示爲0~13,value表示爲HIGH或LOW,即digitalWrite(接口名稱, HIGH或LOW)。但腳位必須先透過pinMode明示爲輸入或輸出模式digitalWrite才能生效。好比定義HIGH能夠驅動LED。

範例 :

digitalWrite(8,HIGH); //將腳位 8設定輸出高電位

int digitalRead(pin)

數字IO口讀輸入電平函數,讀出數字接口的值,pin表示爲0~13,value表示爲HIGH或LOW,即digitalRead(接口名稱)。好比能夠讀數字傳感器。當感測到腳位處於高電位時時回傳HIGH,不然回傳LOW。

範例 :

val = digitalRead(7); // 讀出腳位 7 的值並指定給 val

模擬 I/O

int analogRead(pin)

模擬IO口讀函數,從指定的模擬接口讀取值,Arduino對該模擬值進行10-bit的數字轉換,這個方法將輸入的0-5電壓值轉換爲 0到1023間的整數值。pin表示爲0~5(Arduino Diecimila爲0~5,Arduino nano爲0~7)。即「analogRead(接口名稱)」,好比能夠讀模擬傳感器(10位AD,0~5V表示爲0~1023)。

範例 :

val = analogRead(0); //讀出類比腳位 0 的值並指定給 val變數

analogWrite(pin, value)

數字IO口PWM輸出函數,給一個接口寫入模擬值(PWM波)。改變PWM腳位的輸出電壓值。對於 ATmega168芯片的Arduino(包括Mini或BT),該函數能夠工做於 3, 5, 6, 9, 10和 11號接口,即「analogWrite(接口名稱, 數值)」,pin表示3, 5, 6, 9, 10, 11,value表示爲0~255。好比可用於電機PWM調速或音樂播放。

例如:輸出電壓2.5伏特(V),該值大約是128。

範例 :

analogWrite(9,128); // 輸出電壓約2.5伏特(V)

擴展 I/O

shiftOut(dataPin, clockPin, bitOrder, value)

SPI外部IO擴展函數,一般使用帶SPI接口的74HC595作8個IO擴展,把資料傳給用來延伸數位輸出的暫存器,此函式一般使用在延伸數位的輸出。函式使用一個腳位表示資料、一個腳位表示時脈。dataPin爲數據口,clockPin爲時鐘口,bitOrder用來表示位元間移動的方式,爲數據傳輸方向(MSBFIRST高位在前,LSBFIRST低位在前),value會以byte形式輸出,表示所要傳送的數據(0~255),另外還須要一個IO口作74HC595的使能控制。

範例 :

shiftOut(dataPin, clockPin, LSBFIRST, 255);

unsigned long pulseIn(pin, value)

脈衝長度記錄函數,設定讀取腳位狀態的持續時間,返回時間參數(us),例如使用紅外線、加速度感測器測得某一項數值時,在時間單位內不會改變狀態。pin表示爲0~13,value爲HIGH或LOW。好比value爲HIGH,那麼當pin輸入爲高電平時,開始計時,當pin輸入爲低電平時,中止計時,而後返回該時間。

範例 :

time = pulsein(7,HIGH); // 設定腳位7的狀態在時間單位內保持爲HIGH

時間函數

unsigned long millis()

返回時間函數(單位ms), 回傳晶片開始執行到目前的毫秒,該函數是指,當程序運行就開始計時並返回記錄的參數,該參數溢出大概須要50天時間。

範例:

duration = millis()-lastTime; // 表示自"lastTime"至當下的時間

delay(ms) 延時函數(單位ms),延時一段時間,暫停晶片執行多少毫秒,

delay(1000)爲一秒。

範例:

delay(500); //暫停半秒(500毫秒)

delayMicroseconds(us) 延時函數(單位us)暫停晶片執行多少微秒。

delayMicroseconds(1000); //暫停1豪秒

數學函數

min(x, y)

求最小值 ,回傳兩數之間較小者

範例:

val = min(10,20); // 回傳10

max(x, y)

求最大值 ,回傳兩數之間較大者

範例:

val = max(10,20); // 回傳20

abs(x)

計算絕對值 ,回傳該數的絕對值,能夠將負數轉正數。

範例:

val = abs(-5); // 回傳5

constrain(x, a, b) 約束函數,下限a,上限b,判斷x變數位於a與b之間的狀態。x若小於a回傳a;介於a與b之間回傳x自己;大於b回傳b

範例:

val = constrain(analogRead(0), 0, 255); // 忽略大於255的數

map(value, fromLow, fromHigh, toLow, toHigh)

約束函數,value必須在fromLow與toLow之間和fromHigh與toHigh之間。將value變數依照fromLow與fromHigh範圍,對等轉換至toLow與toHigh範圍。時常使用於讀取類比訊號,轉換至程式所須要的範圍值。

例如:

val = map(analogRead(0),0,1023,100, 200); // 將analog0 所讀取到的訊號對等轉換至100,200之間的數值。

pow(base, exponent)

開方函數,base的exponent次方。回傳一個數(base)的指數(exponent)值。

範例:

double x = pow(y, 32); // 設定x爲y的32次方

sq(x) 平方

sqrt(x) 開根號

回傳double型態的取平方根值。

範例:

double a = sqrt(1138); // 回傳1138平方根的近似值 33.73425674438

三角函數

sin (rad)

回傳角度(radians)的三角函數sine值。

範例:

double sine = sin(2); // 近似值 0.90929737091

cos(rad)  

回傳角度(radians)的三角函數cosine值。

範例:

double cosine = cos(2); //近似值-0.41614685058

tan(rad)  

回傳角度(radians)的三角函數tangent值。

範例:

double tangent = tan(2); //近似值-2.18503975868

隨機數函數

randomSeed(seed)

隨機數端口定義函數,seed表示讀模擬口analogRead(pin)函數 。

事實上在Arduino裏的亂數是能夠被預知的。因此若是須要一個真正的亂數,能夠呼叫此函式從新設定產生亂數種子。你可使用亂數看成亂數的種子,以確保數字以隨機的方式出現,一般會使用類比輸入看成亂數種子,藉此能夠產生與環境有關的亂數(例如:無線電波、宇宙雷射線、電話和螢光燈發出的電磁波等)。

範例:

randomSeed(analogRead(5)); // 使用類比輸入看成亂數種子

long random(max)

隨機數函數,返回數據大於等於0,小於max。

範例:

long randnum = random(11);  // 回傳 0 -10之間的數字

long random(min, max)

隨機數函數,返回數據大於等於min,小於max。

範例:

long randnum = random(0, 100); // 回傳0 – 99 之間的數字

外部中斷函數

attachInterrupt(interrupt, , mode)

外部中斷只能用到數字IO口2和3,interrupt表示中斷口初始0或1,表示一個功能函數,mode:LOW低電平中斷,CHANGE有變化就中斷,RISING上升沿中斷,FALLING 降低沿中斷。

detachInterrupt(interrupt)

中斷開關,interrupt=1 開,interrupt=0 關。

中斷使能函數

interrupts() 使能中斷

noInterrupts() 禁止中斷

串口收發函數

Serial.begin(speed)

串口定義波特率函數,設置串行每秒傳輸數據的速率(波特率),能夠指定Arduino從電腦交換訊息的速率,一般咱們使用9600 bps。,speed表示波特率,如9600,19200等。在同計算機通信時,使用下面這些值:300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600或 115200 bps(每秒位元組)。。你也能夠在任什麼時候候使用其它的值,好比,與0號或1號插口通訊就要求特殊的波特率。用在setup()函數裏

範例:

Serial.begin(9600)

int Serial.available()

判斷緩衝器狀態。回傳有多少位元組(bytes)的資料還沒有被read()函式讀取,若是回傳值是0表明全部序列埠上資料都已經被read()函式讀取。

範例:

int count = Serial.available();

int Serial.read()

讀串口並返回收到參數。Serial.read()——讀取持續輸入的數據。讀取1byte的序列資料

範例:

int data = Serial.read();

Serial.flush()

清空緩衝器。 有時候由於資料速度太快,超過程式處理資料的速度,你可使用此函式清除緩衝區內的資料。通過此函式能夠確保緩衝區(buffer)內的資料都是最新的。

範例:

Serial.flush();

Serial.print(data)

從串行端口輸出數據。Serial.print(數據)默認爲十進制等於Serial.print(數據,DEC)。

Serial.print(data, encoding)

經序列埠傳送資料,提供編碼方式的選項。Serial.print(數據,數據的進制)若是沒有指定,預設以通常文字傳送。

範例:

Serial.print(75);  // 列印出 "75"

Serial.print(75, DEC); //列印出 "75"

Serial.print(75, HEX); // "4B" (75 的十六進位)

Serial.print(75, OCT); // "113" (75 in的八進位)

Serial.print(75, BIN); // "1001011" (75的二進位)

Serial.print(75, BYTE); // "K" (以byte進行傳送,顯示以ASCII編碼方式)

Serial.println(data)

從串行端口輸出數據,跟隨一個回車和一個換行符。這個函數所取得的值與 Serial.print()同樣。

Serial.println(data, encoding)

與Serial.print()相同,但會在資料尾端加上換行字元( )。意思如同你在鍵盤上打了一些資料後按下Enter。

範例:

Serial.println(75);  //列印出"75 "

Serial.println(75, DEC); //列印出"75 "

Serial.println(75, HEX); // "4B "

Serial.println(75, OCT); // "113 "

Serial.println(75, BIN); // "1001011 "

Serial.println(75, BYTE); // "K "

以上幾個函數是經常使用基本函數,還有不少之後會慢慢學習

Arduino語言庫文件

官方庫文件

· EEPROM - EEPROM讀寫程序庫

· Ethernet - 以太網控制器程序庫

· LiquidCrystal - LCD控制程序庫

· Servo - 舵機控制程序庫

· SoftwareSerial - 任何數字IO口模擬串口程序庫

· Stepper - 步進電機控制程序庫

· Wire - TWI/I2C總線程序庫

· Matrix - LED矩陣控制程序庫

· Sprite - LED矩陣圖象處理控制程序庫

非官方庫文件

· DateTime - a library for keeping track of the current date and time in software.

· Debounce - for reading noisy digital inputs (e.g. from buttons)

· Firmata - for communicating with applications on the computer using a standard serial protocol.

· GLCD - graphics routines for LCD based on the KS0108 or equivalent chipset.

· LCD - control LCDs (using 8 data lines)

· LCD 4 Bit - control LCDs (using 4 data lines)

· LedControl - for controlling LED matrices or seven-segment displays with a MAX7221 or MAX7219.

· LedControl - an alternative to the Matrix library for driving multiple LEDs with Maxim chips.

· Messenger - for processing text-based messages from the computer

· Metro - help you time actions at regular intervals

· MsTimer2 - uses the timer 2 interrupt to trigger an action every N milliseconds.

· OneWire - control devices (from Dallas Semiconductor) that use the One Wire protocol.

· PS2Keyboard - read characters from a PS2 keyboard.

· Servo - provides software support for Servo motors on any pins.

· Servotimer1 - provides hardware support for Servo motors on pins 9 and 10

· Simple Message System - send messages between Arduino and the computer

· SSerial2Mobile - send text messages or emails using a cell phone (via AT commands over software serial)

· TextString - handle strings

· TLC5940 - 16 channel 12 bit PWM controller.

· X10 - Sending X10 signals over AC power lines

/****************************************/

Arduuino複合運算符

+= , -= , *= , /=
對一個變量和另外一個參數或變量完成一個數學運算。+=(以及其餘)能夠縮短語法長度。

Syntax語法
x += y;    // 等價於 x = x + y;
x -= y;  // 等價於 x = x - y;
x *= y;  // 等價於 x = x * y;
x /= y;  // 等價於 x = x / y;

Parameters參數
x:任何變量類型
y:任何變量類型或常數

Examples範例
x = 2;
x += 4;  // x如今爲6
x -= 3;  // x如今爲3
x *= 10;  // x如今爲30
x /= 2;  // x如今爲15

Syntax語法
x++; // increment x by one and returns the old value of x
// 將x的值加1並返回原來的x的值。  ++x; // increment x by one and returns the new value of x  // 將x的值加1並返回如今的x的值。
x-- ;  // decrement x by one and returns the old value of x  // 將x的值減1並返回原來的x的值。
--x ;  // decrement x by one and returns the new value of x  // 將x的值減1並返回如今的x的值。

Parameters參數
x: an integer or long (possibly unsigned)
x:一個整數或長整數(能夠無符號)

Returns返回
The original or newly incremented / decremented value of the variable.
返回變量原始值或增長/消耗後的新值。

Examples範例
x = 2;
y = ++x;  // x now contains 3, y contains 3  // x如今爲3,y爲3
y = x--;  // x contains 2 again, y still contains 3  // x如今仍然爲2,y將爲3

Arduuino常見語法

常量:

· HIGH | LOW 表示數字IO口的電平,HIGH 表示高電平(1),LOW 表示低電平(0)。

· INPUT | OUTPUT 表示數字IO口的方向,INPUT 表示輸入(高阻態),OUTPUT 表示輸出(AVR能提供5V電壓 40mA電流)。

· true | false true 表示真(1),false表示假(0)。

結構

· void setup()   初始化變量,管腳模式,調用庫函數等

· void loop()  連續執行函數內的語句

數字 I/O

· pinMode(pin, mode)    數字IO口輸入輸出模式定義函數,pin表示爲0~13, mode表示爲INPUT或OUTPUT。

· digitalWrite(pin, value)    數字IO口輸出電平定義函數,pin表示爲0~13,value表示爲HIGH或LOW。好比定義HIGH能夠驅動LED。

· int digitalRead(pin)    數字IO口讀輸入電平函數,pin表示爲0~13,value表示爲HIGH或LOW。好比能夠讀數字傳感器。

模擬 I/O

· int analogRead(pin)    模擬IO口讀函數,pin表示爲0~5(Arduino Diecimila爲0~5,Arduino nano爲0~7)。好比能夠讀模擬傳感器(10位AD,0~5V表示爲0~1023)。

· analogWrite(pin, value) - PWM 數字IO口PWM輸出函數,Arduino數字IO口標註了PWM的IO口可以使用該函數,pin表示3, 5, 6, 9, 10, 11,value表示爲0~255。好比可用於電機PWM調速或音樂播放。

擴展 I/O

· shiftOut(dataPin, clockPin, bitOrder, value)    SPI外部IO擴展函數,一般使用帶SPI接口的74HC595作8個IO擴展,dataPin爲數據口,clockPin爲時鐘口,bitOrder爲數據傳輸方向(MSBFIRST高位在前,LSBFIRST低位在前),value表示所要傳送的數據(0~255),另外還須要一個IO口作74HC595的使能控制。

· unsigned long pulseIn(pin, value)    脈衝長度記錄函數,返回時間參數(us),pin表示爲0~13,value爲HIGH或LOW。好比value爲HIGH,那麼當pin輸入爲高電平時,開始計時,當pin輸入爲低電平時,中止計時,而後返回該時間。

時間函數

· unsigned long millis()   返回時間函數(單位ms),該函數是指,當程序運行就開始計時並返回記錄的參數,該參數溢出大概須要50天時間。

· delay(ms)    延時函數(單位ms)。

· delayMicroseconds(us)    延時函數(單位us)。

數學函數

· min(x, y)  求最小值

· max(x, y)  求最大值

· abs(x)   計算絕對值

· constrain(x, a, b)  約束函數,下限a,上限b,x必須在ab之間才能返回。

· map(value, fromLow, fromHigh, toLow, toHigh)    約束函數,value必須在fromLow與toLow之間和fromHigh與toHigh之間。

· pow(base, exponent)  開方函數,base的exponent次方。

· sq(x)     平方

· sqrt(x)   開根號

三角函數

· sin(rad)

· cos(rad)

· tan(rad)

隨機數函數

· randomSeed(seed)   隨機數端口定義函數,seed表示讀模擬口analogRead(pin)函數 。

· long random(max)   隨機數函數,返回數據大於等於0,小於max。

· long random(min, max)   隨機數函數,返回數據大於等於min,小於max。

外部中斷函數

· attachInterrupt(interrupt, , mode)     外部中斷只能用到數字IO口2和3,interrupt表示中斷口初始0或1,表示一個功能函數,mode:LOW低電平中斷,CHANGE有變化就中斷,RISING上升沿中斷,FALLING 降低沿中斷。

· detachInterrupt(interrupt)    中斷開關,interrupt=1 開,interrupt=0 關。

中斷使能函數

· interrupts()  使能中斷

· noInterrupts()  禁止中斷

串口收發函數

· Serial.begin(speed)  串口定義波特率函數,speed表示波特率,如9600,19200等。

· int Serial.available()  判斷緩衝器狀態。

· int Serial.read()   讀串口並返回收到參數。

· Serial.flush()    清空緩衝器。

· Serial.print(data)  串口輸出數據。

· Serial.println(data)   串口輸出數據並帶回車符。

/************Arduino語言庫文件*************/

官方庫文件

· EEPROM - EEPROM讀寫程序庫

· Ethernet - 以太網控制器程序庫

· LiquidCrystal - LCD控制程序庫

· Servo - 舵機控制程序庫

· SoftwareSerial - 任何數字IO口模擬串口程序庫

· Stepper - 步進電機控制程序庫

· Wire - TWI/I2C總線程序庫

· Matrix - LED矩陣控制程序庫

· Sprite - LED矩陣圖象處理控制程序庫

非官方庫文件

· DateTime - a library for keeping track of the current date and time in software.

· Debounce - for reading noisy digital inputs (e.g. from buttons)

· Firmata - for communicating with applications on the computer using a standard serial protocol.

· GLCD - graphics routines for LCD based on the KS0108 or equivalent chipset.

· LCD - control LCDs (using 8 data lines)

· LCD 4 Bit - control LCDs (using 4 data lines)

· LedControl - for controlling LED matrices or seven-segment displays with a MAX7221 or MAX7219.

· LedControl - an alternative to the Matrix library for driving multiple LEDs with Maxim chips.

· Messenger - for processing text-based messages from the computer

· Metro - help you time actions at regular intervals

· MsTimer2 - uses the timer 2 interrupt to trigger an action every N milliseconds.

· OneWire - control devices (from Dallas Semiconductor) that use the One Wire protocol.

· PS2Keyboard - read characters from a PS2 keyboard.

· Servo - provides software support for Servo motors on any pins.

· Servotimer1 - provides hardware support for Servo motors on pins 9 and 10

· Simple Message System - send messages between Arduino and the computer

· SSerial2Mobile - send text messages or emails using a cell phone (via AT commands over software serial)

· TextString - handle strings

· TLC5940 - 16 channel 12 bit PWM controller.

· X10 - Sending X10 signals over AC power lines

/****************************************/

相關文章
相關標籤/搜索