Hallo, ich mußte an einem kleinen Steuerteil mit Arduino den TFT-Touchscreen (2,8" TFT SPI 240x320) tauschen weil mechan. zerstört. Das alte defekte hatte hatte nach der Bezeichnung den Zusatz Ver.1.2, das neue hat das nicht. Es funktioniert praktisch alles wie immer, nur ist jetzt der Druckpunkt bei allen 13 Feldern etwas nach links versetzt. Wird mittig in ein Feld getastet wird der Wert vom rechten Nachbarfeld erkannt und das bei allen Feldern. _________________ | | | | | 1 | 2 | 3 | | | | | ------------------- | | | | | 4 | 5 | 6 | | | | | ------------------- | | | | | 7 | 8 | 9 | | | | | ------------------- ------- | | | | | | | . | 0 | Del | | Set | | | | | | | ------------------- ------- So sieht das Gebilde aus. Ich bin nun nicht der Programierer und würde gern wissen welcher zentrale Parameter im Code den Focus wieder in die Mitte jedes Feldes setzt. Wer kann mir mal eine Hilfestellung geben? Danke und Grüße Frank
Offenbar ist das nicht als konfigurierbar vorgesehen. Überall, wo die Werte von x und y mit Konstanten verglichen werden, müsstest du die Zahlen ändern. Die Funktion readTouchScreen() gibt auf dem seriellen Port die aktuellen Werte vom Sensor aus.
Hallo Stefan, auch wenn es nerft, gib mir doch mal bitte ein Beispiel für die "1". Wie wird denn der mittige Druckpunkt ermittelt? Wird das auf Pixel bezogen? Ich meine der richtige Druckpunkt müsste bei allen Feldern ca. 2mm nach rechts verschoben werden. Ich wills ja nur verstehen und wenn ich es nicht hin bekomme versuche ich wieder ein passendes Display zu finden mit dem Zusatz Ver.1.2. Grüße Frank
Hallo Frank, dürfte wohl ein resistiver Touch sein, da kann man nicht unbedingt davon ausgehen das ein Austauschteil egal welche HW-Version exakt die selben Werte liefert. Da hier offenbar kein Softwareteil zur Kalibrierung vorgesehen ist, kannst du höchstens in der Funktion readTouchScreen() einen Offset zu X bzw. Y addieren/subtrahieren um die Koordinaten dahin zu schieben wo du gedrückt hast. Wenn die Abweichung über die gesamte Breite/Höhe etwa gleich ist klappt das so. Sascha
F.Berger schrieb: > auch wenn es nerft, gib mir doch mal bitte ein Beispiel für die "1". > Wie wird denn der mittige Druckpunkt ermittelt Drücke drauf und schau dir die Koordinaten an, die das Programm auf dem seriellen port ausgibt.
Stefan ⛄ F. schrieb: > Offenbar ist das nicht als konfigurierbar vorgesehen. Überall, wo die > Werte von x und y mit Konstanten verglichen werden, müsstest du die > Zahlen ändern. > > Die Funktion readTouchScreen() gibt auf dem seriellen Port die aktuellen > Werte vom Sensor aus. Und warum nicht, wie Sacha schrieb, nach Einlesen zum x einen Offset addieren?
M.M.M schrieb: > Und warum nicht, wie Sacha schrieb, nach Einlesen zum x einen Offset > addieren? Weil die Abweichung vielleicht aus mehr als nur einem einfachen Offset besteht. Die konkreten Zahlen der seriellen Ausgabe würden das zeigen. Ich habe darauf keinen Zugriff.
Stefan ⛄ F. schrieb: > Offenbar ist das nicht als konfigurierbar vorgesehen. Überall, wo die > Werte von x und y mit Konstanten verglichen werden, müsstest du die > Zahlen ändern. Unsinn. Es reicht in readTouchScreen() an zentraler Stelle die ermittelten Wert x und y vor der Rückkehr aus der Funktion passend zu korrigieren (z.B. durch einen Offset für x).
Ich äußere mich erst wieder dazu, wenn ich die konkreten Werte kenne. Ich habe nämlich keine Lust auf Streitgespräche auf Basis von Vermutungen. Drängt jemand anderen in die Ecke, ich habe besseres zu tun.
Stefan ⛄ F. schrieb: > Ich äußere mich erst wieder dazu, wenn ich die konkreten Werte kenne. Ein konstanter Versatz nach links bedeutet einen Offset in X-Richtung. Was gibt es da zu deuteln? Wären Y betroffen, würde nicht ausschließlich eine seitliche Verschiebung auftreten. Wäre die Skalierung falsch, wäre der Versatz nicht konstant. F.Berger schrieb: > nur ist jetzt der Druckpunkt bei allen 13 Feldern etwas nach links > versetzt. Wird mittig in ein Feld getastet wird der Wert vom rechten > Nachbarfeld erkannt und das bei allen Feldern.
Das Beste ist wohl, das Programm so abzuändern, dass je Tastenmittelpunkt jeweils die Bildschirm- als auch die Touchscreen-Position auszugeben. Mit den Koordinaten kann man dann (oder sollte) relativ leicht die Transformation bestimmen können (idR linear, evtl. leicht verzehrt aber noch handelbar).
Sigi schrieb: > Das Beste ist wohl, das Programm so abzuändern, > dass je Tastenmittelpunkt jeweils die Bildschirm- > als auch die Touchscreen-Position auszugeben. Wozu der Zirkus? Die erkannte Touch-Position wird bereits über die serielle Schnittstelle ausgegeben und die Tastenkoordinaten auf dem Bildschirm kann man direkt in setVoltageKeypad() nachlesen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.