日韩性视频-久久久蜜桃-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编程 之 输入输出的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 亚洲天堂小说 | 欧美精品激情 | 欧美日韩在线观看一区二区 | 日韩影院一区二区 | 少妇一级淫片免费观看 | www.黄色av| 国产精品wwww | 美国美女黄色片 | 一区二区免费av | 久久99国产精品 | 欧美日韩少妇 | 91爱在线观看 | 第一福利在线视频 | 欧美日韩国产三区 | 欧美另类激情 | 人妻av一区二区 | 亚洲美免无码中文字幕在线 | 免费在线观看日韩 | 欧美成人午夜免费视在线看片 | 国产精品白浆一区二小说 | 欧美日韩在线一区二区三区 | 开心激情婷婷 | 九色porny丨精品自拍视频 | 成人午夜网站 | 国产在线视视频有精品 | 国产黄色自拍视频 | 香蕉网站在线观看 | 久久久久无码国产精品 | 国产一区二区在 | 日韩黄色影院 | 色噜噜av | 国产精品久久无码 | 精品欧美日韩 | 黄色大片一级片 | 天天射日日干 | 日韩av一二区 | 亚洲香蕉网站 | 一级理论片 | 欧美成视频 | 中文字幕一区二区三区乱码不卡 | 亚洲天天干 | 91精品婷婷国产综合久久竹菊 | 自拍偷拍国产精品 | 人妻少妇被猛烈进入中文字幕 | 国产成人在线观看免费网站 | 中文字幕一级二级三级 | 久久伊 | 色一情一乱一区二区三区 | 光明影院手机版在线观看免费 | 国产youjizz | 国内精品久久久久久 | 亚洲欧美在线视频观看 | 3344av| 男人日女人逼 | 亚洲 自拍 另类 欧美 丝袜 | yy1111111| 免费视频91蜜桃 | 亚洲天堂一级片 | 成人无码久久久久毛片 | 日韩成人在线看 | 超碰c | 亚洲中文字幕一区在线 | 精品人妻少妇嫩草av无码专区 | 免费在线看污 | 91丨porny丨九色 | 九色porny原创自拍 | 国产黄色片av | www日本在线 | 久久黄色网 | 久久毛片基地 | 波多野结衣视频免费观看 | 免费看特级毛片 | 特级做a爱片免费69 少妇第一次交换又紧又爽 亚洲大胆人体 | 95看片淫黄大片一级 | 天天爽天天 | 久久澡| 日本久久久久 | 成人在线h | 国产婷婷在线视频 | 一区二区三区在线视频观看 | 在线男人天堂 | 久久免费看少妇高潮v片特黄 | 手机免费看av | 国产成人97精品免费看片 | 一区国产在线 | 精品欧美一区二区在线观看 | 成人性做爰aaa片免费看不忠 | 久草最新视频 | 九九热色 | 操碰91| 蜜臀久久精品久久久久 | 拍摄av现场失控高潮数次 | 狠狠综合久久av一区二区 | 最新中文字幕在线观看视频 | 少妇毛片一区二区三区粉嫩av | 天天噜日日噜 | 色噜噜狠狠一区二区三区果冻 | 日韩激情小视频 | 成了校长的性脔h文 |