彰化一整天的論壇

 找回密碼
 立即註冊
查看: 943|回復: 5

arduino常用函數

[複製鏈接]
發表於 2016-11-25 13:26:06 | 顯示全部樓層 |閱讀模式
pinMode() 設定輸入輸出的pin腳
digitalWrite() 設定數位輸出的high/low
digitalRead() 讀取數位輸出的狀態
analogRead() 讀取類比輸出的值
analogWrite() 寫類比的PWM 值
delay() 延遲(單位為毫秒)
Serial.begin() 設定鮑率,設定完成就可以開始使用串列傳輸
Serial.print() 送資料到電腦(不換行)
Serial.println() 送資料到電腦(每送出一筆資料就換行)
Serial.read() 從電腦讀資料

回復

使用道具 舉報

 樓主| 發表於 2016-11-25 13:26:54 | 顯示全部樓層
函式 (1)
Arduino語法相較於C語言具有方便性的最重要原因,就是Arduino已然為你編寫
好了許多的函式,你只需要依照函式的格式去編寫,就可以簡單的得到你所想要
的功能,以下我們將介紹幾種我們較常使用到的函式,當然你也可以到Arduino
的官網去搜尋是否有你所需要的函式來使用。
(網址:http://arduino.cc/en/Reference/HomePage)
pinMode(pin, mode)
將數位腳位(digital pin)指定為輸入或輸出。
例: pinMode(7,INPUT); // 將腳位7 設定為輸入模式
digitalWrite(pin, value)
將數位腳位指定為開或關。
例: digitalWrite(8,HIGH); //將腳位8設定輸出高電位
請注意腳位必須先透過pinMode設定為輸入或輸出模式digitalWrite才能生效。
int digitalRead(pin)
將輸入腳位的值讀出,當感測到腳位處於高電位時時回傳HIGH,否則回傳LOW。
例: val = digitalRead(7); // 讀出腳位7 的值並指定給val
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2016-11-25 13:27:27 | 顯示全部樓層
discuz 發表於 2016-11-25 13:26
函式 (1)
Arduino語法相較於C語言具有方便性的最重要原因,就是Arduino已然為你編寫
好了許多的函式,你只 ...

函式 (2)
int analogRead(pin)
讀出類比腳位的電壓並回傳一個十位元( 0~1023) 的數值表示相對應的0到5的電壓值
例: val = analogRead(0); //讀出類比腳位0 的值並指定給val變數
analogWrite(pin, value)
改變PWM腳位的輸出類比電壓值,Arduino 的PWM腳位為3、5、6、9、10與11。
Value變數範圍0(0V)~255(5V),例如:輸出電壓2.5伏特(V)該值大約是128。
例: analogWrite(9,128); // 輸出電壓約2.5伏特(V)
unsigned long millis()
回傳晶片開始執行到目前的毫秒
例: duration = millis()-lastTime; // 表示自“lastTime”至當下的時間
delay(ms)
暫停晶片執行多少毫秒(10-3秒),但此時所有的輸出的狀態都會維持住,所以在控制輸
出時間很常使用這函式。
例: delay(500); //暫停0.5秒(500毫秒)
delay Microseconds(us)
暫停晶片執行多少微秒(μsec,百萬分之一秒,10-6秒)。
例: delayMicroseconds(500); //暫停0.5毫秒
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2016-11-25 13:27:54 | 顯示全部樓層
discuz 發表於 2016-11-25 13:27
函式 (2)
int analogRead(pin)
讀出類比腳位的電壓並回傳一個十位元( 0~1023) 的數值表示相對應的0到5的 ...

數學函式 (1)
除了基本運算子外,Arduino也提供了許多數學函式使我們能夠更加方便在工程
上使用。
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)
判斷x變數位於a與b之間的狀態。x若小於a回傳a;介於a與b之間回傳x本身; 大
於b回傳b
例: val = constrain(analogRead(0), 0, 255); // 忽略大於255的數
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2016-11-25 13:28:16 | 顯示全部樓層
discuz 發表於 2016-11-25 13:27
數學函式 (1)
除了基本運算子外,Arduino也提供了許多數學函式使我們能夠更加方便在工程
上使用。

數學函式 (2)
map(value, from Low, from High, to Low, to High)
將value變數依照from Low與from High範圍,對等轉換至to Low與to High範圍。
時常使用於讀取類比訊號,轉換至程式所需要的範圍值。
例: val = map(analogRead(0),0,1023,100, 200);
// 將analog0 所讀取到的訊號對等轉換至100 – 200之間的數值。
double pow(base, exponent)
回傳一個數(base)的指數(exponent)值。
例: double x = pow(y, 32); // 設定x為y的32次方
double sqrt(x)
回傳double型態的取平方根值。
例: double a = sqrt(1138);
// 回傳1138平方根的近似值33.73425674438
double sin(rad)
回傳角度(radians)的三角函數sine值。
例: double sine = sin(2); // 近似值0.90929737091
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2016-11-25 13:28:38 | 顯示全部樓層
discuz 發表於 2016-11-25 13:28
數學函式 (2)
map(value, from Low, from High, to Low, to High)
將value變數依照from Low與from High範 ...

數學函式 (3)
double cos(rad)
回傳角度(radians)的三角函數cosine值。
例: double cosine = cos(2); //近似值-0.41614685058
double tan(rad)
回傳角度(radians)的三角函數tangent值。
例: double tangent = tan(2); //近似值-2.18503950868
long random(max)
long random(min, max)
回傳指定區間的亂數,型態為long。如果沒有指定最小值,預設為0。
例:
long randnum = random(0, 100); // 回傳0 – 99 之間的數字
long randnum = random(11); // 回傳0 -10之間的數字
回復 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

Archiver|手機版|小黑屋|彰化一整天的論壇(Excel,Office)  |网站地图

GMT+8, 2018-10-16 21:25 , Processed in 0.115253 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表