2017年6月20日 星期二

模組介紹 : faya按鍵模組


學習目標 : 認識faya按鍵模組的功能及使用方式
學習時間 : 35min
示範模組 : (1) faya brickNano
                 (2) faya 按鍵模組
                 (3) faya 直流馬達模組
工具 : (1) 樂高積木底板 (相容)

====================功能介紹====================

faya按鍵模組使用了五個排列成十字型的按鍵,每個按鍵(PB0~PB4)都對應一輸出埠(PB0~PB4),對應關係如下:

  • 當按下PB0時,輸出埠PB0 = HIGH,當放開PB0時,輸出埠PB0 = LOW
  • 當按下PB1時,輸出埠PB1 = HIGH,當放開PB1時,輸出埠PB1 = LOW
  • 當按下PB2時,輸出埠PB2 = HIGH,當放開PB2時,輸出埠PB2 = LOW
  • 當按下PB3時,輸出埠PB3 = HIGH,當放開PB3時,輸出埠PB3 = LOW
  • 當按下PB4時,輸出埠PB4 = HIGH,當放開PB4時,輸出埠PB4 = LOW 
 
     

    ====================原理知識====================
    以下解釋提供給有需要知道背後原理的人:

    由電路圖可發現透過簡單的分壓定理,我們可以輕易的獲得預期的輸出訊號,以PB0為例,當按鍵未被按下時,輸出埠接地,因此輸出為LOW,當按下按鍵時,輸出埠PB0的電壓為:

    (10k / (1k + 10k)) * Vcc  = 0.9Vcc = HIGH


    ====================範例實作====================

    了解模組功能(原理)後,我們用以下範例來展示模組的功能:

    目標:
    (1)當手指頭按下PB1時,直流馬達吹出低速風
    (2)當手指頭按下PB2時,直流馬達吹出中速風
    (3)當手指頭按下PB3時,直流馬達吹出高速風
    (4)當手指頭按下PB4時,直流馬達停止運轉

    接線:
    (1) 電源線連接
         如下圖所示,連接的說明請看這篇文章 簡易版

     

    (2) 訊號線連接
          Arduino_D3   ===>  按鍵模組_PB1
          Arduino_D4   ===>  按鍵模組_PB2
          Arduino_D5   ===>  按鍵模組_PB3
          Arduino_D12 ===>  按鍵模組_PB4
         

         Arduino_D6   ===>  直流馬達_SIG
         Arduino_A0   ===>  直流馬達_DIR


    範例程式:

    備註:
    - L14: 透過PWM訊號讓直流馬達能夠有不同的輸出風速,NANO能夠輸出PWM訊號的腳位有D3/D5/D6/D9/D10/D11,這個範例中我們使用D6
    - L45/L49/L53: 利用analogWrite輸出低/中/高電壓驅動直流馬達,達到低/中/高轉速

    範例結果:



    討論:
    機械式的按鍵開關都有彈跳的問題,也就是說當我們按下按鈕然後放開後,開關的狀態是on-off-on-off來回好幾次的,從示波器裡我們可以看到開關的狀態如下畫面


    通常我們可以透過硬體或程式消除彈跳對作品的影響,但由於在我們的程式中,我們未定義每個按鍵LOW的狀態,引此當遇到此狀態時,系統不予處理,因此對我們的範例不會造成影響,往後,我們再利用一篇文章整理一下除彈跳的技巧!

    歡迎大家在底下留言或到我們的粉絲團留言喔!
    ====================================
    fayalab 粉絲團
    FB本篇留言版 




    沒有留言:

    張貼留言