偶然看数据手册发现原来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
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
疑问
现在主要有几个疑问
- qtouch 和 qtouch-ADC 和 qtouchPTC这些都是什么区别,这里面qmatrix我是理解的,大概的意思是利用了类似扫描矩阵的方式。从atmel start新建工程的时候如果选择qtouch library的话是没有atmega328p可以选择的(只有atmega328pb),但是如果选择qtouch PTC的话就有atmega328p,所以这块现在不是很理解。
-
硬件连接方式方面,我在atmel studio里面设置的时候每个通道需要有两个引脚连接SNS和SNSK,还需要一个电容一个电阻。但是我看其他的项目好像只有一个引脚并且只需要一个电阻,比如上面那个图。还有一些图里面会显示引脚直接链接触摸区域(难道是qtouch PTC?)。
选型
恩,根据这个选型文件显示的,所以支持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只需要一个电阻是因为有内部的电容
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了