Arduino第25課指撥開關(密碼鎖)

指撥開關(DIP SWITCH):

也稱為撥碼開關DIP開關,是一種能用手指撥動,完成開關動作的小型開關。依照用途不同有很多種不同的形式,一般常用在遙控器內當成編碼開關。

下面這個常見的指撥開關,有 8 個切換開關,當開關為「ON」時,表示開關導通,當開關為「OFF」時,表示開關被關閉

——————————

Arduino上使用開關來控制電路,讀取資料時,常常因為受到環境雜訊的影響,會發生讀取訊號不穩定的現象(有時讀取到 HIGH 有時卻讀取到 LOW),造成讀取判斷錯誤。為了確保它在穩定的狀態,,必須接個上拉電阻或下拉電阻。(註)

上拉電阻:

如上圖,5V接電阻(一般接10Kꭥ),再接開關、接地,中間引出接數位腳D2輸入。

使用下面積木宣告

注意:

開關未接通時,數位腳D2讀取到高電位(1),當開關接通時,數位腳D2讀取到低電位(0)

—————————-

其實arduino在數位腳位都已經內建了上拉電阻,只要使用下面的宣告

就可以取代上面的外接電阻,電路圖變成下面

開關直接接數位腳D2輸入,省去外接上拉電阻的麻煩 。

注意:

開關未接通時,數位腳D2讀取到高電位(1),當開關接通時,數位腳D2讀取到低電位(0)

————————–

密碼開關

———————–

A、外接上拉電阻

利用指撥開關的接通與否來當成密碼開關。

一般常見的指撥開關,有 8 個切換開關,可以有2的8次方共256種變化,這裡只接4組,讓同學體驗。

指撥開關的每一個切換開關都同前面概要圖畫的一樣,一邊接地,另一邊接10kꭥ電阻再接5V,另外也要接數位腳D2~D5,接收輸入訊號。

1.製作2、3、4、5等四個變數,來存放讀取值,方便觀察讀取結果

2.使用[腳位(2)模式設為(INPUT)],宣告數位腳D2為輸入(接收訊號),其他D3~D5也是同樣宣告。

3.使用[腳位(11)模式設為(OUTPUT)],宣告數位腳D11為輸出。

4.接著重複執行讀取及判斷

[設定變數(2)為(讀取數位腳位(2)],設定變數2為數位腳D2讀取的值,其他D3~D5也是同樣的設定

如果變數值(讀取值)符合條件,數位腳D11就輸出1(高電位),LED燈就會亮,否則數位腳D11就輸出0(低電位),LED燈就會滅。

注意:

開關未接通時,數位腳D2讀取到高電位(1),當開關接通時,數位腳D2讀取到低電位(0)

程式下載input.sb2

———————-

B、利用Arduino內建的上拉電阻

利用指撥開關的接通與否來當成密碼開關。

一般常見的指撥開關,有 8 個切換開關,可以有2的8次方共256種變化,這裡只接4組,讓同學體驗。

基本接法跟上面一樣,但是省去外接電阻,線路簡潔

指撥開關的每一個切換開關都同前面概要圖畫的一樣,一邊接地,另一邊接數位腳D2~D5,接收輸入訊號。

1.製作2、3、4、5等四個變數,來存放讀取值,方便觀察讀取結果。

2.使用[腳位(2)模式設為(INPUT_PULLUP)],宣告數位腳D2為上拉電阻輸入(接收訊號),其他D3~D5也是同樣宣告。

3.使用[腳位(11)模式設為(OUTPUT)],宣告數位腳D11為輸出。

4.接著重複執行讀取及判斷

[設定變數(2)為(讀取數位腳位(2)],設定變數2為數位腳D2讀取的值,其他D3~D5也是同樣的設定

如果變數值(讀取值)符合條件,數位腳D11就輸出1(高電位),LED燈就會亮,否則數位腳D11就輸出0(低電位),LED燈就會滅。

注意:

開關未接通時,數位腳D2讀取到高電位(1),當開關接通時,數位腳D2讀取到低電位(0)

程式下載上拉電阻.sb2  

延伸:

1.讀取數位腳位為什麼不要接D0、D1?要從D2開始的腳位來接?

2.為什麼平常沒按下開關D2讀取的是1(高電位)?按下開關D2讀取的是0(低電位)?

3.將數位腳D11輸出接線接到電鎖,就變成電子密碼門鎖了。

4.將數位腳D11輸出接線接到繼電器(第13課),就變成電子密碼開關了,可以控制家電用品。

5.將數位腳D11輸出改成使用 [ 伺服馬達為腳位(…)轉動角度為(…)度]  的指令積木也可以用來控制馬達的轉動角度。當輸入不同的密碼,可以轉動不同的角度,可以觸動不同的開關,做出不同的動作。(第11課)

7.小朋友想想看,指撥開關還有什麼用途?

——————

參考資料 :https://zh.wikipedia.org/wiki/%E4%B8%8A%E6%8B%89%E7%94%B5%E9%98%BB

在數位電路中,上拉電阻(英語:Pull-up resistors)是當某輸入埠未連接設備或處於高阻抗的情況下,一種用於保證輸入訊號為預期邏輯電平的電阻元件。他們通常在不同的邏輯器件之間工作,提供一定的電壓訊號。

———————————————

相關連結:

新DiFi課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/104089/678192

 

WFduino(Arduino)課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/97509/641433 

————————

為什麼要推Arduino初級班課程為正式課程?

A:

1.程式寫作如果結合外部感應器,可以達成簡單的自動控制功能,進一步讓學生創作一些作品改善生活或是增加樂趣。課程內容適合小孩或初學者,完成初級班課程後,發揮創意再加上市面上的各種感應器,就可以創造各種有用、有趣的作品,讓資訊課不再只是[電腦課]。

2.教育機會均等:適合國小五、六年級以上學生,全年級都上一個學期課的型態,讓全校學生都能接受基礎的Maker資訊課,讓家裡沒有電腦、沒錢上社團、科學班的學生享有平等的受教權。

3.本系列課程,材料便宜(初級班基本材料費每校只要幾千元),程式安裝簡便,學生學習容易(簡單的電子零件,搭配積木式拖拉來完成程式寫作),有完整的教材教案提供老師教學(老師只要依照課程示範,學生創意無限)。

roc

宜蘭縣國小資訊小站

您可能也會喜歡…