爆料公社:相關文獻Digital 數位輸入與輸出 - Powered by Discuz!
查看: 672|回復: 35

Digital 數位輸入與輸出

[複製鏈接]
發表於 2017-2-5 06:42:09 | 顯示全部樓層 |閱讀模式
Digital 數位輸入與輸出5.1 Digital Output設定 Pin 的輸出霹靂燈範例
pinMode (pin,mode)
pinMode函數是用以配置接腳為輸入或輸出模式,它是一個無返回值函數,函數
有兩個參數pin和mode,pin參數表示所要配置的接腳,mode參數表示設置的模 式——INPUT(輸入)或OUTPUT(輸出)。
pinMode(13, OUTPUT); // 這裡設定所要輸出的PIN腳模式
digitalWrite(13, HIGH); // 設定PIN13腳位為高電位 = 5V
digitalWrite(13, LOW); // 設定PIN13腳位為低電位 = 0V
介紹:
我們等下就利用Digital output 的數位輸出功能,來設計一個霹靂燈的硬體。
會透過以下的函數達到這樣的效果,首先在初始化的時候,設定特定的
pinMode(13, OUTPUT); 做數位輸出的動作
函後再來設定電位高輸出5V 的電壓,來顯示LED,
digitalWrite(13, HIGH);
並且在透過
digitalWrite(13, LOW);
來降低電壓到0V,來關閉LED。
透過delay(200)來延遲時間0.2 秒。
硬體接線:
圖5-1-1 霹靂燈的硬體接線
範例程式:
範例 Ch4-1 DancingLEDs.ino(範例程式中sample\ch04\DancingLEDs\)
  • int ledPin1 = 10; // 這裡設定所要閃爍的LED燈腳位
  • int ledPin2 = 11;
  • int ledPin3 = 12;
  • void setup()
  • {
  • pinMode(ledPin1, OUTPUT); // 這裡設定所要輸出的PIN腳模式
  • pinMode(ledPin2, OUTPUT);
  • pinMode(ledPin3, OUTPUT);
  • }
  • void loop()
  • {
  • digitalWrite(ledPin1, HIGH); // 設定PIN13腳位為高電位 = 5V
  • delay(200); // 設定延遲時間,200 = 0.2
  • digitalWrite(ledPin2, HIGH);
  • delay(200);
  • digitalWrite(ledPin3, HIGH);
  • delay(200);
  • digitalWrite(ledPin1, LOW); // 設定PIN13腳位為低電位 = 0V
  • delay(200); // 設定延遲時間 200 = 0.2
  • digitalWrite(ledPin2, LOW);
  • delay(200);
  • digitalWrite(ledPin3, LOW);
  • delay(200);
  • }
程式解說:
  • 9 pinMode(ledPin1, OUTPUT); //設定ledPin1 腳位為高電位 =
  • 17 delay(200); //設定延遲時間,1000 = 1秒 延遲
  • 11 digitalWrite(ledPin1, HIGH); //設定ledPin1 腳位為高電位 = 5V LED
  • 21 digitalWrite(ledPin1, LOW); //設定ledPin1 腳位為低電位 = 0V LED
在Loop()中 我們依序:
  • 亮第一個LED
  • 亮第一個LED
  • 亮第一個LED
  • 暗第一個LED
  • 暗第一個LED
  • 暗第一個LED
這樣持續的執行。
使用長高科技的ADK 的實驗版的讀者:
請把接腳修改成實驗版上內建的LED的接腳。
int ledPin1 = 54;
int ledPin2 = 57;
int ledPin3 = 60;
執行效果:
圖5-1-2 霹靂燈的範例,在ADK 上程式執行的情況。
5.2 Digital Input –讀取按鈕訊號數值code
digitalRead 函數用在接腳為輸入的情況下,可以獲取接腳的電壓情況—HIGH (高電平)或 LOW(低電平),參數 pin 表示所要獲取電壓值的接腳,該函數返回值為 int 型,表示接腳的電壓情況。
硬體設備:
  • Arduino 板子
  • 一個LED
  • 按鈕一個
  • 10k 歐姆的電阻
  • 麵包版
  • 線材
硬體接線:
圖5-2-1 按鍵的硬體接線圖
範例 Ch5-2 DigitalRead.ino(範例程式中sample\ch05\DigitalRead\)
  • int Key1Pin = 2;
  • int ledPin1= 13;
  • void setup()
  • {
  • pinMode(ledPin1, OUTPUT); // 這裡設定所要輸出的PIN腳模式
  • pinMode(Key1Pin, INPUT); // 這裡設定所要讀入的PIN腳模式
  • }
  • void loop()
  • {
  • int keystate = digitalRead(Key1Pin); // 取得數位輸入PIN 腳的值
  • if(keystate == 0) // 如果沒被按下的話
  • {
  • digitalWrite(ledPin1, LOW); // LED
  • }else{
  • digitalWrite(ledPin1, HIGH); // LED
  • }
  • }
程式碼介設:
  • 9 digitalRead 取得數位輸入PIN 腳的值
  • Loop()中 我們依序:讀取數位接腳。
    判斷是否按下後,設定LED 是否亮或暗。

[size=17.3333px]
使用長高科技的ADK 的實驗版的讀者:
請把接腳修改成實驗版的接腳。
int Key1Pin= 2;
int ledPin1= 54;

執行效果:
按鍵的範例,在Chang高科技ADK 上程式執行的情況。

發表於 2017-3-8 03:20:33 | 顯示全部樓層
不錯 支持下
回復 支持 反對

使用道具 舉報

發表於 2017-3-8 03:09:30 | 顯示全部樓層
報告!別開槍,我就是路過來看看的。。。
回復 支持 反對

使用道具 舉報

發表於 2017-3-8 03:16:25 | 顯示全部樓層
秀起來~
回復 支持 反對

使用道具 舉報

發表於 2017-3-8 03:29:42 | 顯示全部樓層
喵 一聲之後 一堆搶著送上來的罐頭
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2017-3-8 03:04:08 | 顯示全部樓層
惹了 士大夫的筆
圓登美容坊 (06)226-8701
回復 支持 反對

使用道具 舉報

發表於 2017-3-24 08:43:39 | 顯示全部樓層
佔位編輯
回復 支持 反對

使用道具 舉報

發表於 2017-3-24 08:23:10 | 顯示全部樓層
LZ是天才,堅定完畢
回復 支持 反對

使用道具 舉報

發表於 2017-3-24 08:34:22 | 顯示全部樓層
《不要不要不要》
回復 支持 反對

使用道具 舉報

發表於 2017-3-24 08:34:06 | 顯示全部樓層
蝴蝶的標本 一如被仔細保存的風聲
回復 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 馬上加入

本版積分規則

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