Wie steuere ich einen resistiven Touchscreen?

Der Kern meines Problems ist, dass ich einen resistiven Touchscreen und einen Raspberry Pi habe, und ich muss einen mit dem anderen sprechen lassen, indem ich einen einzigen ADC irgendeiner Art verwende.

Ich habe mit einem Arduino gearbeitet und kenne auch das Grundkonzept hinter einem resistiven Touchscreen. Ich habe jedoch einige Probleme bei der Planung, wie ich es an den Himbeer-Pi anschließen soll, und ich möchte mich nicht zu sehr auf Teile festlegen, es sei denn, ich weiß, wie ich es machen werde. Grundsätzlich muss ich Spannung über die Leitungen x+ und x- legen, während ich die Leitung y+ mit dem ADC messe, richtig? Aber dann muss ich die Leitungen wechseln und Spannung an die Leitungen y+ und y- anlegen und die Leitung x+ messen.

Bei einem Arduino ist es offensichtlich, wie das geht, da die analogen Eingangspins auch als digitale Ausgänge dienen können. Aber ich habe kein solches Glück mit dem Pi. Ich kann einen ADC mit dem Pi verdrahten, aber ich bin mir nicht sicher, welcher ADC die Arbeit erledigen wird, da er anscheinend auch digitale Ausgänge bereitstellen muss. Ich schaue mir gerade grundlegende ADCs wie den MCP3008 an. Kann man mit einem solchen Chip einen resistiven Touchscreen ansteuern und wenn ja wie? Wenn nicht, welche ICs brauche ich?

Auch wenn Sie einen IC vorschlagen, halten Sie sich bitte an diejenigen, die in PDIP-Paketen zu finden sind. Ich weiß, dass das WIRKLICH restriktiv ist (viele der "Touchscreen-Digitizer-ADCs", die ich gesehen habe, sind nur TSSOP / QFN), aber dies ist ein kleines Hobby für mich, ich arbeite an einem Steckbrett und habe es nicht wirklich Werkzeuge, um andere Pakete zu verwenden.

Antworten (1)

Nun, Sie messen auf die gleiche Weise wie bei Arduino. Das MCP3008 hat 8 Kanäle, sodass Sie problemlos 8 Messungen durchführen können. Normalerweise verbinden Sie zwei Kanäle des ADC mit den Leitungen X+ und Y+. Die Anschlüsse des ADC befinden sich im hochohmigen Eingangsmodus, sodass Sie sie in Bezug auf die Stromversorgung als getrennt behandeln können.

Dann müssen Sie auch zwei GPIO-Pins des Raspberry Pi mit den Anschlüssen X+ und Y+ verbinden und die Anschlüsse X- und Y- mit den GND-Pins des Raspberry Pi verbinden.

Wenn Sie eine Messung für die X-Achse durchführen möchten, setzen Sie den Y + -Pin auf Float, den X + -Pin auf High und verwenden dann den ADC auf dem Y + -Kanal. Gleiches gilt für die Messung der Y-Achse.

Nun zum ADC: Nun, da ADC ein Analog-Digital-Wandler ist, muss er digitale Ausgänge haben. Alle ADCs haben digitale Ausgänge, so kommunizieren sie mit dem Rest des Systems. Die digitalen Ausgangspins sind von den analogen Eingangspins getrennt, sodass es keine Kommunikationsprobleme gibt.

Der bestimmte ADC, mit dem Sie verknüpft sind, verwendet SPI. Auf Raspberry Pi können Sie den Hardware-SPI-Port oder GPIO-Pins für Software-SPI verwenden. Beachten Sie, dass ADC den SPI-Takt benötigt, auch wenn keine Datenübertragung stattfindet, um die Konvertierung ausführen zu können.

Hier sind zwei relativ nette Artikel mit ein paar Informationen über MCP3008 auf Raspberry Pi: MCP3008 mit Hardware-SPI , MCP3008 mit Software-SPI .

Hmm, ich habe darüber nachgedacht, die GPIO-Ausgänge und ADC-Eingänge auf die gleichen Pins zu legen. Meine praktische Erfahrung sowohl mit dem ADC als auch mit der Plattform ist im Moment etwas begrenzt, also dachte ich, dass dort eine Art Interferenz stattfinden würde. Freut mich jedenfalls zu hören, dass das funktioniert! Danke für die schnelle Antwort!