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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3935|回復(fù): 6
收起左側(cè)

輝芒微單片機(jī)FT62F083RB觸摸滑輪滑條滑塊程序資料原創(chuàng)

  [復(fù)制鏈接]
ID:370644 發(fā)表于 2023-8-31 15:39 | 顯示全部樓層 |閱讀模式
    輝芒微單片機(jī)FT62F083RB觸摸滑輪滑條滑塊這是最近亞馬遜很火的產(chǎn)品,輕輕滑動(dòng)就能實(shí)現(xiàn)調(diào)光調(diào)色,顯得很高大尚,產(chǎn)品智能化檔次提升了。下面就將我最近研究的分享出來(lái)。
滑輪介紹:它是一個(gè)圓盤,由4個(gè)touch觸摸按鍵組成,它將4個(gè)touch銅泊均勻分布在一個(gè)圓形的盤上,此時(shí)這個(gè)圓形分為32等份,即32個(gè)按鍵,我們手觸到哪個(gè)位置就會(huì)有相對(duì)應(yīng)的位置。然后將觸摸到的值解碼出來(lái),去做你想做得事。
滑條介紹:它是一個(gè)長(zhǎng)方形條,也是由4個(gè)touch觸摸按鍵組成,這一個(gè)長(zhǎng)條將它分為16等分,即16個(gè)按鍵,我們手觸到哪個(gè)位置就會(huì)有相對(duì)應(yīng)的位置。然后將觸摸到的值解碼出來(lái)就行了。
注意事項(xiàng):1、PCB layout時(shí)要注意均勻分布,否則解碼出來(lái)的效果會(huì)不靈敏
                2、在調(diào)觸摸閥值時(shí),一定要在實(shí)際環(huán)境中調(diào)試,千萬(wàn)不要飛線之類的,pcb板要求要標(biāo)準(zhǔn)化。即你實(shí)際應(yīng)用時(shí)是什么結(jié)構(gòu),你調(diào)試時(shí)就要用什么結(jié)構(gòu),若你調(diào)試時(shí)是用裸板,你應(yīng)用時(shí)裝了外殼,那是無(wú)法使用的。否則你調(diào)試時(shí)環(huán)境和使用不一樣,效果完全不一樣了。
3、程序算法上,要注意正反轉(zhuǎn)判斷及手觸摸位盡量不能太精密,因?yàn)閳A盤太小,手指太大,它會(huì)占用2個(gè)鍵值,此時(shí)你若太精密,就導(dǎo)致它會(huì)誤判現(xiàn)象。來(lái)點(diǎn)實(shí)際的,現(xiàn)在把代碼上上來(lái),因?yàn)殡娔X是正版繁體系統(tǒng),故注釋都是亂碼,望見(jiàn)諒。里面有視頻效果,真實(shí)的。

滑條1.jpg 滑條2.jpg 滑條3.jpg 滑條圖片.jpg

單片機(jī)源程序如下:
  1. #include "common.h"
  2. #include "syscfg.h"
  3. #include "touch.h"
  4. #define  uchar   unsigned char
  5. #define  uint      unsigned int
  6. extern volatile unsigned char WSPosition1;
  7. extern volatile unsigned char WSPosition2;
  8. extern   uint8_t                      fmd_channels;
  9. volatile  uint16_t                 readKeyNum;     
  10. uint16_t  lastkey=0;
  11. BOOL      f_lowpower=0;                                          
  12. uint16_t   TouchTimeCount;
  13. #define SENSIBILITY        2
  14. volatile  int lastKey;
  15. volatile  int currKey;
  16. volatile int delta;
  17. volatile int currOrient = 0;
  18. volatile unsigned char pwmDuty = 0;
  19. bit        flag;
  20. uchar pwm;
  21. void interrupt ISR(void)
  22. {
  23. if(T4UIE && T4UIF)                        
  24. {
  25. T4UIF = 1;                           
  26. TouchTimeCount++;
  27. }
  28. }
  29. void SysInit(void)
  30. {
  31. OSCCON = 0B01110001;               


  32. INTCON = 0;                                                  
  33. PORTB = 0B00000010;               
  34. TRISB = 0B11111101;               
  35. WPUB = 0B00000000;            
  36. ANSELA = 0B00000000;   
  37. }
  38. void WDT_Initial(void)
  39. {
  40. CLRWDT();                                             
  41. MISC0  = 0B00000000;           
  42. if(WAKEUPFREQUENCY==16)
  43. {
  44. WDTCON = 0B00001100;
  45. }
  46. else if(WAKEUPFREQUENCY==8)
  47. {
  48. WDTCON = 0B00001110;
  49. }
  50. else
  51. {
  52. WDTCON = 0B00010000;
  53. }         


  54. }
  55. void Time4Initial(void)
  56. {
  57. PCKEN |=0B00001000;      
  58. TIM4CR1        =0B00000101;
  59. TIM4IER        =0B00000001;
  60. TIM4SR        =0B00000000;
  61. TIM4EGR        =0B00000000;
  62. TIM4CNTR=0;
  63. TIM4PSCR=0B00000111;
  64. TIM4ARR        =124;
  65. INTCON |= 0B11000000;   
  66. }
  67. void Time1Initial(void)
  68. {
  69. PCKEN |= 0B00000010;   
  70. CKOCON=0B00100000;
  71. TCKSRC = 0B00000000;
  72. TIM1CR1 =0B10000101;  
  73. TIM1SMCR=0B00000000;
  74. TIM1IER = 0B00000000;
  75. TIM1SR1 =0B00000000;
  76. TIM1SR2 =0B00000000;
  77. TIM1EGR =0B00000000;
  78. TIM1CCMR1 =0B00000000;
  79. TIM1CCMR2 =0B00000000;
  80. TIM1CCMR3 =0B00000000;
  81. TIM1CCMR4 =0B01101000;
  82. TIM1CCER1 =0B00000000;
  83. TIM1CCER2 =0B00010000;
  84. AFP0=0B00001100;
  85. AFP1=0B00000000;  
  86. TIM1CNTRH = 0B00000000;               
  87. TIM1CNTRL = 0B00000000;
  88. TIM1PSCRH = 0B00000000;
  89. TIM1PSCRL = 0B00000000;
  90. TIM1ARRH = 0;               
  91. TIM1ARRL = 213;
  92. TIM1RCR = 0B00001111;           
  93. TIM1CCR1H =0;               
  94. TIM1CCR1L =14;
  95. TIM1CCR2H =0;               
  96. TIM1CCR2L = 14;
  97. TIM1CCR3H = 0;               
  98. TIM1CCR3L = 14;
  99. TIM1CCR4H =0;               
  100. TIM1CCR4L = 14;
  101. TIM1BKR = 0B11000000;           
  102. TIM1DTR = 0B00000111;           
  103. TIM1OISR =0B00000000;
  104. LEBCON =0B00000000;
  105. }
  106. void delay(uint16_t ii)
  107. {
  108. uint16_t x,y;
  109. for(x=0;x<500;x++)
  110. for(y=ii;y>0;y--);
  111. }
  112. unsigned char dealWithPositionValue(void)
  113. {
  114. unsigned char key = 0;
  115. currKey = WSPosition1;
  116. if(currKey!=0)
  117. {
  118. if(currKey != lastKey)
  119. {
  120. if((currKey != 16) && (lastKey != 16))
  121. {
  122. delta = currKey - lastKey;
  123. if((delta > 0) && (delta <= SENSIBILITY))
  124. {
  125. key = 1;
  126. }
  127. else if((delta < 0) && (delta >= (-SENSIBILITY)))
  128. {
  129. key = 2;
  130. }
  131. else
  132. {
  133. key = 0;
  134. }
  135. }
  136. else if((currKey == 16))
  137. {
  138. if(lastKey >= (16-SENSIBILITY))
  139. {
  140. key = 1;
  141. }
  142. else if(lastKey <= SENSIBILITY)
  143. {
  144. key = 2;
  145. }
  146. else
  147. {
  148. key = 0;
  149. }
  150. }
  151. else if((lastKey == 16))
  152. {
  153. if(currKey >= (16-SENSIBILITY))                        
  154. {
  155. key = 2;
  156. }
  157. else if(currKey <= SENSIBILITY)
  158. {
  159. key = 1;
  160. }
  161. else
  162. {
  163. key = 0;
  164. }
  165. }
  166. lastKey = currKey;        
  167. }

  168. }
  169. return key;
  170. }
  171. void main(void)
  172. {
  173. SysInit();
  174. Time4Initial();
  175. Time1Initial();
  176. TouchInital();
  177. WDT_Initial();
  178. while(1)
  179. {      
  180. CLRWDT();
  181. if(currOrient == 1)
  182. {
  183. if((currKey>3)&&(currKey<=6))
  184. {

  185. if(TIM1CCR4L>=42)
  186. {
  187. TIM1CCR4L= 42;
  188. }
  189. else
  190. {
  191. TIM1CCR4L++;
  192. delay(10);
  193. }
  194. }
  195. else if((currKey>6)&&(currKey<=9))
  196. {
  197. if(TIM1CCR4L>=84)
  198. {
  199. TIM1CCR4L= 84;
  200. }
  201. else
  202. {
  203. TIM1CCR4L++;
  204. delay(10);
  205. }
  206. }
  207. else if((currKey>9)&&(currKey<=12))
  208. {
  209. if(TIM1CCR4L>=126)
  210. {
  211. TIM1CCR4L= 126;
  212. }
  213. else
  214. {
  215. TIM1CCR4L++;
  216. delay(10);
  217. }
  218. }
  219. else if((currKey>12)&&(currKey<=14))
  220. {
  221. if(TIM1CCR4L>=168)
  222. {
  223. TIM1CCR4L= 168;
  224. }
  225. else
  226. {
  227. TIM1CCR4L++;
  228. delay(10);
  229. }
  230. }
  231. else if((currKey>14)&&(currKey<=16))
  232. {
  233. if(TIM1CCR4L>=210)
  234. {
  235. TIM1CCR4L= 210;
  236. }
  237. else
  238. {
  239. TIM1CCR4L++;
  240. delay(10);
  241. }
  242. }
  243. }
  244. else if(currOrient == 0)
  245. {
  246. flag=0;
  247. }
  248. else if(currOrient == 2)
  249. {
  250. if((currKey>0)&&(currKey<=3))
  251. {
  252. if(TIM1CCR4L>8)
  253. {
  254. TIM1CCR4L--;
  255. delay(10);
  256. }
  257. else
  258. {
  259. TIM1CCR4L= 8;
  260. }
  261. }
  262. else if((currKey>3)&&(currKey<=6))
  263. {
  264. if(TIM1CCR4L>42)
  265. {
  266. TIM1CCR4L--;
  267. delay(10);        
  268. }
  269. else
  270. {
  271. TIM1CCR4L= 42;

  272. }
  273. }
  274. else if((currKey>6)&&(currKey<=9))
  275. {
  276. if(TIM1CCR4L>84)
  277. {
  278. TIM1CCR4L--;
  279. delay(10);        
  280. }
  281. else
  282. {
  283. TIM1CCR4L= 84;
  284. }
  285. }
  286. else if((currKey>9)&&(currKey<=12))
  287. {
  288. if(TIM1CCR4L>126)
  289. {
  290. TIM1CCR4L--;
  291. delay(10);        
  292. }
  293. else
  294. {
  295. TIM1CCR4L= 126;
  296. }
  297. }
  298. else if((currKey>12)&&(currKey<=14))
  299. {
  300. if(TIM1CCR4L>168)
  301. {
  302. TIM1CCR4L--;
  303. delay(10);
  304. }
  305. else
  306. {

  307. TIM1CCR4L= 168;
  308. }
  309. }
  310. }
  311. if(TouchTimeCount>=(1000/SCANNINGTIME))                           
  312. {
  313. TouchTimeCount = 0;

  314. readKeyNum = TouchKeyScan();         
  315. currOrient = dealWithPositionValue();
  316. }
  317. }
  318. }
復(fù)制代碼

PCB文件下載: PCB文件.7z (3.81 MB, 下載次數(shù): 68)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:71233 發(fā)表于 2025-1-20 15:22 | 顯示全部樓層
ft62f211可以用于做水位檢測(cè)嗎
回復(fù)

使用道具 舉報(bào)

ID:612257 發(fā)表于 2025-1-7 09:35 | 顯示全部樓層
樓主用過(guò)這個(gè)芯片的捕獲功能嗎
回復(fù)

使用道具 舉報(bào)

ID:612257 發(fā)表于 2025-1-7 09:34 | 顯示全部樓層
樓主,有應(yīng)用過(guò)這個(gè)芯片的捕獲功能嗎?如果有的話希望可以發(fā)個(gè)資料作為參考模板,郵箱是1327209417@qq.com
回復(fù)

使用道具 舉報(bào)

ID:71233 發(fā)表于 2024-1-8 08:10 | 顯示全部樓層
輝芒微單片機(jī)很便宜,下載器貴不貴呢?
回復(fù)

使用道具 舉報(bào)

ID:108987 發(fā)表于 2024-1-5 08:24 | 顯示全部樓層
感謝樓主, 正找滑環(huán)觸摸芯片呢
回復(fù)

使用道具 舉報(bào)

ID:576203 發(fā)表于 2023-12-27 11:26 | 顯示全部樓層
感謝樓主無(wú)私分享,最近看到有用ft62f211做的隔空觸摸調(diào)光模塊,和水位檢測(cè)。應(yīng)該也是一樣原理。樓主有空了也實(shí)驗(yàn)一下
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久久久久久综合 | 黄 色 毛片免费 | 一区二区三区视频在线观看 | 黄色免费在线观看 | 美女黄18岁以下禁止观看 | 玖玖综合网| 日韩欧美久久 | 日韩网| 亚洲国产日韩一区 | 久久国产精品72免费观看 | 一区二区三区国产好的精 | 成人性视频在线播放 | 欧美精品福利 | 国产精品成人在线播放 | 男女羞羞视频在线观看 | 中文字幕一区二区三区在线观看 | 久久精品网 | 高清视频一区二区三区 | 免费观看一级视频 | 国产色| 久久久激情视频 | 91九色视频| 一区视频 | av电影手机在线看 | 日韩欧美在线观看一区 | 日韩一区二区在线视频 | 国产精品自拍av | 日韩中文字幕 | 国产精品成av人在线视午夜片 | 国产中文字幕网 | 国产成人网 | 亚洲一级毛片 | 欧美一级三级在线观看 | 欧美日韩毛片 | 亚洲人成人一区二区在线观看 | 亚洲精品一区二区三区中文字幕 | 欧美日韩综合 | 国产一区二区三区亚洲 | 免费av一区二区三区 | 真人女人一级毛片免费播放 | 成人av一区二区三区 |