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?
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.
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ß".
@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
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"
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.
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.
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?
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.
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
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...
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.
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 ;)
@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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.