极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12759|回复: 2

电阻触摸屏,做一个互动操作界面

[复制链接]
发表于 2017-4-11 21:12:13 | 显示全部楼层 |阅读模式
本帖最后由 小学徒 于 2021-1-22 08:47 编辑



本来还想写点关于什么是电阻触摸屏这样傻的介绍,但发现网上有一堆,况且看了不一定懂。so直接跳过。直接贴代码,上操作!
如图上:(这种触摸屏可以网购,几毛钱一块)从左向右一次为X2  X1  Y2  Y1. 接线对照程序和图片。不出意外我们会用到六根线,如果你只接了4根,请再检查我给的图和程序。
接线图:会用到6根线。
/***测试程序,打开串口监视器就可以看到xy轴的值*****/
//触摸屏电源连接!!!!!注意引脚,这里已经改正,但附件里没改。正确为7 6 5 4,当然这只是为了配合上面那张图,你也可以换成其他引脚!
#define Right  7//右侧X2
#define Left   6//左端X1
#define Bottom 5//底部Y2
#define Top    4//顶部Y1
/******读取********/
#define topInput   A0 //顶部Y1 (5A0接在一起)
#define rightInput A1 //右侧X28A1接在一起)
int coordx=0,coordy=0;
void setup() {
Serial.begin(9600);

}

void loop()
{
   if(touch())//如果屏被触摸
   {
   Serial.print("x=");
    Serial.print(coordx);//显示出所触摸处x轴的值
    Serial.print("   Y=");
    Serial.println(coordy);//显示出所触摸处y轴的值
    delay(100);
    }

}
/*****下面这段代码不用理,照搬进来放在loop下面即可***********/


接好线,上传程序后,打开串口检验一下接线有没有问题,正常的话,按下触摸屏就会有数值显示出来,并且会有随着x,y轴有序变化。比如你从左下角靠近原点的地方开始向右上角划动,就应该有(50,50-----1000,1000)这样有规律的变化。若不对再检查接线,和程序里是否需要调换。
  这一开始只是个测试的方法,它有很多玩法:我们玩它的依据是,每在触摸屏中的不同地方按下会有不同的(X,Y)值,那我们就可以这样左:当在这个地方按下时,点亮LED,当在另一个地方按下时,启动一个电机。那程序里应该这样表示:
void loop() {
  if(touch())//如果触摸
  {   
if((coordx>280&&coordx<365)  && (coordy>290&&coordy<340)) 如果在这个区域内触摸
{LED_NO;}//打开LED

if((coordx>300&&coordx<320)  && (coordy>100&&coordy<207)) //同理,如果在这个区域内触摸,执行下面的语句。
{MOTOR——NO();}//打开电机
}
If里面的那些值当然是你自己通过串口得出的,比如你想在这个位置按下点亮LED,那先通过串口看当你按下时它显示的XY值,多按几次就得出一个范围了。

当玩会了这个,把它装在LCD12864上,如下图:
这块屏刚刚好,也不算刚好,因为左边的还有空隙,没有完全盖过12864.买之前测量一下。
看下面:这是某系统的其中一个控制温湿度的界面,字在12864显示,我身边的人会经常问我,这触摸屏是不是自带显示,不是的!如何精确的控制呢?如下图的+  - “按钮” ,我们应该先在12864上显示内容,然后调整“按钮”显示的位置在触摸屏范围内,接下来打开串口,按下“+”按钮,串口会显示XY的值,多按几次就会有一个范围了嘛,我们取它的最大最小值,比如第一次按下出现(100,500),第二次按下出现(90,300),再按下(88,450)…..聪明人应该看懂了,我们取(88--100,300--500),要最大最小就是确保在这个范围内按下,他会进入这个功能。当然你可以独特一点,取(110--120,350--500),没关系,反正数值接近。取值后,程序应该这样

if((coordx>88&&coordx<100)  && (coordy>300&&coordy<500)){}




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2017-4-12 09:27:37 | 显示全部楼层
楼主辛苦,谢谢分享。
回复 支持 反对

使用道具 举报

发表于 2017-5-9 12:42:15 | 显示全部楼层
大神能不能把程序详细注释一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 08:35 , Processed in 0.048129 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表