Arduino实现Qtouch

偶然看数据手册发现原来arduino UNO用的ATmega328p是支持Qtouch的(atmel的一个触摸模块,貌似还自带一些滤波算法什么的),然后我就在想那其实arduino应该就能实现触摸功能了。

然后我去搜了下,果然有相关的资料。
https://playground.arduino.cc/Code/ADCTouch
https://github.com/jgeisler0303/QTouchADCArduino
https://hackteria.org/wiki/QTouchADC_Library_for_Arduino

但是我发现有个问题,其实Qtouch是可以支持slider和wheel的,但是现有的方案好像都没有写这些。想后面看看是不是能实现这个功能。
http://ww1.microchip.com/downloads/en/appnotes/doc10752.pdf

中文介绍
http://wiki.altium.com/pages/viewpage.action?pageId=25071607
一个PCB的库
http://patternagents.com/news/2013/11/24/eagle-touch-widgets-library.html

官网的资料:
http://ww1.microchip.com/downloads/en/AppNotes/Atmel-42094-QTouch-Schematic-and-Layout-Checklist_ApplicationNote_AT02259.pdf

2018年2月4日 UPDATE:

试了下用Atmel Studio生成Qtouch工程,只需要做配置就能生成整个工程。

现在有两个方案,一种是把atmel的工程导入Arduino中,arduino 1.5支持了.a的预编译文件

另外一种方法是在Atmel Studio中安装Arduino的插件然后编辑。不过这一块还不是很了解怎么把arduino插件新建的工程文件和qtouch新建的工程文件合并到一起。。。

看了下arduino的库文件文档,看看能不能直接把atmel的工程文件打包成库
https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5:-Library-specification#source-code

这里有提到会搜寻那些库文件夹
https://github.com/arduino/Arduino/wiki/Build-Process
不过这里面提到会搜寻一个sketchbook文件的libraries文件夹,但是我试了下好像并不行。。。但是放在文档的libraries文件夹下面就行不知道为什么。。

恩。。。原来sketchbook的位置就是文档下面那个。。。https://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use/how-to-install-a-library

2018年02月12日 UPDATE:

终于找到一个硬件连接的原理图。。
http://www.appfruits.com/2015/12/little-helper/

AD的库文件说明不知道是不是导进eagle去。。说实话很多形状还真的不太好画。。。
https://www.amobbs.com/thread-5053241-1-1.html

这个文档里面有很多数据的计算什么的,在类似的文章里面出现的频率很高
http://ww1.microchip.com/downloads/en/AppNotes/QTAN0062.pdf

这里面有一个ULP可以自动生成wheel的pcb,6666
https://github.com/appfruits/RotarySensor

疑问

现在主要有几个疑问

  1. qtouch 和 qtouch-ADC 和 qtouchPTC这些都是什么区别,这里面qmatrix我是理解的,大概的意思是利用了类似扫描矩阵的方式。从atmel start新建工程的时候如果选择qtouch library的话是没有atmega328p可以选择的(只有atmega328pb),但是如果选择qtouch PTC的话就有atmega328p,所以这块现在不是很理解。
  2. 硬件连接方式方面,我在atmel studio里面设置的时候每个通道需要有两个引脚连接SNS和SNSK,还需要一个电容一个电阻。但是我看其他的项目好像只有一个引脚并且只需要一个电阻,比如上面那个图。还有一些图里面会显示引脚直接链接触摸区域(难道是qtouch PTC?)。


    atmel studio的设置界面

选型

恩,根据这个选型文件显示的,所以支持qtouchPTC的只有两个系列

这里有一个checklist
http://ww1.microchip.com/downloads/en/appnotes/atmel-42094-qtouch-schematic-and-layout-checklist_applicationnote_at02259.pdf

2018年02月13日 UPDATE:

在这个文档里面解释了一些我的疑惑,qtouch使用的时候需要两个引脚snsk和sns,需要连接一个电阻一个电容,而qtouchADC只需要一个ADC的引脚,并且也只需要一个电阻。不过qtouch和qtouchADC之间的区别还没有特别搞懂

恩,所以qtouchADC只需要一个电阻是因为有内部的电容


电阻的取值范围1k-10k

电容取值范围1nF-47nF

2018年5月19日 UPDATE:

终于看到一个中文的介绍,里面主要区分了qtouch和qtouchADC的区别,但是没说qtouch和qtouchPTC。。
http://www.eeworld.com.cn/huodong/burnon_20170612/index.html

然后在atmel studio里面新建一个qtouch的工程(有atmega328p的,这个是arduino很多板子的mcu)的过程是这样的,file 》new project 》 qtouch executable project然后选这个



里面就有328p了

你可能感兴趣的:(Arduino实现Qtouch)