【发布时间】:2021-06-09 10:25:04
【问题描述】:
我可以读取我的 4 线触摸屏的坐标。但是我在每个角落都得到了这样的值(见图一)
现在,我想获得与我的触摸屏尺寸相匹配的值。我以前尝试过,但每次触摸触摸屏时,我的测量结果都失败了 1 厘米。
我的代码如下:
#define Yin A0
#define Yout A1
#define Xin A2
#define Xout A3
int values[2];
void setup()
{
pinMode(Xin, INPUT);
pinMode(Yin, INPUT);
pinMode(Xout, INPUT);
pinMode(Yout, INPUT);
Serial.begin(9600);
}
void loop()
{
pinMode(Yin, OUTPUT);
pinMode(Yout, OUTPUT);
digitalWrite(Yin, LOW);
digitalWrite(Yout, HIGH);
delay(5); // Pause to allow lines to power up
// Read and store X
values[0] = analogRead(Xin);
// Reset Y
digitalWrite(Yout, LOW);
delay(5); // Pause to allow lines to power down
pinMode(Yin, INPUT);
pinMode(Yout, INPUT);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Read Y
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Set X to a gradient
pinMode(Xin, OUTPUT);
pinMode(Xout, OUTPUT);
digitalWrite(Xin, LOW);
digitalWrite(Xout, HIGH);
delay(5); // Pause to allow lines to power up
// Read and store Y
values[1] = analogRead(Yin);
// Reset X
digitalWrite(Xout, LOW);
delay(5); // Pause to allow lines to power down
pinMode(Xin, INPUT);
pinMode(Xout, INPUT);
delay(250);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Output our values
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Serial.print(values[0]);
Serial.print("\t");
Serial.println(values[1]);
}
我的目标是将触摸屏的原点放在中间,并将每个位置的值设为厘米。 (见图二)
提前致谢!
【问题讨论】:
-
您可以进行线性匹配(yourX = a*measuredX+b - Y 相同),但电阻式触摸屏校准有点复杂。这里有一点要阅读:ti.com/lit/an/slyt277/slyt277.pdf?ts=1623210456852
-
谢谢,我尝试了类似的方法,它成功了。您还知道如何在 Simulink 中实现这一点吗?所以,如果我触摸屏幕,我可以看到 2D 的确切位置。
标签: arduino coordinates touchscreen