日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Arduino 语法参考

發(fā)布時(shí)間:2024/3/12 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Arduino 语法参考 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Arduino 語(yǔ)法參考

  • 程序功能
    • 數(shù)字輸入/輸出
    • 模擬輸入/輸出
    • Zero、Due、MKR 系列、Nano 33(BLE 和 IoT)和 Portenta 的模擬 API 的擴(kuò)展
    • 高級(jí)輸入/輸出
    • 延時(shí)函數(shù)
    • 數(shù)學(xué)運(yùn)算
    • 三角運(yùn)算
    • 字符處理
    • 隨機(jī)數(shù)
    • 位和字節(jié)
    • 外部中斷
    • 通信端口
    • USB設(shè)備
  • 數(shù)據(jù)類型
    • 常數(shù)
    • 類型轉(zhuǎn)換
    • 數(shù)據(jù)類型
    • 變量范圍和限定符
    • 類型工具
  • 程序結(jié)構(gòu)
    • 程序框架
    • 程序流程
    • 算術(shù)運(yùn)算符
    • 比較運(yùn)算符
    • 布爾運(yùn)算符
    • 指針訪問運(yùn)算符
    • 按位運(yùn)算符
    • 復(fù)合運(yùn)算符
    • 其他語(yǔ)法

程序功能

用于控制 Arduino 板和執(zhí)行計(jì)算。

數(shù)字輸入/輸出

  • digitalRead(pin)

參數(shù)
pin:Arduino 引腳編號(hào)。

描述 讀取指定的數(shù)字引腳的值,無(wú)論是HIGH或LOW。

句法 digitalRead(pin)

參數(shù) pin:您要讀取的 Arduino 引腳編號(hào)

返回 HIGH 或者 LOW

  • digitalWrite(pin, value)

參數(shù)
pin:Arduino 引腳編號(hào)。
value:HIGH或LOW。

描述 將一個(gè)HIGH或一個(gè)LOW值寫入數(shù)字引腳。

如果引腳已配置為OUTPUT帶pinMode(),則其電壓將設(shè)置為相應(yīng)的值:5V(或 3.3V 板上的
3.3V)代表HIGH,0V(接地)代表LOW。

如果引腳配置為INPUT,digitalWrite()將啟用 ( HIGH) 或禁用 ( LOW)
輸入引腳上的內(nèi)部上拉。建議設(shè)置pinMode()以INPUT_PULLUP使能內(nèi)部上拉電阻。

  • pinMode(pin, mode)

參數(shù) pin:要設(shè)置模式的 Arduino 引腳號(hào)。
mode: INPUT, OUTPUT, 或INPUT_PULLUP

描述 配置指定的引腳作為輸入或輸出 句法 pinMode(pin, mode)

模擬輸入/輸出

  • analogRead(pin)

參數(shù)
pin:要讀取的模擬輸入引腳的名稱

返回值
引腳上的模擬讀數(shù)

從指定的模擬引腳讀取值。Arduino 板包含一個(gè)多通道、10 位模數(shù)轉(zhuǎn)換器。這意味著它會(huì)將 0 和工作電壓(5V 或
3.3V)之間的輸入電壓映射為 0 和 1023 之間的整數(shù)值

  • analogReference(type)

配置用于模擬輸入的參考電壓(即用作輸入范圍頂部的值)

注意事項(xiàng)和警告
更改模擬參考后,前幾個(gè)讀數(shù)analogRead()可能不準(zhǔn)確。

不要使用任何低于 0V 或高于 5V 的電壓作為 AREF 引腳上的外部參考電壓!如果您在 AREF 引腳上使用外部參考,則必須在調(diào)用之前將模擬參考設(shè)置為 EXTERNAL analogRead()。否則,您會(huì)將有效參考電壓(內(nèi)部生成)和 AREF 引腳短路,可能會(huì)損壞 Arduino 板上的微控制器

  • analogWrite(pin, value)

參數(shù)
pin:要寫入的 Arduino 引腳。允許的數(shù)據(jù)類型:int.
value:占空比:介于 0(始終關(guān)閉)和 255(始終打開)之間。允許的數(shù)據(jù)類型:int.

將模擬值(PWM 波)寫入引腳。可用于以不同的亮度點(diǎn)亮 LED 或以不同的速度驅(qū)動(dòng)電機(jī)。調(diào)用 后analogWrite(),該引腳將生成指定占空比的穩(wěn)定矩形波,直到在同一引腳上下一次調(diào)用analogWrite()

示例代碼
將輸出設(shè)置為與從電位計(jì)讀取的值成比例的 LED。

int ledPin = 9; // LED connected to digital pin 9 int analogPin = 3; // potentiometer connected to analog pin 3 int val = 0; // variable to store the read valuevoid setup() {pinMode(ledPin, OUTPUT); // sets the pin as output }void loop() {val = analogRead(analogPin); // read the input pinanalogWrite(ledPin, val / 4); // analogRead values go from 0 to 1023, analogWrite values from 0 to 255 }

Zero、Due、MKR 系列、Nano 33(BLE 和 IoT)和 Portenta 的模擬 API 的擴(kuò)展

  • analogReadResolution()
  • analogWriteResolution()

高級(jí)輸入/輸出

  • noTone(pin)

參數(shù)
pin:停止生成音調(diào)的 Arduino 引腳

停止生成由 觸發(fā)的方波tone()。如果沒有產(chǎn)生音調(diào),則無(wú)效。

注意事項(xiàng)和警告
如果您想在多個(gè)引腳上演奏不同的音高,則需要先調(diào)用noTone()一個(gè)引腳,然后再調(diào)用tone()下一個(gè)引腳

  • pulseIn(pin, value)
  • pulseIn(pin, value, timeout)

參數(shù)
pin:要讀取脈沖的 Arduino 引腳編號(hào)。允許的數(shù)據(jù)類型:int.
value:要讀取的脈沖類型:HIGH或LOW。允許的數(shù)據(jù)類型:int.
timeout(可選):等待脈沖開始的微秒數(shù);默認(rèn)為一秒。允許的數(shù)據(jù)類型:unsigned long.

讀取引腳上的脈沖(HIGH或LOW)。例如,如果value是HIGH,則pulseIn()等待引腳從LOW到HIGH,開始計(jì)時(shí),然后等待引腳離開LOW并停止計(jì)時(shí)。以微秒為單位返回脈沖的長(zhǎng)度,如果在超時(shí)內(nèi)沒有收到完整的脈沖,則放棄并返回
0

  • pulseInLong(pin, value)
  • pulseInLong(pin, value, timeout)

參數(shù)
pin:要讀取脈沖的 Arduino 引腳編號(hào)。允許的數(shù)據(jù)類型:int.
value:要讀取的脈沖類型:HIGH或LOW。允許的數(shù)據(jù)類型:int.
timeout(可選):等待脈沖開始的微秒數(shù);默認(rèn)為一秒。允許的數(shù)據(jù)類型:unsigned long.

返回值

脈沖的長(zhǎng)度(以微秒為單位),如果在超時(shí)之前沒有脈沖開始,則為 0。數(shù)據(jù)類型:unsigned long

pulseInLong()是pulseIn()的替代方法,它更擅長(zhǎng)處理長(zhǎng)脈沖和中斷受影響的場(chǎng)景。

讀取引腳上的脈沖(HIGH或LOW)。例如,如果value是HIGH,則pulseInLong()等待引腳從LOW到HIGH,開始計(jì)時(shí),然后等待引腳離開LOW并停止計(jì)時(shí)。以微秒為單位返回脈沖的長(zhǎng)度,如果在超時(shí)內(nèi)沒有收到完整的脈沖,則放棄并返回
0。

此功能的時(shí)序已根據(jù)經(jīng)驗(yàn)確定,并且可能會(huì)在較短的脈沖中顯示錯(cuò)誤。適用于長(zhǎng)度從 10 微秒到 3
分鐘的脈沖。只有在激活中斷時(shí)才能使用該例程。此外,以大間隔獲得最高分辨率

注意事項(xiàng)和警告
此函數(shù)依賴于micros()所以不能在noInterrupts()上下文中使用

  • byte incoming = shiftIn(dataPin, clockPin, bitOrder)

參數(shù)
dataPin:輸入每一位的引腳。允許的數(shù)據(jù)類型:int.
clockPin:切換到從dataPin讀取信號(hào)的引腳。
bitOrder: 在位中移動(dòng)的順序;要么MSBFIRST或LSBFIRST。(最高有效位在前,或最低有效位在前)

返回值

讀取的值。數(shù)據(jù)類型:byte.

一次一位地移入一個(gè)字節(jié)的數(shù)據(jù)。從最高(即最左側(cè))或最低(最右側(cè))有效位開始。對(duì)于每一位,時(shí)鐘引腳被拉高,從數(shù)據(jù)線讀取下一位,然后時(shí)鐘引腳被拉低。

如果您與由上升沿計(jì)時(shí)的設(shè)備接口,則需要確保在第一次調(diào)用
之前時(shí)鐘引腳為低電平shiftIn(),例如調(diào)用digitalWrite(clockPin, LOW)。

注意:這是一個(gè)軟件實(shí)現(xiàn);Arduino 還提供了一個(gè)使用硬件實(shí)現(xiàn)的SPI 庫(kù),該庫(kù)速度更快但僅適用于特定引腳

  • shiftOut(dataPin, clockPin, bitOrder, value)

參數(shù)
dataPin:輸出每一位的引腳。允許的數(shù)據(jù)類型:int.
clockPin:一旦 dataPin 被設(shè)置為正確的值就切換的引腳。允許的數(shù)據(jù)類型:int.
bitOrder: 移出位的順序;MSBFIRST 或 LSBFIRST。(最高有效位在前,或最低有效位在前)。
value: 要移出的數(shù)據(jù)。允許的數(shù)據(jù)類型:byte.

一次一位地移出一個(gè)字節(jié)的數(shù)據(jù)。從最高(即最左側(cè))或最低(最右側(cè))有效位開始。每個(gè)位依次寫入數(shù)據(jù)引腳,之后時(shí)鐘引腳發(fā)出脈沖信號(hào)(先變?yōu)楦唠娖?#xff0c;然后變?yōu)榈碗娖?#xff09;以指示該位可用。

注意 - 如果您與由上升沿計(jì)時(shí)的設(shè)備接口,則需要確保在調(diào)用
之前時(shí)鐘引腳為低電平shiftOut(),例如調(diào)用digitalWrite(clockPin, LOW)。

這是一個(gè)軟件實(shí)現(xiàn);另請(qǐng)參閱SPI 庫(kù),它提供了一個(gè)更快但僅適用于特定引腳的硬件實(shí)現(xiàn)

  • tone(pin, frequency)
  • tone(pin, frequency, duration)

參數(shù)
pin:在其上生成音調(diào)的 Arduino 引腳。
frequency:以赫茲為單位的音調(diào)頻率。允許的數(shù)據(jù)類型:unsigned int.
duration:以毫秒為單位的音調(diào)持續(xù)時(shí)間(可選)。允許的數(shù)據(jù)類型:unsigned long.

在引腳上生成指定頻率(和 50%
占空比)的方波。可以指定持續(xù)時(shí)間,否則波形將繼續(xù)直到調(diào)用noTone()。該引腳可以連接到壓電蜂鳴器或其他揚(yáng)聲器以播放音調(diào)。

一次只能產(chǎn)生一種音調(diào)。如果音調(diào)已經(jīng)在不同的引腳上播放,則呼叫tone()將無(wú)效。如果音調(diào)在同一引腳上播放,則呼叫將設(shè)置其頻率

延時(shí)函數(shù)

  • delay(ms)

參數(shù)
ms:暫停的毫秒數(shù)。允許的數(shù)據(jù)類型:unsigned long.

暫停程序指定為參數(shù)的時(shí)間量(以毫秒為單位)。(一秒鐘有 1000 毫秒。)

  • delayMicroseconds(us)

參數(shù)
us:暫停的微秒數(shù)。允許的數(shù)據(jù)類型:unsigned int

暫停程序由參數(shù)指定的時(shí)間量(以微秒為單位)。一毫秒有一千微秒,一秒有一百萬(wàn)微秒

  • time = micros()

返回值
返回自 Arduino 板開始運(yùn)行當(dāng)前程序以來(lái)的微秒數(shù)

返回自 Arduino 板開始運(yùn)行當(dāng)前程序以來(lái)的微秒數(shù)。該數(shù)字將在大約 70 分鐘后溢出(返回零)。

  • time = millis()

返回值
自程序啟動(dòng)以來(lái)經(jīng)過(guò)的毫秒數(shù)。數(shù)據(jù)類型:unsigned long.

返回自 Arduino 板開始運(yùn)行當(dāng)前程序以來(lái)經(jīng)過(guò)的毫秒數(shù)。該數(shù)字將在大約 50 天后溢出(返回零)

數(shù)學(xué)運(yùn)算

  • abs(x)

返回值
x: 如果 x 大于或等于 0。
-x: 如果 x 小于 0。

計(jì)算一個(gè)數(shù)的絕對(duì)值

  • constrain(x, a, b)

參數(shù)
x: 限制數(shù)量允許的數(shù)據(jù)類型:所有數(shù)據(jù)類型。
a: 范圍的下限。允許的數(shù)據(jù)類型:所有數(shù)據(jù)類型。
b: 范圍的上限。允許的數(shù)據(jù)類型:所有數(shù)據(jù)類型

返回值

x:如果 x 在 a 和 b 之間。
a:如果 x 小于 a。
b:如果 x 大于 b。

將數(shù)字限制在一個(gè)范圍內(nèi)

map()
max()
min()
pow()
sq()
sqrt()

三角運(yùn)算

cos()
sin()
tan()

字符處理

isAlpha()
isAlphaNumeric()
isAscii()
isControl()
isDigit()
isGraph()
isHexadecimalDigit()
isLowerCase()
isPrintable()
isPunct()
isSpace()
isUpperCase()
isWhitespace()

隨機(jī)數(shù)

random()
randomSeed()

位和字節(jié)

bit()
bitClear()
bitRead()
bitSet()
bitWrite()
highByte()
lowByte()

外部中斷

attachInterrupt()
detachInterrupt()

通信端口

Serial
Stream

USB設(shè)備

Keyboard
Mouse

數(shù)據(jù)類型

Arduino 數(shù)據(jù)類型和常量。

常數(shù)

HIGH | LOW
INPUT | OUTPUT | INPUT_PULLUP
LED_BUILTIN
true | false
Floating Point Constants
Integer Constants

類型轉(zhuǎn)換

(unsigned int)
(unsigned long)
byte()
char()
float()
int()
long()
word()

數(shù)據(jù)類型

array
bool
boolean
byte
char
double
float
int
long
short
size_t
string
String()
unsigned char
unsigned int
unsigned long
void
word

變量范圍和限定符

const
scope
static
volatile

類型工具

PROGMEM
sizeof()

程序結(jié)構(gòu)

Arduino (C++) 代碼的結(jié)構(gòu)

程序框架

loop()
setup()

程序流程

break
continue
do…while
else
for
goto
if
return
switch…case
while

算術(shù)運(yùn)算符

%(余數(shù))
*(乘法)
+(加法)
-(減法)
/(除法)
=(賦值運(yùn)算符)

比較運(yùn)算符

!=(不等于)
<(小于)
<=(小于或等于)
==(等于)
>(大于)
>=(大于或等于)

布爾運(yùn)算符

!(邏輯非)
&& (邏輯與)
|| (邏輯或)

指針訪問運(yùn)算符

&(引用運(yùn)算符)
*(解引用運(yùn)算符)

按位運(yùn)算符

&(按位與)
<<(左移)
>>(右移)
^(按位異或)
| (按位或)
~(按位不)

復(fù)合運(yùn)算符

%=(復(fù)合余數(shù))
&=(復(fù)合按位和)
*=(復(fù)合乘法)
++(遞增)
+=(復(fù)合加法)
–(遞減)
-=(復(fù)合減法)
/=(復(fù)合除法)
^=(復(fù)合按位異或)
|=(復(fù)合按位或)

其他語(yǔ)法

#define (define)
#include (include)
/* */ (塊注釋)
// (單行注釋)
; (分號(hào))
{}(花括號(hào))

資料來(lái)自于:https://www.arduino.cc/reference/en/

總結(jié)

以上是生活随笔為你收集整理的Arduino 语法参考的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。