按鍵控制LED實驗 I/O 口的意思即為INPUT 接口和OUTPUT 接口,到目前為止我們設計的小燈實驗都還只是應用到Arduino 的I/O 口的輸出功能,這個實驗我們來嘗試一下使用Arduino的I/O 口的輸入功能即為讀取外接設備的輸出值,我們用一個按鍵和一個LED 小燈完成一個輸入輸出結合使用的實驗,讓大家能簡單了解I/O 的作用。按鍵開關大家都應該比較了解,屬于開關量(數字量)元件,按下時為閉合(導通)狀態。完成本實驗要 用到的元件如下: 按鍵開關*1 file:///C:\Users\juli\AppData\Local\Temp\ksohtml\wps8021.tmp.png 紅色M5 直插LED*1 220Ω電阻*1 10KΩ電阻*1 面包板*1 面包板跳線*1 扎 我們將按鍵接到數字7 接口,紅色小燈接到數字11 接口(Arduino 控制器0-13 數字I/O 接口都可以用來接按鍵和小燈,但是盡量不選擇0 和1 接口,0 和1 接口為接口功能復用,除I/O 口功能外也是串口通信接口,下載程序時屬于與PC 機通信故應保持0 和1 接口懸空,所以為避免插拔線的麻煩盡量不選用0 和1 接口),按下面的原理圖連接好電路。 file:///C:\Users\juli\AppData\Local\Temp\ksohtml\wps8031.tmp.png file:///C:\Users\juli\AppData\Local\Temp\ksohtml\wps8032.tmp.png 實物連接圖: file:///C:\Users\juli\AppData\Local\Temp\ksohtml\wps8033.tmp.jpg 下面開始編寫程序,我們就讓按鍵按下時小燈亮起,根據前面的學習相信這個程序很容易就能編寫出來,相對于前面幾個實驗這個實驗的程序中多加了一條條件判斷語句,這里我們使用if 語句,Arduino 的程序便寫語句是基于C 語言的,所以C 的條件判斷語句自然也適用于Arduino,像while、swich 等等。這里根據個人喜好我們習慣 于使用簡單易于理解的if 語句給大家做演示例程。 我們分析電路可知當按鍵按下時,數字7 接口可讀出為高電平,這時我們使數字11 口輸出高電平可使小燈亮起,程序中我們判斷數字7 口是否為低電平,要為低電平使數字11 口輸出也為低電平小燈不亮,原理同上。 參考源程序: int ledpin=11;//定義數字11 接口 int inpin=7;//定義數字7 接口 int val;//定義變量val void setup() { pinMode(ledpin,OUTPUT);//定義小燈接口為輸出接口 pinMode(inpin,INPUT);//定義按鍵接口為輸入接口 } void loop() { val=digitalRead(inpin);//讀取數字7 口電平值賦給val if(val==LOW)//檢測按鍵是否按下,按鍵按下時小燈亮起 { digitalWrite(ledpin,LOW);} else { digitalWrite(ledpin,HIGH);} } ////////////////////////////////////////////// 實驗結果,及其現象:當按鍵按下時,LED亮,按鍵沒有按下時,LED不亮。 下載完程序我們本次的小燈配合按鍵的實驗就完成了,本實驗的原理很簡單,廣泛被用于各種電路和電器中,實際生活中大家也不難在各種設備上發現,例如大家的手機當按下任一按鍵時背光燈就會亮起,這就是典型應用了。你可以把LED當成繼電器,就可以控制220v電燈啦!
|