Guten Abend Ich habe mit meinem Arduino UNO einen Schaltkreis gemacht, bei dem ich über zwei Taster zwei LED's ansteuern kann. Es ist simpel, doch ich möchte verstehen wie es geht. Jetzt möchte ich einen Touchdisplay so programmieren, dass jetzt die Taster nur noch virtuell auf dem disply erscheinen. Die Funktionen sollen aber beibehalten werden. Also dass ich die Taster über den Touch steuern kann. Kennt ihr eine gute Internetseite, Tutorials, Bücher die mir weiterhelfen können? Danke für eure Antworten! Auf Youtube habe ich nicht so passendes gefunden. Freundliche Grüsse Markus
Markus schrieb: > dass jetzt die > Taster nur noch virtuell auf dem disply erscheinen. Die Funktionen > sollen aber beibehalten werden
1 | +------------------> x |
2 | | |
3 | | +-------------+ |
4 | | | | |
5 | | | | |
6 | | | +---+ +---+ | |
7 | | | | 1 | | 2 | | |
8 | | | +---+ +---+ | |
9 | | +-------------+ |
10 | | |
11 | V |
12 | y |
* du kennst den x-y-Bereich, den je ein Taster einschließt * du bekommst x- und y-Werte vom Display * du erkennst, ob für gewisse Zeit in einer der Bereiche berührt wurde mfg mf
minifloat hat bereits alles Notwendige gesagt; hier nur nochmal etwas ausführlicher: Zunächst einmal kommt es darauf an, auf welche Weise die grafische Benutzeroberfläche (GUI) programmiert werden kann/muss. Das hängt von der Library/API ab, die Du dafür verwenden kannst/musst: FALLS die zur Verfügung stehende Library/API zum Zugriff auf den Touchscreen ein primitives Widget Toolkit anbietet, kann man die Benutzeroberfläche vglw. komfortabel so programmieren, wie man auch die Benutzeroberflächen von normalen PC-Programmen oder Android-Apps programmiert: man legt z.B. fest "Ich möchte ein Label mit dem Text "blabla" an dieser Koordinate haben, und einen Button der Grösse x/y an jener Koordinate." Wenn das Display an einer Stelle berührt wird, wo ein Button sein soll, dann bekommt das eigene Programm direkt eine Information geliefert a la "Button gedrückt". Die es hier jedoch um einen Mikrocontroller geht, ist die Wahrscheinlichkeit leider sehr hoch, dass die API für den Zugriff auf den Touchscreen gar kein derartiges high-level GUI Widget Toolkit anbietet, sondern nur low-level-Routinen für das Display um Linien, Text, Rechtecke etc. auf das Display zu malen, und weitere low-level-Routinen für den Touch-Controller, die Dir bei Berühren des Displays eine X/Y-Koordinate nennen. In diesem Fall musst Du es low-level so machen, wie minifloat es bereits knapp skizziert hat: Angenommen z.B., Du willst einen "Button 1", der button1_width=100 Pixel breit und button1_height=50 Pixel hoch ist, und dessen linke obere Ecke sich an der X/Y-Koordinate button1_left=10/button1_top=20 Pixel befinden soll. Um den "Button 1" auf dem Display darzustellen, würdest Du dann erst einmal ein Rechteck an dieser Koordinate und der gewünschten Breite/Höhe zeichnen. Danach vermutlich noch einen Text als Beschriftung des Buttons. Wenn nun das Display berührt wird, erhältst Du eine Information a la "Display an X/Y-Koordinate touch_x=17/touch_y=39 berührt". Anhand dieser Informationen kann man nun überprüfen, ob diese Koordinate in den rechteckigen Bereich fällt, der Deinen Button repräsentiert:
1 | if ((touch_x >= button1_left) && (touch_x < (button1_left + button1_width)) && (touch_y >= button1_top) && (touch_y < (button1_top + button1_height))) { |
2 | // Button 1 wurde gedrückt
|
3 | }
|
Falls Dir diese Art der GUI-Programmierung zu kompliziert ist, dann könnte es EVENTUELL einfacher und sinnvoller sein, statt eines gewöhnlichen Touch-Displays ein sogenanntes "NEXTION"-Display zu verwenden. Bei dieser Art von Display kannst Du die grafische Benutzeroberfläche mit allen Buttons etc. ganz simpel und komfortabel mit einem PC-Programm designen; zum Anschliessen des Displays an den Mikrocontroller wird in diesem Fall dann auch keine endlosen Anzahl von Pins benötigt; die gesamte Kommunikation zwischen Mikrocontroller und Display geschieht in diesem Fall via serieller Schnittstelle und benötigt daher nur 2 Leitungen. In Anbetracht des Umstandes, dass Du vermutlich noch eher ein Einsteiger bist, könnte Dir diese Vorgehensweise deutlich leichter fallen. Wenn Du nach "Arduino NEXTION" googlest, wirst Du auch diverse Tutorials etc. finden.
Markus schrieb: > Jetzt möchte ich einen Touchdisplay so programmieren Welches denn? Z.B. die EA eDIPTFT enthalten schon Touch-Macros.
> Auf Youtube habe ich nicht so passendes gefunden.
Autsch... Ich haette jetzt eher das Manual des Devices als Ausgangspunkt
genommen. Aber die Weiten des Internets abzusuchen ist moeglicherweise
auch ein Weg. Hier grad nicht.
Markus schrieb: > Ich habe mit meinem Arduino UNO einen Schaltkreis gemacht, bei dem ich > über zwei Taster zwei LED's ansteuern kann. Es ist simpel, doch ich > möchte verstehen wie es geht. hm ... du hast was gemacht und möchtest nun verstehen wie es geht (was du gemacht hast)? das klingt seltsam.
Hi Markus, wenn Du sehen möchtest wie so etwas als High-Level API aussieht/funktioniert: https://ugfx.io/ Gibt auch ein Studio - V. 0.2 in Entwicklung: https://community.ugfx.io/blogs/blog/2-%C2%B5gfx-studio-develoment/ mfg Olaf P.S.: für nicht kommerzielle Anwendungen kostenlos
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.