【雕爺學編程】Arduino動手做(90)---4X4矩陣薄膜鍵盤模塊


37款傳感器與執行器的提法,在網絡上廣泛流傳,其實Arduino能夠兼容的傳感器模塊肯定是不止這37種的。鑒於本人手頭積累了一些傳感器和執行器模塊,依照實踐出真知(一定要動手做)的理念,以學習和交流為目的,這里准備逐一動手嘗試系列實驗,不管成功(程序走通)與否,都會記錄下來---小小的進步或是搞不掂的問題,希望能夠拋磚引玉。

【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程)

實驗九十:4x4按鍵模塊 輕觸開關4*4薄膜矩陣形鍵盤 16位單片機外擴外接控制鍵盤

矩陣鍵盤
矩陣鍵盤是單片機外部設備中所使用的排布類似於矩陣的鍵盤組。矩陣式結構的鍵盤顯然比直接法要復雜一些,識別也要復雜一些,列線通過電阻接正電源,並將行線所接的單片機的I/O口作為輸出端,而列線所接的I/O口則作為輸入。由於電路設計時需要更多的外部輸入,單獨的控制一個按鍵需要浪費很多的IO資源,所以就有了矩陣鍵盤,常用的矩陣鍵盤有4*4和8*8,其中用的最多的是4*4。

組成結構,在鍵盤中按鍵數量較多時,為了減少I/O口的占用,通常將按鍵排列成矩陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,一個端口(如P1口)就可以構成4*4=16個按鍵,比之直接將端口線用於鍵盤多出了一倍,而且線數越多,區別越明顯,比如再多加一條線就可以構成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數比較多時,采用矩陣法來做鍵盤是合理的。

薄膜鍵盤
是薄膜開關范疇的一例,按鍵較多且排列整齊有序的薄膜開關,人們習慣稱之為薄膜鍵盤。薄膜鍵盤是近年來國際流行的一種集裝飾性與功能性為一體的一個操作系統。由面板、上電路、隔離層、下電路四部分組成。薄膜鍵盤外形美觀、新穎,體積小、重量輕,密封性強。具有防潮、防塵、防油污、耐酸鹼、抗震及使用壽命長等特點。廣泛應用於,醫療儀器,計算機控制,數碼機床,電子衡器,郵電通訊,復印機,電冰箱,微波爐,電風扇,洗衣機,電子游戲機等領域。

優點
1.外形美觀、新穎;
2.體積小、厚度薄、重量輕、更有利於筆記本型電腦鍵盤向輕、薄、短、小和 高智能化方向發展。
3.防潮、防塵、防油污及有害氣體,密封性強、耐酸鹼抗震。
4.使用壽命長、耐彎折。

薄膜開關電原理圖

按鍵識別方法

這樣,當按鍵沒有按下時,所有的輸入端都是高電平,代表無鍵按下。行線輸出是低電平,一旦有鍵按下,則輸入線就會被拉低,這樣,通過讀入輸入線的狀態就可得知是否有鍵按下了。

一、行掃描法,又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識別方法。

1、判斷鍵盤中有無鍵按下 將全部行線Y0-Y3置低電平,然后檢測列線的狀態。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位於低電平線與4根行線相交叉的4個按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。

2、判斷閉合鍵所在的位置 在確認有鍵按下后,即可進入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時,其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測各列線的電平狀態。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。

二、高低電平翻轉法

首先讓P1口高四位為1,低四位為0。若有按鍵按下,則高四位中會有一個1翻轉為0,低四位不會變,此時即可確定被按下的鍵的行位置。然后讓P1口高四位為0,低四位為1。若有按鍵按下,則低四位中會有一個1翻轉為0,高四位不會變,此時即可確定被按下的鍵的列位置。最后將上述兩者進行或運算即可確定被按下的鍵的位置。

實際上,鍵盤、顯示處理是很復雜的,它往往占到一個應用程序的大部份代碼,可見其重要性,但說到,這種復雜並不來自於單片機的本身,而是來自於操作者的習慣等等問題,因此,在編寫鍵盤處理程序之前,最好先把它從邏輯上理清,然后用適當的算法表示出來,最后再去寫代碼,這樣,才能快速有效地寫好代碼。

柔性薄膜鍵盤
是薄膜鍵盤的典型形式。這類薄膜鍵盤之所以稱為柔性,是因為該薄膜鍵盤的面膜層、隔離層、電路層全部由各種不同性質的軟件薄膜所組成。柔性薄膜鍵盤的電路層,均采用電器性能良好的聚酯薄膜(PET)作為開關電路圖形的載體。由於聚酯薄膜所具有性質的影響,使得該薄膜鍵盤具有良好的絕緣性、耐熱性、抗折性和較高的回彈性。開關電路的圖形,包括開關的聯機及其引出線均采用低電阻,低溫條件下固化的導電性塗料印刷而成。因此,整個薄膜鍵盤的組成,具有一定的柔軟性,不僅適合於平面體上使用,還能與曲面體配合。柔性薄膜鍵盤引出線與開關體的本身是一體的,在制作群體開關的聯機時,將其匯集於薄膜的某一處,並按設計指定的位置和標准的線距向外延伸,作為柔軟的、可任意彎曲的、密封的引出導線與整機的后置電路相連。

平面立體薄膜鍵盤
一種使開關鍵體微微凸起,略高於面板,構成立體形狀的薄膜鍵盤,稱為立體鍵開關。立體鍵不僅能准確地給定鍵體的范圍,提高辨認速度,使操作者的觸覺比較敏感,同時還增進了產品外觀的裝飾效果. 立體鍵的制作,必須在面板的設計階段就要作好安排,備有工藝孔,以便在模具壓制時有精確的定位, 其立體凸起的高度一般不宜超過基材厚度的兩倍。為美觀產品的外觀,凸起薄膜鍵盤的凸起可有多種變化。

模塊參數
接觸電阻為500
絕緣電阻100M
關鍵操作力150-200N
回彈時間1(ms)
壽命1億(次)
工作溫度60

1.電子特性:

額定電流:35V(DC),100mA,1W

接觸電阻:10Ω~500Ω

(根據引線長度的不同而不同於所用材料的引線長度)

絕緣電阻:100MΩ100V

介電強度:250VRms(50~60Hz 1min)

電擊抖動:<5ms

壽命:觸覺類型:≥100萬次

2.機械性能

工作壓力:觸感:170~397g(6~14oz)

開關行程:觸摸式:0.6~1.5mm

3.環境參數

工作溫度:-40至+80

儲存溫度:-40至+80

溫度:從40,90%到95%,240小時

振動:20G,最大 (10~200Hz,Mil-SLD-202 M204。條件B)

/*

【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程)

 實驗九十:4x4按鍵模塊 輕觸開關4*4薄膜矩陣形鍵盤 16位單片機外擴外接控制鍵盤

*/



#include <Keypad.h>

const byte ROWS = 4;

const byte COLS = 4;



char keys[ROWS][COLS] = {

  {'1','2','3','A'},

  {'4','5','6','B'},

  {'7','8','9','C'},

  {'*','0','#','D'}

};

byte rowPins[ROWS] = {9, 8, 7, 6};

byte colPins[COLS] = {5, 4, 3, 2};

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );



void setup(){

  Serial.begin(9600);

}



void loop(){

  char key = keypad.getKey();

  if (key != NO_KEY){

  Serial.println(key);

  }

}

  實驗串口返回情況

實驗開源仿真編程(Linkboy V4.62)

實驗開源圖形編程(Mind+、Mixly、編玩邊學)

實驗場景圖

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM