開發與維運

五行JavaScript代碼完成HaaS600矩陣鍵盤應用開發

來源 | HaaS技術社區

1、概述

本文主要介紹了矩陣鍵盤的工作原理,以及如何基於JavaScript輕應用系統快速完成 HaaS600 Kit 矩陣鍵盤應用開發。

希望瞭解和學習 HaaS600Kit 及輕應用的愛好者能完成 HaaS600kit 矩陣鍵盤功能的輕應用開發。

所需工具

  • HaaS600Kit
  • 4x4 矩陣鍵盤
  • 串口終端

 

2、矩陣鍵盤簡介

2.1、工作原理

矩陣鍵盤又稱為行列式鍵盤,以最常見的4X4矩陣鍵盤為例,它是用4條I/O線作為行線,4條I/O線作為列線組成的鍵盤。在行線和列線的每一個交叉點上,設置一個按鍵,這樣鍵盤中按鍵的個數是4×4個。相比傳統的獨立按鍵,這種行列式鍵盤結構有效提高了嵌入式系統的GPIO的利用率。
image

矩陣鍵盤的工作原理有兩種:行列掃描逐行/逐列掃描,以4x4矩陣鍵盤為例具體工作原理如下:

行列掃描:

  1. 先使上圖行線5-8口對應的GPIO配置成上拉輸入(即默認檢測為高電平)、列線1-4口輸出低電平,若期間有按鍵按下,那麼會有行線檢測到低電平輸入,此時記錄下按鍵的行座標 'x';
  2. 接著,使行線5-8口輸出低電平、列線1-4口配置成上拉輸入(即默認檢測為高電平),若期間有按鍵按下,那麼會有列線檢測到低電平輸入,此時記錄下按鍵的列座標 'y';
  3. 根據(x, y) 即可得到特徵編碼所對應的按鍵。

逐行/逐列掃描:

  1. 使列線1口輸出低電平,其餘行列線都為上拉輸入(即默認檢測為高電平),讀取行線5-8口對應的電平。若期間1列有按鍵按下,則對應行線將會檢測到有低電平輸入,即可得知按鍵的座標('x', 1)。
  2. 以此類推,進行逐列掃描。
  3. 使行線5口輸出低電平,其餘行列線都為上拉輸入(即默認檢測為高電平),讀取列線1-4口對應的電平。若期間5行有按鍵按下,則對應列線將會檢測到有低電平輸入,即可得知按鍵的座標(5, 'y')。
  4. 以此類推,進行逐行掃描。

 

3、HaaS600Kit 矩陣鍵盤接口介紹

HaaS600Kit 最大可支持5x5矩陣鍵盤,使用的掃描方式是行列掃描。
image
HaaS600Kit 矩陣鍵盤接口如上圖所示,列線對應IN1~IN5接口,行線對應OUT1~OUT5接口。
image
所以,本示例所用的 4X4 矩陣鍵盤接線方式為:

  • 列線 1-4 口按順序依次接 HaaS600Kit 的 IN1~IN4接口;
  • 行線 5-8 口按順序依次接 HaaS600Kit 的 OUT1~OUT4接口;

 

4、開發矩陣鍵盤輕應用

4.1、 示例 JavaScript 代碼

  1. // 加載 keypad 矩陣鍵盤驅動
  2. var keypad = require('keypad');
  3. // 初始化矩陣鍵盤
  4. keypad.open();
  5. // 設置鍵盤code
  6. var keyValue = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', '*', '#'];
  7. // 定義按鍵狀態
  8. var keyStatus = ['press', 'release'];
  9. // 監聽鍵盤事件
  10. keypad.on('keypadEvent', function(value, state) { console.log('key \'' + keyValue[value] + '\' ' + keyStatus[state])});

4.2、JS 代碼介紹

HaaS600Kit 搭載的輕應用系統其底層已集成矩陣鍵盤的驅動,我們只需要五行JS代碼就能完成矩陣鍵盤的應用開發,相比傳統嵌入式設備C語言開發極大的降低了開發工作量和難度。

方法:keypad.open()

打開矩陣鍵盤,初始化矩陣鍵盤實例。

數組:keyValue

矩陣鍵盤的按鍵映射,按從左到右、從上到下的行列順序,實現4x4矩陣鍵盤鍵值和HaaS600Kit 矩陣鍵盤驅動程序的綁定。

數組:keyStatus

定義按鍵狀態,HaaS600Kit 矩陣鍵盤驅動程序上報按下和鬆開兩個狀態。

方法:Keypad.on

監聽按鍵事件

事件:'keypadEvent'

當串口接收到新數據時,會觸發

'keypadEvent'

事件,

'keypadEvent'

事件回調函數參數:

參數 類型 必填 描述
value Number 矩陣鍵盤驅動上報的按鍵特徵值,範圍:0~15
state Number 矩陣鍵盤驅動上報的按鍵狀態值,0 代表按下、1 代表鬆開

5、 測試結果

image

HaaS600Kit 矩陣鍵盤功能的支持需要將HaaS輕應用系統升級至2.0版本。有HaaS輕應用系統升級需求的用戶,請將 HaaS600Kit 設備信息及聯繫方式發送郵件至[email protected],我們會與您聯繫進行設備OTA升級。

 

6、開發者技術支持

如需更多技術支持,可加入釘釘開發者群,或者關注微信公眾號

更多技術與解決方案介紹,請訪問阿里雲AIoT首頁https://iot.aliyun.com/

Leave a Reply

Your email address will not be published. Required fields are marked *