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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

玩转Mixly – 2、Arduino AVR编程 之 输入输出

發布時間:2025/4/5 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 玩转Mixly – 2、Arduino AVR编程 之 输入输出 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

以下內容源自Mixly官方技術文檔:

https://mixly.readthedocs.io/zh_CN/latest/Arduino/AVR/01Input-Output.html

?

輸入/輸出

輸入/輸出所包含的指令主要分為四部分:控制管腳的輸入輸出(按信號類型可分為數字信號和模擬信號)、中斷、脈沖長度及ShiftOut。

  • 輸入輸出:數字輸入、數字輸出、模擬輸入、模擬輸出

  • 中斷控制:定義中斷,取消中斷

  • 脈沖長度

  • 移位輸出

1.數字輸出

1

2

digitalWrite(0,HIGH);//輸出高電平

digitalWrite(0,LOW);//輸出低電平

?

?

1.1 描述

給一個數字引腳寫入HIGH或者LOW。

1.2 參數

  • 管腳: 引腳編號(如1,5,10,A0,A3)

  • 值: 高 或 低

1.3 范例

將13號端口設置為高電平,延遲一秒,然后設置為低電平,再延遲一秒,如此往復。

1

2

3

4

5

6

7

8

9

void setup(){

pinMode(13, OUTPUT);

}

void loop(){

digitalWrite(13,HIGH);

delay(1000);

digitalWrite(13,LOW);

delay(1000);

}

?

?

注意

數字13號引腳難以作為數字輸入使用,因為大部分的控制板上使用了一顆LED與一個電阻連接到他。如果啟動了內部的20K上拉電阻,他的電壓將在1.7V左右,而不是正常的5V,因為板載LED串聯的電阻把他使他降了下來,這意味著他返回的值總是LOW。如果必須使用數字13號引腳的輸入模式,需要使用外部上拉下拉電阻。

注意

模擬引腳也可以當做數字引腳使用,使用方法是管腳設置為A0,A1,A2等。

2.數字輸入

1

digitalRead(0);

?

?

2.1 描述

讀取指定引腳的值,HIGH或LOW。

2.2 參數

  • 管腳: 引腳編號(如1,5,10,A0,A3)

2.3 返回

HIGH 或 LOW

2.4 范例

讀取數字0號引腳的值,并通過串口打印出來。

1

2

3

4

5

6

7

void setup(){

Serial.begin(9600);

pinMode(0, INPUT);

}

void loop(){

Serial.println(digitalRead(0));

}

?

?

注意

如果引腳懸空,digitalRead()會返回HIGH或LOW(隨機變化)。

3.模擬輸入

1

analogRead(A0);

?

?

3.1 描述

從指定的模擬引腳讀取數據值。

Arduino板包含一個6通道(Mini和Nano有8個通道,Mega有16個通道),10位模擬數字轉換器。這意味著它將0至5伏特之間的輸入電壓映射到0至1023之間的整數值。

3.2 參數

  • 管腳: 引腳編號(如A0,A1,A2,A3)不同的開發板模擬輸入引腳數量不一樣。

3.3 返回

從0到1023的整數值

3.4 范例

讀取模擬A0引腳的值,并通過串口打印出來。

1

2

3

4

5

6

void setup(){

Serial.begin(9600);

}

void loop(){

Serial.println(analogRead(A0));

}

?

?

注意

如果模擬輸入引腳沒有連入電路,由analogRead()返回的值將根據多項因素(例如其他模擬輸入引腳,你的手靠近板子等)產生波動。

4.模擬輸出

1

analogWrite(3,100);

?

?

4.1 描述

從一個引腳輸出模擬值(PWM)。 可用于讓LED以不同的亮度點亮或驅動電機以不同的速度旋轉。

4.2 參數

  • 管腳:引腳編號(如3,5,6,9,10,11)不同的開發板模擬輸入引腳數量不一樣。

  • 賦值:0(完全關閉)到255(完全打開)之間。

4.3 范例

控制LED實現呼吸燈效果。

1

2

3

4

5

6

7

8

9

10

11

12

void setup(){

}

void loop(){

for (int i = 0; i <= 255; i = i + (1)) {

analogWrite(10,i);

delay(10);

}

for (int i = 255; i >= 0; i = i + (-1)) {

analogWrite(10,i);

delay(10);

}

}

?

?

注意

analogWrite函數與模擬引腳、analogRead函數沒有直接關系。 在大多數Arduino板(ATmega168或ATmega328),只有引腳3,5,6,9,10和11可以實現該功能。 在Arduino Mega上,引腳2到13可以實現該功能。

5.中斷指令

1

2

3

4

5

6

7

8

void attachInterrupt_fun_2() {

}

void setup(){

pinMode(2, INPUT);

}

void loop(){

attachInterrupt(digitalPinToInterrupt(2),attachInterrupt_fun_2,RISING);

}

?

?

5.1 描述

當發生外部中斷時,調用一個指定函數。當中斷發生時,該函數會取代正在執行的程序。

大多數的Arduino板有兩個外部中斷:0(數字引腳2)和1(數字引腳3)。

Arduino Mege有四個外部中斷:數字2(引腳21),3(20針),4(引腳19),5(引腳18)。

ESP8266 、ESP32系列有更多中斷。

5.2 參數

  • 管腳: 引腳編號(如2,3)不同的開發板中斷引腳不一樣。

  • 模式:

改變:當引腳電平發生改變時,觸發中斷

上升:當引腳由低電平變為高電平時,觸發中斷

下降:當引腳由高電平變為低電平時,觸發中斷

5.3 范例

利用2號引腳中斷,控制13號引腳的LED亮滅。

1

2

3

4

5

6

7

8

9

10

11

12

13

volatile boolean state;

void attachInterrupt_fun_2() {

state = !state;

digitalWrite(13,state);

}

void setup(){

state = false;

pinMode(2, INPUT);

pinMode(13, OUTPUT);

attachInterrupt(digitalPinToInterrupt(2),attachInterrupt_fun_2,RISING);

}

void loop(){

}

?

?

注意

當中斷函數發生時,delay()和millis()的數值將不會繼續變化。當中斷發生時,串口收到的數據可能會丟失。你應該聲明一個變量來在未發生中斷時儲存變量。

6.取消中斷

1

detachInterrupt(digitalPinToInterrupt(2));

?

?

6.1 描述

關閉給定的中斷。

6.2 參數

  • 管腳: 引腳編號(如2,3)不同的開發板中斷引腳不一樣。

7. 脈沖長度

1

2

pulseIn(0, HIGH);

pulseIn(0, HIGH, 1000000);

?

?

7.1 描述

讀取一個引腳的脈沖(HIGH或LOW)。

例如,如果value是HIGH,pulseIn()會等待引腳變為HIGH,開始計時,再等待引腳變為LOW并停止計時。返回脈沖的長度,單位微秒。如果在指定的時間內無脈沖,函數返回。 此函數的計時功能由經驗決定,長時間的脈沖計時可能會出錯。計時范圍從10微秒至3分鐘。(1秒=1000毫秒=1000000微秒)

7.2 參數

  • 管腳:你要進行脈沖計時的引腳號(int)。

  • 狀態:要讀取的脈沖類型,HIGH或LOW(int)。

  • 超時 (可選):指定脈沖計數的等待時間,單位為微秒,默認值是1秒(unsigned long)。

7.3 返回

脈沖長度(微秒),如果等待超時返回0(unsigned long)

7.4 范例

讀取6號引腳脈沖時長。

1

2

3

4

5

6

7

void setup(){

Serial.begin(9600);

pinMode(6, INPUT);

}

void loop(){

Serial.println(pulseIn(6, HIGH));

}

?

?

8.管腳模式

1

pinMode(0, INPUT);

?

?

8.1 描述

設置指定管腳的模式。

8.2 參數

  • 管腳: 引腳編號(如2,3)不同的開發板中斷引腳不一樣。

  • 模式: 要將管腳設置成的模式,包括輸入、輸出、上拉輸入。

9.ShiftOut

1

2

shiftOut(0,0,MSBFIRST,0);//高位先入

shiftOut(0,0,LSBFIRST,0);//低位先入

?

?

9.1 描述

將一個數據的一個字節一位一位的移出。從最高有效位(最左邊)或最低有效位(最右邊)開始。依次向數據腳寫入每一位,之后時鐘腳被拉高或拉低,指示剛才的數據有效。

9.2 參數

  • 數據管腳:輸出每一位數據的引腳(int)

  • 時鐘管腳:時鐘腳,當數據管腳有值時此引腳電平變化(int)

  • 順序:輸出位的順序,最高位優先或最低位優先

  • 數值: 要移位輸出的數據(byte)

10.管腳中斷

1

PCintPort::attachInterrupt(0,attachPinInterrupt_fun_0,RISING);

?

?

10.1 描述

當發生外部中斷時,調用一個指定函數。當中斷發生時,該函數會取代正在執行的程序。

本模塊為模擬中斷,支持所有管腳使用。

10.2 參數

  • 管腳: 引腳編號(如2,3)不同的開發板中斷引腳不一樣。

  • 模式:

改變:當引腳電平發生改變時,觸發中斷

上升:當引腳由低電平變為高電平時,觸發中斷

下降:當引腳由高電平變為低電平時,觸發中斷

10.3 范例

利用中斷,控制13號引腳的LED亮滅。

注意

當中斷函數發生時,delay()和millis()的數值將不會繼續變化。當中斷發生時,串口收到的數據可能會丟失。你應該聲明一個變量來在未發生中斷時儲存變量。

11.取消管腳中斷

1

detachInterrupt(digitalPinToInterrupt(2));

?

?

11.1 描述

關閉給定的中斷。

11.2 參數

  • 管腳: 引腳編號(如2,3)不同的開發板中斷引腳不一樣。

12.多功能按鍵

1

2

3

4

5

6

7

8

9

OneButton button0(0,true);

void attachClick0() {

}

void setup(){

button0.attachClick(attachClick0);

}

void loop(){

button0.tick();

}

?

?

12.1 描述

設置特定管腳連接的按鈕為多功能按鈕,并確定不同模式下執行不同的程序。

12.2 參數

  • 多功能按鍵: 引腳編號(如1,5,10,A0,A3)

  • 模式: 單擊 雙擊 長按開始 長按中 長按結束

12.3 范例

將2號端口連接的按鈕設置為多功能按鈕,單擊時串口提示“one Click”

1

2

3

4

5

6

7

8

9

10

11

OneButton button2(2,true);

void attachClick2() {

Serial.println("one Click");

}

void setup(){

button2.attachClick(attachClick2);

Serial.begin(9600);

}

void loop(){

button2.tick();

}

?

微信關注圖中張十三的博客公眾號,與張十三一起探討更多mixly開發問題:

總結

以上是生活随笔為你收集整理的玩转Mixly – 2、Arduino AVR编程 之 输入输出的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产91色在线 | 伊人999 | 久久久久一区二区精码av少妇 | 欧美精品网址 | 久久毛片网站 | 色综合免费 | av福利片 | 国产91熟女高潮一区二区 | 黄色成年视频 | 亚洲影视在线观看 | 国产一区二区四区 | 97av视频| 黄视频在线免费看 | 天堂8中文 | 日本不卡一二 | 久久精品国产大片免费观看 | 欧美激情久久久 | 96在线观看| 国产精品免费视频一区二区三区 | 国产人久久人人人人爽 | 欧美xxxx888| 日本一区二区在线不卡 | 亚洲成人天堂 | 影音先锋 日韩 | 91精品国产综合久久国产大片 | 色婷婷av国产精品 | 成年人av在线 | 丰满少妇被猛烈进入高清播放 | 久久精品99北条麻妃 | 97超碰免费在线观看 | 1024毛片基地 | av在线黄| 国产在线伊人 | 一区二区三区精品国产 | 美女福利视频在线观看 | 男女插鸡视频 | 伊人资源网 | 成人免费视频观看 | 色999日韩| 加勒比在线一区 | 国产在线a视频 | 亚洲免费观看高清在线观看 | 色噜噜在线播放 | 91精品免费看 | 欧美黄色一级大片 | 六月激情 | 欧美a在线播放 | 四虎成人在线观看 | 色综合影视 | 日本东京热一区二区 | aa亚洲| 国产一区不卡 | 成人涩涩视频 | 亚洲色图35p| 亚洲国产精品视频在线观看 | 欧美国产一区二区在线观看 | 国产精品一区二区三区久久 | 蜜桃久久久久久 | 国产男女激情 | 亚洲一区二区乱码 | 久久精品一区二区免费播放 | av网站大全在线观看 | 亚洲精品一二区 | 国产成人无码aa精品一区 | 男女视频在线免费观看 | 色吧综合 | 久久久久久99精品久久久 | 在线观看国产小视频 | 成人91看片 | 日韩亚洲在线观看 | 综合久久久久久 | 一级黄色淫片 | 国产在线精品一区 | 美女扒开腿免费视频 | 全黄性性激高免费视频 | 亚洲av无码乱码在线观看性色 | 亚洲激情片 | 狂野少女电影在线观看国语版免费 | 六月丁香激情 | 日韩av一二三 | 精品麻豆 | 四虎成人精品在永久免费 | 国产精品亚洲五月天丁香 | 亚洲另类色图 | 你懂的视频在线播放 | 97久久精品人人澡人人爽 | 日韩在线不卡视频 | 亚洲成人一二三 | 在线看片不卡 | 亚洲欧美强伦一区二区 | 国产精品日韩欧美 | wwwwww在线观看 | av导航网站 | 黄色岛国片 | va在线| 网站av在线 | 欧美日韩午夜激情 | 国产一极片| 金瓶狂野欧美性猛交xxxx |