久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8648|回復: 4
收起左側

Arduino學習17-連接TTP229B電容觸摸模塊

[復制鏈接]
ID:114115 發表于 2016-4-18 03:44 | 顯示全部樓層 |閱讀模式
新買一個TTP229B的16鍵觸摸模塊,黑心淘寶居然沒給對PDF也沒有借鑒的驅動代碼,于是去官網下載了個pdf看時序圖模仿了一個。
先上pdf文件 TTP229-BSF_V1.1_EN.pdf (326.25 KB, 下載次數: 37)
這個是TTP-229B(SSOP-28)的PDF,來自官網
http://www.tontek.com.tw/031-1-1.asp?p3id=20141007154716

硬件部分:
首先看文檔調好跳線,其中1腳對應TP0,2腳對應TP1如此類推,把1/2/3/4/5跳線跳上,即TP0-TP4均為低電平0
含義如下:
TP0=0,TP1=0:SDA高電平激活
160117hpzwz2wkskm8wgnw.png
TP2=0:16按鍵全使用
TP3=0,TP4=0:所有按鍵Multi Key,即可以同時按下所有按鍵。
160117dy44c4co3750coco.png

下面是跳好跳線的圖片
155424ljee3opdun3tupdu.jpg

一定要把模塊的1-5跳線跳好,否則下面代碼不能正常讀取。
162822p54zqvx21dq2yywc.png

兩個代碼,一個是單獨讀一個按鍵,一個一次讀完所有按鍵


一個是單獨讀一個按鍵

  1.     int SCLPin = A5, SDOPin = A4;   //SCL接A5,SDO接A4,非IIC,可以隨意移動引腳接法
  2.     boolean h = 0, oldh = 0;
  3.     void setup()
  4.     {
  5.       Serial.begin(9600);
  6.       pinMode(SCLPin , OUTPUT);   //時鐘端輸出
  7.     }
  8.      
  9.     boolean ttp229single(int pin)
  10.     {
  11.       boolean DATA = 0;
  12.       pinMode(SDOPin , OUTPUT);
  13.       digitalWrite(SDOPin, HIGH);
  14.       delayMicroseconds(93);    //DV時間93us
  15.       digitalWrite(SDOPin, LOW);
  16.       delayMicroseconds(10);    //Tw時間10us
  17.       pinMode(SDOPin , INPUT);
  18.       for (int i = 0; i < 16; i++)
  19.       {
  20.         digitalWrite(SCLPin, HIGH);
  21.         digitalWrite(SCLPin, LOW);
  22.         if (i == pin-1)
  23.         {
  24.           DATA = digitalRead(SDOPin);    //讀取數據
  25.         }
  26.       }
  27.       delay(2);    //Tout時間2ms
  28.       return DATA;
  29.     }
  30.      
  31.     void loop()
  32.     {
  33.       h = ttp229single(3);    //本例讀了寫著3數字的觸摸鍵(TP2)
  34.      
  35.       if (h != oldh)    //數據改變的時候輸出h
  36.       {
  37.         Serial.println(h);
  38.         oldh = h;
  39.         delay(40);      //滿足pdf的T_resp(for 16-KEYS)時間32ms
  40.       }
  41.     }
復制代碼

一個一次讀完所有按鍵

  1.     int SCLPin = A5, SDOPin = A4;
  2.     unsigned int h = 0, oldh = 0;
  3.     void setup()
  4.     {
  5.       Serial.begin(9600);
  6.       pinMode(SCLPin , OUTPUT);   //時鐘端輸出
  7.     }
  8.      
  9.     unsigned int ttp229()     //一次讀完TTP229所有按鍵
  10.     {
  11.       unsigned int DATA = 0;
  12.       pinMode(SDOPin , OUTPUT);
  13.       digitalWrite(SDOPin, HIGH);
  14.       delayMicroseconds(93);
  15.       digitalWrite(SDOPin, LOW);
  16.       delayMicroseconds(10);
  17.       pinMode(SDOPin , INPUT);
  18.       for (int i = 0; i < 16; i++)
  19.       {
  20.         digitalWrite(SCLPin, HIGH);
  21.         digitalWrite(SCLPin, LOW);
  22.         DATA |= digitalRead(SDOPin) << i;
  23.       }
  24.       delay(2);
  25.       return DATA&0xFFFF;
  26.     }
  27.      
  28.     void loop()
  29.     {
  30.       h = ttp229();
  31.       if (h != oldh)
  32.       {
  33.         Serial.println(h, BIN);
  34.         oldh = h;
  35.         delay(40);
  36.       }
  37.     }
復制代碼




進階閱讀:代碼與時序圖關系簡述
162346mppuq04dytsxt6pl.png
回復

使用道具 舉報

ID:93720 發表于 2016-7-24 09:23 | 顯示全部樓層
你好,你有51單片機的程序沒
回復

使用道具 舉報

ID:408738 發表于 2018-10-12 21:09 | 顯示全部樓層
很不錯的資料,學習下!
回復

使用道具 舉報

ID:304286 發表于 2018-11-15 00:09 | 顯示全部樓層

很不錯的資料,學習下
回復

使用道具 舉報

ID:622857 發表于 2019-10-12 14:13 | 顯示全部樓層
你好,我買的同款鍵盤,可惡的那個寶賣家連原理圖都沒有,請問你有嗎
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 酒色成人网 | 9191成人精品久久 | 中文字幕av一区二区三区 | 国内自拍视频在线观看 | 天天综合网永久 | 国产亚洲网站 | 日韩精品一区二区三区中文在线 | 久久久久国产一区二区三区 | www.99热.com | 在线一级片 | 久久久久免费精品国产 | av网站在线看 | 欧美精品二区 | 操亚洲| 国产福利在线 | 久久99深爱久久99精品 | 国产丝袜一区二区三区免费视频 | 日韩在线视频免费观看 | 天天澡天天狠天天天做 | 久久天天 | 99视频免费看 | 中文字幕亚洲免费 | 成人av鲁丝片一区二区小说 | 18性欧美 | 国产高清精品一区二区三区 | 亚洲乱码一区二区三区在线观看 | 日韩一级免费电影 | 日韩中文字幕在线视频 | 久久一热 | 欧美激情在线观看一区二区三区 | 久久国内精品 | 国产剧情一区 | 人人九九精 | 成人在线欧美 | 激情五月综合 | 国产乱码久久久 | 亚洲精品免费在线观看 | 免费一区二区三区 | 久草久草久草 | 成人欧美一区二区三区在线播放 | 欧美日韩免费在线 |