Touchpanel und Touchscreen (mit PIC-Mikrocontroller, Elektronik)


zurück zu Elektronik, Homepage


6. Demonstrationsbeispiel 2 (Touchscreen)

Eine typische Anwendung für ein Touchpanel ist das Touchscreen. Bei einem Touchscreen wird das Touchpanel über einem Grafik-Display befestigt. Dadurch ergibt sich eine sehr kompakte Bedien- und Anzeigeeinheit. Das Grafik-Display zeigt Tasten in Form von Rechtecken an, und ein Druck auf das darüberliegende, durchsichtige Touchpanel löst die gewünschte Reaktion aus.

Das zweite Demonstrationsbeispiel zeigt dies an einem einfachen Besipiel mit zwei Tasten (Abbildung 11).

Demonstrationsbeispiel 2 (Foto)

Die Abbildung 12 zeigt die Koordinaten der beiden virtuellen Tasten am Touchpanel.

Demonstrationsbeispiel 2 (Koordinaten der virtuellen Tasten)
nach oben

6.1. Schaltung (Hardware)

Die Abbildung 13 zeigt die Schaltung für das zweite Demonstrationsbeispiel.

Demonstrationsbeispiel 2 (Touchscreen, Schaltung)

Der Wesentliche Unterschied zum ersten Demonstrationsbeispiel ist das Grafik-Display (LCD1) mit einer Auflösung von 128 x 64 Pixel. Dadurch ist auch ein "größerer" Mikrocontroller (IC1) mit zusätzlichen Portpins notwendig. Für dieses Demonstrationsbeispiel wird daher der PIC16F877 verwendet, der mit einem externen 20-MHz-Takt versorgt wird (X1, C5, C6 und R14). Der PIC16F877 lässt sich sehr gut in der Schaltung programmieren. Diese Methode wird ICSP genannt. ICSP steht für In-Circuit-Serial-Programming.

Der Reset wird hier mit einem RC-Glied bestehend aus R13 und C3 erzeugt. Zusätzlich kann ein Reset jederzeit mit dem Taster S1 ausgelöst werden. Da der Reseteingang des Mikrocontrollers (MCLR, Pin 1) auch gleichzeitig die Programmierspannung (ca. 13V) bei der ICSP-Programmierung ist, darf während einer Programmierung kein Reset ausgelöst werden. Durch die Diode D1 ist ein Reset durch das RC-Glied (R13 und C3) während einer Programmierung via ICSP nicht möglich.

Für die Beschaltung des Touchpanel (TP1), für den Koppelkondensator (hier: C4) und für die Stromversorgung gilt das gleiche wie beim ersten Demonstrationsbeispiel.

nach oben

6.2. Stückliste

Demonstrationsbeispiel 2 (Touchscreen, Stückliste)
nach oben

6.3. Layout und Bestückungsplan

Das Layout für dieses Demonstrationsbeispiel befindet sich im Download-Bereich auf dieser Seite, der Bestückungsplan ist in Abbildung 15 zu sehen. Der Nachbau sollte keine Probleme bereiten. Bei der Bestückung beginnt man üblicherweise mit den niedrigen Bauteilen.

Demonstrationsbeispiel 2 (Touchscreen, Bestückungsplan)
Achtung:
Die "Drahtbrücken" in Form von SMD-Widerständen (0 Ohm) auf der Lötseite nicht vergessen!
nach oben

6.4. Anmerkungen zur Software

Die Software zum Demonstrationsbeispiel befindet sich im Download-Bereich auf dieser Seite.

Achtung:
Für dieses zweite Demonstrationsbeispiel ist die kostenpflichtige Vollversion des C-Compilers mikroC notwendig!

Auch bei diesem Demonstrationsbeispiel besteht die Software aus mehreren Programmteilen, die denen vom ersten Demonstrationsbeispiel sehr ähnlich sind:

Interrupt-Service-Routine (kurz: ISR):
Für die ISR (in der Datei TouchScreen_Demo.c, Zeilen 93 bis 103) gilt im Wesentlichen das gleiche wie beim ersten Demonstrationsbeispiel. Auch hier hat die ISR die Aufgabe eine 100-ms-Zeitbasis zu erzeugen.

Im Gegensatz zum ersten Demonstrationsbeispiel wird hier als Taktquelle für den Mikrocontroller ein externer 20 MHz-Quarz verwendet, dadurch ergeben sich Änderungen in den Zeiten. Mit einem Vorteiler (VT) von 1:128 ergibt sich, dass die ISR hier ca. alle 6.5ms aufgerufen wird.

Wird diese ISR 15 mal aufgerufen so vergeht eine Zeit von 15 x 6.5ms = ca 97ms). Die Konstante KONSTZEITBASIS100MS beinhaltet daher den Wert 15.

Hauptprogramm:
Das Hauptprogramm (main, Datei: TouchScreen_Demo.c, Zeilen 403 bis 438) ist hier etwas länger. Zuerst muss der Mikrocontroller initialisiert werden (mit dem Unterprogramm Init, Zeile 406). Neu ist die Initialisierung des Grafik-Displays mit den Unterprogrammen Glcd_Init, Glcd_Fill und Glcd_Set_Font (Zeilen 409 bis 412). Anmerkung: Diese Unterprogramme werden vom mikroC-Compiler automatisch zur Verfügung gestellt, und müssen daher nicht ausprogrammiert werden. Als nächstes müssen noch zwei Tasten mit passenden Texten am Grafik-Display dargestellt werden. Die Zeilen 415 bis 424 übernehmen diese Aufgaben.

Nun befindet sich das Hauptprogramm in einer Endlosschleife. Diese Schleife besitzt nur die Aufgabe ständig das Botschaftsflag FlagZeitbasis100ms zu prüfen. Ist dieses Botschaftsflag gesetzt, so muss vom Hauptprogramm eine bestimmte Aufgabe ausgeführt werden. Diese Aufgaben sind in Form von Unterprogrammen vorhanden. Hier hat es die Aufgabe das Unterprogramm zur Abfrage des Touchpanels aufzurufen (Zeile 432). Wichtig ist, dass das Botschaftsflag wieder gelöscht werden muss (Zeile 435).

Unterprogramm Init:
Das Unterprogramm Init (Datei: TouchScreen_Demo.c, Zeilen 133 bis 278) dient auch hier zur Initialisierung des Mikrocontrollers. Es gilt im Wesentlichen das Gleiche wie beim ersten Demonstrationsbeispiel. Nur mit dem Unterschied, dass eben hier ein anderer Mikrocontroller verwendet wird.

Unterprogramm TouchPanelTastenRoutine:
Das Unterprogramm TouchPanelTastenRoutine (Datei: TouchScreen_Demo.c, Zeilen 333 bis 390) ist auch hier das wesentliche Unterprogramm für dieses Demonstrationsbeispiel. Auch hier gilt im Wesentlichen das gleiche wie beim ersten Demonstrationsbeispiel. Der einzige Unterschied ist, dass hier nicht die Zustände der Leuchtdioden verändert werden, sondern die Texte am Grafik-Display, und dass hier nur zwei Tasten zu bearbeiten sind.

Wichtig:
Auch dieses Unterprogramm muss im Hauptprogramm regelmäßig (zyklisch) aufgerufen werden (Siehe Hauptprogramm, Datei: TouchScreen_Demo.c, Zeile 432).

Unterprogramme TP_GetX und TP_GetY:
Diese beiden Unterprogramme wurden bereits im Abschnitt Software sehr ausführlich behandelt, so dass sie hier nicht mehr näher erläutert werden müssen.

Wichtig:
In der Datei TOUCHPANEL.H müssen die Portpins und die analogen Kanäle gemäß der Demonstrationsschaltung nach Abbildung 8 definiert werden, Zeilen 19, 20, 24 und 25.

Unterprogramm ADC8:
Das Unterprogramm ADC8 (Datei: myPIC_ADC.C, Zeilen 47 bis 59) dient zur Analog-Digital-Wandlung mit dem PIC-internen-Hardwaremodul und entspricht der Vorgabe im Datenblatt zum PIC16F88 [5].

Sonstiges:
Am Beginn des Quellcodes (in der Datei TouchPanel_Screen.c) befinden sich die folgenden Definitionen und Einstellungen:

Hier, zum Abschluss, die notwendigen Einstellungen für den PIC16F877 für dieses Demonstrationsbeispiel:

nach oben


zurück zu Elektronik, Homepage

Autor: Stefan Buchgeher
Erstellt: 22. September 2009
Letzte Änderung: