Forum: Mikrocontroller und Digitale Elektronik Touchdisplay simulieren


von Hans Georg (Gast)


Lesenswert?

Hallo zusammen,

und zwar würde ich gerne einen resistiven Touchscreen simulieren.
Sprich: DA-Wandler mit Mikrocontroller steuern, um Spannung zu 
generieren.
Die Ausgänge des DA-Wandlers an die Kontakte des resistiven 
Touchscreens.
Und im Idealfall, eine Bitkombination auf den Bus legen, damit ich einen 
Touch auf dem Display simulieren kann.

Soweit der Plan.

Ich dachte da an einen DA-Wandler an dem 2 Ausgänge jeweils für X- und 
Y-Richtung verwendet werden.

Jedoch hat der Touch 4 Kontakte. Ich gehe mal davon aus, dass die 
anderen beiden Masse sein werden.

Ein weiteres Problem wird sein, dass ich mir nicht sicher bin, welche 
Spannung ich jeweils bei den Ausgängen des DACs generieren soll.

Ich wollte dazu erstmal alle vier Kontakte des Tochdisplays mit dem 
Oszilloskop anschauen. Also einfach einen Single Shot sobald ich 
"touche", um zu sehen, was überhaupt passiert.

Anschließend versuchen irgendwie die Spannungen herauszufinden, die in 
beiden Richtungen generiert werden müssen.

Jetzt meine Frage: Kann das überhaupt funktionieren, oder gibt es 
bessere Vorgehensmethoden?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Der Touchscreen hat 4 Anschlüsse, weil ein Pärchen für die X und das 
andere für die Y Achse gedacht ist. Dazwischen liegt beim Berühren dann 
jeweils ein Widerstand, der von den Koordinaten abhängt.

Das Auslesen passiert so, das du z.B. zum Auslesen der X Koordinate an 
den X- Anschluss Masse anlegst, an den X+ Anschluss eine Spannung von 
z.B. Vcc legst und an einem der Y Anschlüsse die Spannung misst.
Mit einem AVR ist das einfach, denn die AD Eingänge sind auch digitale 
Ausgänge und können auf High bzw. Low gesetzt werden. Für die Y Achse 
verfährst du umgekehrt, hier wird dann zwischen Y- und Y+ eine Spannung 
gelegt und dann an einem der X Anschlüsse gemessen.

Ein DA Wandler nützt dir hier nicht viel. Du brauchst einen ADC, um die 
Spannung zu messen.

von Max D. (max_d)


Lesenswert?

Er will den Touch aber immitieren.

@TO: Das mit dem DAC ist der richtige Weg. Du musst aber:
1. Den Ausgangsspannungsbereich vom DAC an die Messspannung des 
tocuh-controllers anpassen
2. Aufpassen keine Komponente zu überlasten

Am einfachsten schaltest du über Widerstände (die so dimensionieren das 
ein Kurzschluss (mit Gnd oder Vcc) keine Überlast des DACs auslöst 
(mindestens ein paar hundert Ohm) die Ausgänge des DACs jeweils an beide 
Kontakte für die Ebene. Also quasi ein Y aus Widerständen, die X+ nd X- 
Kontakte kommen an die beiden "Arme" und der DAC-Ausgang an den "Fuß".

von Hans Georg (Gast)


Lesenswert?

@Max D.

Ich verstehe leider deinen zweiten Abschnitt überhaupt nicht :D

ich hätte einfach die Messspannung an jeweils X+ und Y+ angelegt und 
masse an X- und Y-.

Jetzt möchte ich vorher aber erst messen, welche Spannungen benötigt 
werden um einen Klick z.B. in der Mitte zu simulieren.
Wenn ich jetzt draufdrücke, entsteht ja ein Spannungsteiler und die 
Spannung wird dann gemessen.
Aber wie könnte ich diese nun messen? An X+/- und Y+/- geht das ja 
nicht.

Zu Beginn habe ich mir das ganze irgendwie viel leichter vorgestellt. So 
schnell kann man sich irren :D

von Thomas F. (igel)


Lesenswert?

Hans Georg schrieb:
> ich hätte einfach die Messspannung an jeweils X+ und Y+ angelegt und
> masse an X- und Y-.

So einfach funktioniert das nicht.
Üblicherweise sin die Eingänge beim resistiven Touch erst mal im 
Digital-Mode. Erst wenn ein Fingerdruck erkannt wurde, wird auf analogen 
Spannungsteiler umgeschalten und die erste Koordinate per ADC gemessen. 
Dann wird umgepolt und die zweite Koordinate gemessen.

Beitrag "Re: 4Draht-Touchpanel direkt am AVR und die Portschaltung"

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Hans Georg schrieb:
> Jetzt möchte ich vorher aber erst messen, welche Spannungen benötigt
> werden um einen Klick z.B. in der Mitte zu simulieren.

Grob gesagt, genau die Hälfte der Spannung, die an Y+ oder X+ liegt. 
Wenn du bei einem vorhandenen Gerät ferngesteuert den Touch 'drücken' 
willst, solltest du mal messen, welche Strategie das Display verfolgt 
und ob du evtl. Y+ oder X+ als Referenz für deinen DA Wandler benutzen 
kannst.

Thomas Forster schrieb:
> Beitrag "Re: 4Draht-Touchpanel direkt am AVR und die Portschaltung"

Kann man so machen, muss man aber nicht. Bei mir z.B. läuft die ganze TS 
Chose im ADC Interrupt ab.

von Nosnibor (Gast)


Lesenswert?

Wären da nicht digitale Potis die richtige Lösung?

Ein Poti zwischen X+ und X-, ein zweites zwischen Y+ und Y-, und ein 
Schalter verbindet die beiden Schleifer bei Bedarf. Der Schalter 
signalisiert die Berührung, die Potistellungen geben die Position an.

von Hans Georg (Gast)


Lesenswert?

jetzt habe ich die vier Pins mal mit dem Oszi aufgezeichnet.

2 sind standardmäßig high und 2 auf masse.

wenn ich jetzt auf den Screen drücke, ist erkennbar, dass X+ und Y+ dann 
auf Masse gehen und sobald ich loslasse wieder auf High.

Dadurch komme ich allerdings nicht auf die koordinaten...

Es muss doch möglich sein, von aussen an diesen 4 Pins jeweils eine 
bestimmte Spannung anzulegen, um somit einen Tastendruck an der z.B. 
oberen linken Ecke zu simulieren?

von Purzel H. (hacky)


Lesenswert?

Wie immer : das Ganze soll ?
Waehrend der Entwicklung fuer einen Controller die Beruehrungen 
simulieren?

Wuerd ich so nicht machen. Erst den touch auslesen implementieren. Wenn 
der laeuft, dessen Funktionalitaet mit einer seriellen Schnittstelle 
imitieren. Dh von Aussen die Touchkoordinaten zum richtigen Zeitpunkt 
einspeisen.

von spess53 (Gast)


Lesenswert?

Hi

>Es muss doch möglich sein, von aussen an diesen 4 Pins jeweils eine
bestimmte Spannung anzulegen, um somit einen Tastendruck an der z.B.
oberen linken Ecke zu simulieren?

Sieh dir mal an, wie ein Touchscreen funktioniert:

http://www.atmel.com/Images/doc8091.pdf

Eine Koordinate wird durch zwei Messungen bestimmt.

MfG Spess

von Hans Georg (Gast)


Lesenswert?

ich habe jetzt beschlossen, das ganze mit digitalen potis zu 
realisieren, um mir die timinggeschichten zu ersparen.

dafür habe ich jetzt erstmal 2 stinknormale 1k potis genommen und 
jeweils die masse und versorgung an beide X kontakte und den schleifer 
an Y+, an dem gemessen wird.

das selbe habe ich ebenfalls für die Y-Ebene gemacht.

Nun kann ich wunderbar durch drehen der Potis auf meinem Touch 
herumfahren.

Allerdings komme ich bei beiden ebenen jeweils nur zur hälfte, und ich 
weiß nicht, woran das liegen könnte.

im ausgeschalteten zustand hatte ich am touchdisplay einen widerstand 
von 800ohm in x-richtung und 300ohm in y richtung.

deshalb habe ich einfach zwei 1kohm potis verwendet.

woran könnte das liegen?
das prinzip an sich müsste ja schonmal stimmen, jedoch finde ich keine 
erklärung dafür, dass ich in beiden ebenen jeweils nur bis zur hälfte 
komme...

von Thomas F. (igel)


Lesenswert?

Hans Georg schrieb:
> das prinzip an sich müsste ja schonmal stimmen,

Nein, eben nicht. Wie bereits erwähnt werden bei einem resistiven Touch 
zwei Messungen hintereinander ausgeführt, dazwischen werden die Eingänge 
und Ausgänge umgeschalten. Deine Potis beeinflussen aber jeweils den 
Widerstandswert bzw. den Spannungsteiler der Touch-Folie.

Atmel Application Note lesen.

von Hans Georg (Gast)


Lesenswert?

Thomas Forster schrieb:
> Nein, eben nicht.

naja, aufgrund der Tatsache, dass ich nur pin 3 und pin 4 vertauscht 
habe, und es jetzt einwandfrei funktioniert, habe ich doch recht gehabt 
;)

von Hans Georg (Gast)


Lesenswert?

@Nosnibor. Der weg mit den Digitalen Potis wirds nun sein.

Jetzt muss ich ja die Schleiferkontakte trennen können, damit ein 
"abheben des Fingers" simuliert werden kann.

Dies wird mit einem MOS-Schalter am besten funktionieren, nehme ich mal 
an? :D

von Nosnibor (Gast)


Lesenswert?

Hans Georg schrieb:
> Jetzt muss ich ja die Schleiferkontakte trennen können, damit ein
> "abheben des Fingers" simuliert werden kann.
>
> Dies wird mit einem MOS-Schalter am besten funktionieren, nehme ich mal
> an? :D

Ja, so würde ich es jedenfalls versuchen.
Jedenfalls wenn das mit der Versorgungsspannung OK geht: der 
MOS-Schalter kann nur Spannungen innerhalb seines 
Versorgungsspannungsbereiches schalten, also muß dessen 
Versorgungsspannung mindestens so groß sein wie die des Gerätes, das den 
Touchscreen abfragt. Und für die digitalen Potis gilt wahrscheinlich das 
gleiche.

von Hans Georg (Gast)


Lesenswert?

habe das alles berücksichtigt, und simuliert :)

Digital Potis und analog Schalter sind in Bestellung ;)

Jetzt heißt es abwarten und Tee trinken :D

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
Noch kein Account? Hier anmelden.